mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
Update.
* sysdeps/unix/sysv/linux/ifaddrs.c (netlink_open): Call getsockname to get the actual PID value used in the records passed up. (getifaddrs): Don't initialize nh.pid here. 2003-06-02 Ulrich Drepper <drepper@redhat.com>
This commit is contained in:
parent
7aebf8554c
commit
332afd9ecd
@ -1,3 +1,9 @@
|
|||||||
|
2003-06-02 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/ifaddrs.c (netlink_open): Call getsockname
|
||||||
|
to get the actual PID value used in the records passed up.
|
||||||
|
(getifaddrs): Don't initialize nh.pid here.
|
||||||
|
|
||||||
2003-06-02 Ulrich Drepper <drepper@redhat.com>
|
2003-06-02 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/ifaddrs.c (netlink_receive): Minor
|
* sysdeps/unix/sysv/linux/ifaddrs.c (netlink_receive): Minor
|
||||||
|
@ -233,9 +233,17 @@ netlink_open (struct netlink_handle *h)
|
|||||||
nladdr.nl_family = AF_NETLINK;
|
nladdr.nl_family = AF_NETLINK;
|
||||||
if (__bind (h->fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) < 0)
|
if (__bind (h->fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) < 0)
|
||||||
{
|
{
|
||||||
|
close_and_out:
|
||||||
netlink_close (h);
|
netlink_close (h);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
/* Determine the ID the kernel assigned for this netlink connection.
|
||||||
|
It is not necessarily the PID if there is more than one socket
|
||||||
|
open. */
|
||||||
|
socklen_t addr_len = sizeof (nladdr);
|
||||||
|
if (__getsockname (h->fd, (struct sockaddr *) &nladdr, &addr_len) < 0)
|
||||||
|
goto close_and_out;
|
||||||
|
h->pid = nladdr.nl_pid;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -303,8 +311,6 @@ getifaddrs (struct ifaddrs **ifap)
|
|||||||
return fallback_getifaddrs (ifap);
|
return fallback_getifaddrs (ifap);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
nh.pid = getpid ();
|
|
||||||
|
|
||||||
/* Tell the kernel that we wish to get a list of all
|
/* Tell the kernel that we wish to get a list of all
|
||||||
active interfaces. */
|
active interfaces. */
|
||||||
if (netlink_sendreq (&nh, RTM_GETLINK) < 0)
|
if (netlink_sendreq (&nh, RTM_GETLINK) < 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user