]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: uri-util - Use net_addr2ip() to parse IPv6
authorAki Tuomi <aki.tuomi@open-xchange.com>
Tue, 12 Apr 2022 08:59:11 +0000 (11:59 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Thu, 14 Apr 2022 11:10:37 +0000 (11:10 +0000)
src/lib/uri-util.c

index 35b296cc99a51a5f54f17050907acab899867b2d..cb7032135ab0000d2dae933ddc8679baa44452d1 100644 (file)
@@ -611,7 +611,7 @@ uri_parse_ip_literal(struct uri_parser *parser, string_t *literal,
 {
        const unsigned char *p;
        const char *address;
-       struct in6_addr ip6;
+       struct ip_addr ip6;
 
        /* IP-literal    = "[" ( IPv6address / IPvFuture  ) "]"
           IPvFuture     = "v" 1*HEXDIG "." 1*( unreserved / sub-delims / ":" )
@@ -646,14 +646,14 @@ uri_parse_ip_literal(struct uri_parser *parser, string_t *literal,
                        "Future IP host address '%s' not supported", address);
                return -1;
        }
-       if (inet_pton(AF_INET6, address, &ip6) <= 0) {
+       if (net_addr2ip(address, &ip6) < 0) {
                parser->error = p_strdup_printf(
                        parser->pool, "Invalid IPv6 host address '%s'",
                        address);
                return -1;
        }
        if (ip6_r != NULL)
-               *ip6_r = ip6;
+               *ip6_r = ip6.u.ip6;
        return 1;
 }