aboutsummaryrefslogtreecommitdiff
path: root/networking/libiproute/libnetlink.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/libiproute/libnetlink.c')
-rw-r--r--networking/libiproute/libnetlink.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/networking/libiproute/libnetlink.c b/networking/libiproute/libnetlink.c
index 6d51d8deb..7ad2de9fa 100644
--- a/networking/libiproute/libnetlink.c
+++ b/networking/libiproute/libnetlink.c
@@ -26,22 +26,23 @@ int FAST_FUNC xrtnl_open(struct rtnl_handle *rth/*, unsigned subscriptions*/)
26{ 26{
27 socklen_t addr_len; 27 socklen_t addr_len;
28 28
29 memset(rth, 0, sizeof(rth)); 29 memset(rth, 0, sizeof(*rth));
30
31 rth->fd = xsocket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE); 30 rth->fd = xsocket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
32
33 memset(&rth->local, 0, sizeof(rth->local));
34 rth->local.nl_family = AF_NETLINK; 31 rth->local.nl_family = AF_NETLINK;
35 /*rth->local.nl_groups = subscriptions;*/ 32 /*rth->local.nl_groups = subscriptions;*/
36 33
37 xbind(rth->fd, (struct sockaddr*)&rth->local, sizeof(rth->local)); 34 xbind(rth->fd, (struct sockaddr*)&rth->local, sizeof(rth->local));
38 addr_len = sizeof(rth->local); 35 addr_len = sizeof(rth->local);
36 getsockname(rth->fd, (struct sockaddr*)&rth->local, &addr_len);
37
38/* too much paranoia
39 if (getsockname(rth->fd, (struct sockaddr*)&rth->local, &addr_len) < 0) 39 if (getsockname(rth->fd, (struct sockaddr*)&rth->local, &addr_len) < 0)
40 bb_perror_msg_and_die("getsockname"); 40 bb_perror_msg_and_die("getsockname");
41 if (addr_len != sizeof(rth->local)) 41 if (addr_len != sizeof(rth->local))
42 bb_error_msg_and_die("wrong address length %d", addr_len); 42 bb_error_msg_and_die("wrong address length %d", addr_len);
43 if (rth->local.nl_family != AF_NETLINK) 43 if (rth->local.nl_family != AF_NETLINK)
44 bb_error_msg_and_die("wrong address family %d", rth->local.nl_family); 44 bb_error_msg_and_die("wrong address family %d", rth->local.nl_family);
45*/
45 rth->seq = time(NULL); 46 rth->seq = time(NULL);
46 return 0; 47 return 0;
47} 48}