From 91774e47e23c83aa3df901adc167ab4592f87a22 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Tue, 6 Sep 2011 09:45:27 +0200 Subject: pingu_iface: bind to address instead of oif Seems like ip rule does not work with source address unless we bind to address --- pingu_iface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pingu_iface.c') diff --git a/pingu_iface.c b/pingu_iface.c index d2d0ac9..6905844 100644 --- a/pingu_iface.c +++ b/pingu_iface.c @@ -40,8 +40,8 @@ int pingu_iface_bind_socket(struct pingu_iface *iface, int log_error) int r; if (iface->name[0] == '\0') return 0; - r = setsockopt(iface->fd, SOL_SOCKET, SO_BINDTODEVICE, iface->name, - strlen(iface->name)); + r = bind(iface->fd, &iface->primary_addr.sa, + sockaddr_len(&iface->primary_addr)); if (r < 0 && log_error) log_perror(iface->name); iface->has_binding = (r == 0); -- cgit v1.2.3