aboutsummaryrefslogtreecommitdiffstats
path: root/pingu_iface.c
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-09-06 14:54:04 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2011-09-06 14:54:04 +0200
commit6badfc2d0e45b54e1a5a3d53de5aad9eec428c2e (patch)
tree120726696414451782ca153aa5052af6a9db8ef8 /pingu_iface.c
parent8e0e105eed7fb3227e6e2f189d83a5943fd043b6 (diff)
downloadpingu-6badfc2d0e45b54e1a5a3d53de5aad9eec428c2e.tar.bz2
pingu-6badfc2d0e45b54e1a5a3d53de5aad9eec428c2e.tar.xz
pingu_iface: bind to interface too
This is so we only see the pings for that interface
Diffstat (limited to 'pingu_iface.c')
-rw-r--r--pingu_iface.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/pingu_iface.c b/pingu_iface.c
index 04b180a..e2f3c3f 100644
--- a/pingu_iface.c
+++ b/pingu_iface.c
@@ -40,6 +40,11 @@ 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));
+ if (r < 0 && log_error)
+ log_perror(iface->name);
+
r = bind(iface->fd, &iface->primary_addr.sa,
sockaddr_len(&iface->primary_addr));
if (r < 0 && log_error)