diff --git a/apache2/msc_util.c b/apache2/msc_util.c index 8f9d3d0e..1e20473d 100644 --- a/apache2/msc_util.c +++ b/apache2/msc_util.c @@ -834,7 +834,9 @@ char *m_strcasestr(const char *haystack, const char *needle) { int inet_pton(int family, const char *src, void *dst) { struct addrinfo addr; struct sockaddr_in *in = NULL; +#if APR_HAVE_IPV6 struct sockaddr_in6 *in6 = NULL; +#endif struct addrinfo *addr_info = NULL; memset(&addr, 0, sizeof(struct addrinfo)); @@ -849,11 +851,13 @@ int inet_pton(int family, const char *src, void *dst) { if(in != NULL) memcpy(dst, &in->sin_addr, 4); } +#if APR_HAVE_IPV6 else if (addr_info->ai_family == AF_INET6) { in6 = (struct sockaddr_in6*)addr_info->ai_addr; if(in6 != NULL) memcpy(dst, &in6->sin6_addr, 16); } +#endif else { freeaddrinfo(addr_info); return -1; diff --git a/apache2/re_operators.c b/apache2/re_operators.c index 9c0628db..d8638c46 100644 --- a/apache2/re_operators.c +++ b/apache2/re_operators.c @@ -305,7 +305,9 @@ static int msre_op_ipmatchFromFile_param_init(msre_rule *rule, char **error_msg) static int msre_op_ipmatchFromFile_execute(modsec_rec *msr, msre_rule *rule, msre_var *var, char **error_msg) { TreeRoot *rtree = rule->op_param_data; struct in_addr in; +#if APR_HAVE_IPV6 struct in6_addr in6; +#endif if (error_msg == NULL) return -1; @@ -336,6 +338,7 @@ static int msre_op_ipmatchFromFile_execute(modsec_rec *msr, msre_rule *rule, msr return 1; } } +#if APR_HAVE_IPV6 else { if (inet_pton(AF_INET6, var->value, &in6) <= 0) { if (msr->txcfg->debuglog_level >= 9) { @@ -350,6 +353,7 @@ static int msre_op_ipmatchFromFile_execute(modsec_rec *msr, msre_rule *rule, msr return 1; } } +#endif return 0; }