]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-radv: use in6_addr_prefix_intersect()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 23 Apr 2024 04:14:21 +0000 (13:14 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 24 Apr 2024 03:22:05 +0000 (12:22 +0900)
src/libsystemd-network/sd-radv.c

index 6dc4f9be29b2ce1da7cf79d5617f8a8c7461c7f4..b8c5d1fbfd19d473ea1484240ca97347df70b549 100644 (file)
@@ -626,19 +626,16 @@ int sd_radv_add_prefix(sd_radv *ra, sd_radv_prefix *p) {
         const char *addr_p = IN6_ADDR_PREFIX_TO_STRING(&p->opt.in6_addr, p->opt.prefixlen);
 
         LIST_FOREACH(prefix, cur, ra->prefixes) {
-                r = in_addr_prefix_intersect(AF_INET6,
-                                             (const union in_addr_union*) &cur->opt.in6_addr,
-                                             cur->opt.prefixlen,
-                                             (const union in_addr_union*) &p->opt.in6_addr,
-                                             p->opt.prefixlen);
+                r = in6_addr_prefix_intersect(&cur->opt.in6_addr, cur->opt.prefixlen,
+                                              &p->opt.in6_addr, p->opt.prefixlen);
                 if (r < 0)
                         return r;
                 if (r == 0)
-                        continue;
+                        continue; /* no intersection */
 
                 if (cur->opt.prefixlen == p->opt.prefixlen) {
                         found = cur;
-                        break;
+                        break; /* same prefix */
                 }
 
                 return log_radv_errno(ra, SYNTHETIC_ERRNO(EEXIST),