1*4882a593SmuzhiyunPatch originally from Fedora 2*4882a593Smuzhiyun 3*4882a593Smuzhiyunhttp://pkgs.fedoraproject.org/cgit/tftp.git/ 4*4882a593Smuzhiyun 5*4882a593SmuzhiyunUpstream-Status: Pending 6*4882a593Smuzhiyun 7*4882a593Smuzhiyundiff -up tftp-hpa-5.2/tftpd/recvfrom.c.test tftp-hpa-5.2/tftpd/recvfrom.c 8*4882a593Smuzhiyun--- tftp-hpa-5.2/tftpd/recvfrom.c.test 2011-12-11 23:13:52.000000000 +0100 9*4882a593Smuzhiyun+++ tftp-hpa-5.2/tftpd/recvfrom.c 2012-01-04 10:05:17.852042256 +0100 10*4882a593Smuzhiyun@@ -149,16 +149,16 @@ myrecvfrom(int s, void *buf, int len, un 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun /* Try to enable getting the return address */ 13*4882a593Smuzhiyun #ifdef IP_RECVDSTADDR 14*4882a593Smuzhiyun- if (from->sa_family == AF_INET) 15*4882a593Smuzhiyun+ if (from->sa_family == AF_INET || !from->sa_family) 16*4882a593Smuzhiyun setsockopt(s, IPPROTO_IP, IP_RECVDSTADDR, &on, sizeof(on)); 17*4882a593Smuzhiyun #endif 18*4882a593Smuzhiyun #ifdef IP_PKTINFO 19*4882a593Smuzhiyun- if (from->sa_family == AF_INET) 20*4882a593Smuzhiyun+ if (from->sa_family == AF_INET || !from->sa_family) 21*4882a593Smuzhiyun setsockopt(s, IPPROTO_IP, IP_PKTINFO, &on, sizeof(on)); 22*4882a593Smuzhiyun #endif 23*4882a593Smuzhiyun #ifdef HAVE_IPV6 24*4882a593Smuzhiyun #ifdef IPV6_RECVPKTINFO 25*4882a593Smuzhiyun- if (from->sa_family == AF_INET6) 26*4882a593Smuzhiyun+ if (from->sa_family == AF_INET6 || !from->sa_family) 27*4882a593Smuzhiyun setsockopt(s, IPPROTO_IPV6, IPV6_RECVPKTINFO, &on, sizeof(on)); 28*4882a593Smuzhiyun #endif 29*4882a593Smuzhiyun #endif 30