diff options
Diffstat (limited to 'smtpd/parser.c')
-rw-r--r-- | smtpd/parser.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/smtpd/parser.c b/smtpd/parser.c index df90e508..997e3405 100644 --- a/smtpd/parser.c +++ b/smtpd/parser.c @@ -16,6 +16,8 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include "includes.h" + #include <sys/types.h> #include <sys/queue.h> #include <sys/socket.h> @@ -281,7 +283,9 @@ text_to_sockaddr(struct sockaddr *sa, int family, const char *str) in = (struct sockaddr_in *)sa; memset(in, 0, sizeof *in); +#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN in->sin_len = sizeof(struct sockaddr_in); +#endif in->sin_family = PF_INET; in->sin_addr.s_addr = ina.s_addr; return (0); @@ -304,7 +308,9 @@ text_to_sockaddr(struct sockaddr *sa, int family, const char *str) in6 = (struct sockaddr_in6 *)sa; memset(in6, 0, sizeof *in6); +#ifdef HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN in6->sin6_len = sizeof(struct sockaddr_in6); +#endif in6->sin6_family = PF_INET6; in6->sin6_addr = in6a; @@ -313,7 +319,7 @@ text_to_sockaddr(struct sockaddr *sa, int family, const char *str) if (IN6_IS_ADDR_LINKLOCAL(&in6a) || IN6_IS_ADDR_MC_LINKLOCAL(&in6a) || - IN6_IS_ADDR_MC_INTFACELOCAL(&in6a)) + IN6_IS_ADDR_MC_NODELOCAL(&in6a)) if ((in6->sin6_scope_id = if_nametoindex(cp))) return (0); |