In general these messages do not help.  Here we have two cases of
messages, either logged at LOG_INFO or LOG_ERR.

In the first case a proper error code is returned via ioctl(2), so
the userland application knows it has done something incorrect.

The second case correspond to a ENOMEM error, which is something that
can happen and is properly handled (goto cleanup).

Ok?

Index: netinet6/in6.c
===================================================================
RCS file: /cvs/src/sys/netinet6/in6.c,v
retrieving revision 1.161
diff -u -p -r1.161 in6.c
--- netinet6/in6.c      18 Jul 2015 15:05:32 -0000      1.161
+++ netinet6/in6.c      10 Aug 2015 20:38:04 -0000
@@ -633,17 +633,10 @@ in6_update_ifa(struct ifnet *ifp, struct
         * must be 128.
         */
        if (ifra->ifra_dstaddr.sin6_family == AF_INET6) {
-               if ((ifp->if_flags & (IFF_POINTOPOINT|IFF_LOOPBACK)) == 0) {
-                       /* XXX: noisy message */
-                       nd6log((LOG_INFO, "in6_update_ifa: a destination can "
-                           "be specified for a p2p or a loopback IF only\n"));
+               if ((ifp->if_flags & (IFF_POINTOPOINT|IFF_LOOPBACK)) == 0)
                        return (EINVAL);
-               }
-               if (plen != 128) {
-                       nd6log((LOG_INFO, "in6_update_ifa: prefixlen should "
-                           "be 128 when dstaddr is specified\n"));
+               if (plen != 128)
                        return (EINVAL);
-               }
        }
        /* lifetime consistency check */
        lt = &ifra->ifra_lifetime;
@@ -703,10 +696,6 @@ in6_update_ifa(struct ifnet *ifp, struct
                 */
                if (ia6->ia_prefixmask.sin6_len &&
                    in6_mask2len(&ia6->ia_prefixmask.sin6_addr, NULL) != plen) {
-                       nd6log((LOG_INFO, "in6_update_ifa: the prefix length of 
an"
-                           " existing (%s) address should not be changed\n",
-                           inet_ntop(AF_INET6, &ia6->ia_addr.sin6_addr,
-                               addr, sizeof(addr))));
                        error = EINVAL;
                        goto unlink;
                }
@@ -806,14 +795,8 @@ in6_update_ifa(struct ifnet *ifp, struct
                    ifra->ifra_addr.sin6_addr.s6_addr32[3];
                llsol.sin6_addr.s6_addr8[12] = 0xff;
                imm = in6_joingroup(ifp, &llsol.sin6_addr, &error);
-               if (!imm) {
-                       nd6log((LOG_ERR, "in6_update_ifa: "
-                           "addmulti failed for %s on %s (errno=%d)\n",
-                           inet_ntop(AF_INET6, &llsol.sin6_addr,
-                               addr, sizeof(addr)),
-                           ifp->if_xname, error));
+               if (!imm)
                        goto cleanup;
-               }
                LIST_INSERT_HEAD(&ia6->ia6_memberships, imm, i6mm_chain);
 
                bzero(&mltmask, sizeof(mltmask));
@@ -867,15 +850,8 @@ in6_update_ifa(struct ifnet *ifp, struct
                        rtfree(rt);
                }
                imm = in6_joingroup(ifp, &mltaddr.sin6_addr, &error);
-               if (!imm) {
-                       nd6log((LOG_WARNING,
-                           "in6_update_ifa: addmulti failed for "
-                           "%s on %s (errno=%d)\n",
-                           inet_ntop(AF_INET6, &mltaddr.sin6_addr,
-                               addr, sizeof(addr)),
-                           ifp->if_xname, error));
+               if (!imm)
                        goto cleanup;
-               }
                LIST_INSERT_HEAD(&ia6->ia6_memberships, imm, i6mm_chain);
 
                /*
@@ -884,11 +860,6 @@ in6_update_ifa(struct ifnet *ifp, struct
                if (in6_nigroup(ifp, hostname, hostnamelen, &mltaddr) == 0) {
                        imm = in6_joingroup(ifp, &mltaddr.sin6_addr, &error);
                        if (!imm) {
-                               nd6log((LOG_WARNING, "in6_update_ifa: "
-                                   "addmulti failed for %s on %s (errno=%d)\n",
-                                   inet_ntop(AF_INET6, &mltaddr.sin6_addr,
-                                       addr, sizeof(addr)),
-                                   ifp->if_xname, error));
                                /* XXX not very fatal, go on... */
                        } else {
                                LIST_INSERT_HEAD(&ia6->ia6_memberships,
@@ -935,14 +906,8 @@ in6_update_ifa(struct ifnet *ifp, struct
                        rtfree(rt);
                }
                imm = in6_joingroup(ifp, &mltaddr.sin6_addr, &error);
-               if (!imm) {
-                       nd6log((LOG_WARNING, "in6_update_ifa: "
-                           "addmulti failed for %s on %s (errno=%d)\n",
-                           inet_ntop(AF_INET6, &mltaddr.sin6_addr,
-                               addr, sizeof(addr)),
-                           ifp->if_xname, error));
+               if (!imm)
                        goto cleanup;
-               }
                LIST_INSERT_HEAD(&ia6->ia6_memberships, imm, i6mm_chain);
        }
 

Reply via email to