From 20ddbf33277108da86c69bb78890fac09e055627 Mon Sep 17 00:00:00 2001
From: Pablo Neira Ayuso <pablo@netfilter.org>
Date: Thu, 29 May 2014 14:33:29 +0200
Subject: udp: bind UDP sender side to same interface of the receiver side

Otherwise, the kernel may select a different interface for the client
side. Original patch from Michael Griego.

While at it, remove some trailing whitespaces.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 src/udp.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/udp.c b/src/udp.c
index ecaa46e..d0a7f5b 100644
--- a/src/udp.c
+++ b/src/udp.c
@@ -136,14 +136,18 @@ struct udp_sock *udp_client_create(struct udp_conf *conf)
 		m->addr.ipv4.sin_family = AF_INET;
 		m->addr.ipv4.sin_port = htons(conf->port);
 		m->addr.ipv4.sin_addr = conf->client.inet_addr;
-		m->sockaddr_len = sizeof(struct sockaddr_in); 
+		m->sockaddr_len = sizeof(struct sockaddr_in);
 		break;
 	case AF_INET6:
 		m->addr.ipv6.sin6_family = AF_INET6;
 		m->addr.ipv6.sin6_port = htons(conf->port);
 		memcpy(&m->addr.ipv6.sin6_addr, &conf->client.inet_addr6,
 		       sizeof(struct in6_addr));
-		m->sockaddr_len = sizeof(struct sockaddr_in6); 
+		m->sockaddr_len = sizeof(struct sockaddr_in6);
+		/* Bind the sender side to the same interface that we use to
+		 * receive sync messages.
+		 */
+		m->addr.ipv6.sin6_scope_id = conf->server.ipv6.scope_id;
 		break;
 	default:
 		ret = -1;
-- 
cgit v1.2.3