20121029 Workaround: some getnameinfo() implementations append datalink information to an IP address, which messes up the default mynetworks value. Reported by Quanah Gibson-Mount. File: global/mynetworks.c *** ./src/global/mynetworks.c- Mon Jan 2 20:18:58 2012 --- ./src/global/mynetworks.c Mon Oct 29 14:15:06 2012 *************** *** 59,64 **** --- 59,65 ---- #include #include #include + #include /* Global library. */ *************** *** 252,257 **** --- 253,260 ---- MAI_V6ADDR_BITS - shift); SOCKADDR_TO_HOSTADDR(SOCK_ADDR_PTR(&net6), SOCK_ADDR_LEN(&net6), &hostaddr, (MAI_SERVPORT_STR *) 0, 0); + /* Remove unwanted datalink suffix from IPv6 address. */ + (void) split_at(hostaddr.buf, '%'); vstring_sprintf_append(result, "[%s]/%d ", hostaddr.buf, MAI_V6ADDR_BITS - shift); net_mask_count++; *** ./src/global/Makefile.in- Sun Sep 23 19:28:57 2012 --- ./src/global/Makefile.in Mon Oct 29 14:17:03 2012 *************** *** 1758,1763 **** --- 1758,1764 ---- mynetworks.o: ../../include/myaddrinfo.h mynetworks.o: ../../include/name_mask.h mynetworks.o: ../../include/sock_addr.h + mynetworks.o: ../../include/split_at.h mynetworks.o: ../../include/sys_defs.h mynetworks.o: ../../include/vbuf.h mynetworks.o: ../../include/vstring.h