diff options
author | Gerald (Jerry) Carter <jerry@samba.org> | 2007-11-02 14:16:40 -0400 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-11-02 14:16:40 -0400 |
commit | 8a33035038d176ca3065daf2ff4f1c93464d5e9c (patch) | |
tree | dbc3d000567ecded7aeb80fa6eba2d5ea0ffd1fd /source3/lib/interfaces.c | |
parent | 7bbdc00545ded27f10e87c5b90345bd96d09dfd2 (diff) | |
parent | 414ab2ce46dd62d0119f03eca93783bc489af896 (diff) | |
download | samba-8a33035038d176ca3065daf2ff4f1c93464d5e9c.tar.gz samba-8a33035038d176ca3065daf2ff4f1c93464d5e9c.tar.bz2 samba-8a33035038d176ca3065daf2ff4f1c93464d5e9c.zip |
Merge branch 'v3-2-test' of git://git.samba.org/samba into v3-2-test
(This used to be commit 95de80218c10a72c7b28541c3c2e475e083b68f1)
Diffstat (limited to 'source3/lib/interfaces.c')
-rw-r--r-- | source3/lib/interfaces.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/source3/lib/interfaces.c b/source3/lib/interfaces.c index 38abb9299b..01481c50e9 100644 --- a/source3/lib/interfaces.c +++ b/source3/lib/interfaces.c @@ -696,6 +696,16 @@ int get_interfaces(struct iface_struct *ifaces, int max_interfaces) #ifdef AUTOCONF_TEST /* this is the autoconf driver to test get_interfaces() */ +static socklen_t calc_sa_size(struct sockaddr *psa) +{ + socklen_t sl = sizeof(struct sockaddr_in); +#if defined(HAVE_IPV6) + if (psa->sa_family == AF_INET6) { + salen = sizeof(struct sockaddr_in6); + } +#endif +} + int main() { struct iface_struct ifaces[MAX_INTERFACES]; @@ -710,22 +720,23 @@ int get_interfaces(struct iface_struct *ifaces, int max_interfaces) for (i=0;i<total;i++) { char addr[INET6_ADDRSTRLEN]; int ret; + socklen_t sl; printf("%-10s ", ifaces[i].name); addr[0] = '\0'; ret = getnameinfo((struct sockaddr *)&ifaces[i].ip, - sizeof(ifaces[i].ip), + calc_sa_size(&ifaces[i].ip), addr, sizeof(addr), NULL, 0, NI_NUMERICHOST); printf("IP=%s ", addr); addr[0] = '\0'; ret = getnameinfo((struct sockaddr *)&ifaces[i].netmask, - sizeof(ifaces[i].netmask), + calc_sa_size(&ifaces[i].netmask), addr, sizeof(addr), NULL, 0, NI_NUMERICHOST); printf("NETMASK=%s ", addr); addr[0] = '\0'; ret = getnameinfo((struct sockaddr *)&ifaces[i].bcast, - sizeof(ifaces[i].bcast), + calc_sa_size(&ifaces[i].bcast), addr, sizeof(addr), NULL, 0, NI_NUMERICHOST); printf("BCAST=%s\n", addr); |