#include <ifaddrs.h>
#include <netdb.h>
+#ifndef SUN_LEN
+# define SUN_LEN (sun) \
+ (strlen((sun)->sun_path) + offsetof(struct sockaddr_un, sun_path))
+#endif
+
/*----- Data structures ---------------------------------------------------*/
/* Unix socket status values. */
sockaddr_in_range_p(sa, &i->minaddr, &i->maxaddr)) {
D( fprintf(stderr, "noip(%d): match!\n", pid); )
addr.sa.sa_family = sa->sa_family;
- ipaddr_to_sockaddr(&addr.sa, &i->bindaddr);
+ switch (i->how) {
+ case EXPLICIT: ipaddr_to_sockaddr(&addr.sa, &i->bindaddr); break;
+ case SAME: copy_sockaddr(&addr.sa, sa); break;
+ }
+ port_to_sockaddr(&addr.sa, 0);
goto found;
}
}