diff options
| -rw-r--r-- | zebra/connected.c | 28 | ||||
| -rw-r--r-- | zebra/connected.h | 5 | ||||
| -rw-r--r-- | zebra/if_ioctl.c | 27 | ||||
| -rw-r--r-- | zebra/if_ioctl_solaris.c | 3 | ||||
| -rw-r--r-- | zebra/if_netlink.c | 6 | ||||
| -rw-r--r-- | zebra/kernel_socket.c | 4 | 
6 files changed, 10 insertions, 63 deletions
diff --git a/zebra/connected.c b/zebra/connected.c index 1368a12289..387ad9c41d 100644 --- a/zebra/connected.c +++ b/zebra/connected.c @@ -463,8 +463,7 @@ void connected_up_ipv6(struct interface *ifp, struct connected *ifc)  /* Add connected IPv6 route to the interface. */  void connected_add_ipv6(struct interface *ifp, int flags, struct in6_addr *addr, -			u_char prefixlen, struct in6_addr *broad, -			const char *label) +			u_char prefixlen, const char *label)  {  	struct prefix_ipv6 *p;  	struct connected *ifc; @@ -487,29 +486,6 @@ void connected_add_ipv6(struct interface *ifp, int flags, struct in6_addr *addr,  	p->prefixlen = prefixlen;  	ifc->address = (struct prefix *)p; -	/* If there is broadcast or peer address. */ -	if (broad) { -		if (IN6_IS_ADDR_UNSPECIFIED(broad)) -			zlog_warn( -				"warning: %s called for interface %s with unspecified " -				"destination address; ignoring!", -				__func__, ifp->name); -		else { -			p = prefix_ipv6_new(); -			p->family = AF_INET6; -			IPV6_ADDR_COPY(&p->prefix, broad); -			p->prefixlen = prefixlen; -			ifc->destination = (struct prefix *)p; -		} -	} -	if (CHECK_FLAG(ifc->flags, ZEBRA_IFA_PEER) && !ifc->destination) { -		zlog_warn( -			"warning: %s called for interface %s " -			"with peer flag set, but no peer address supplied", -			__func__, ifp->name); -		UNSET_FLAG(ifc->flags, ZEBRA_IFA_PEER); -	} -  	/* Label of this address. */  	if (label)  		ifc->label = XSTRDUP(MTYPE_CONNECTED_LABEL, label); @@ -562,7 +538,7 @@ void connected_down_ipv6(struct interface *ifp, struct connected *ifc)  }  void connected_delete_ipv6(struct interface *ifp, struct in6_addr *address, -			   u_char prefixlen, struct in6_addr *broad) +			   u_char prefixlen)  {  	struct prefix_ipv6 p;  	struct connected *ifc; diff --git a/zebra/connected.h b/zebra/connected.h index b67442fa3b..c6da36956d 100644 --- a/zebra/connected.h +++ b/zebra/connected.h @@ -43,10 +43,9 @@ extern void connected_down_ipv4(struct interface *, struct connected *);  extern void connected_add_ipv6(struct interface *ifp, int flags,  			       struct in6_addr *address, u_char prefixlen, -			       struct in6_addr *broad, const char *label); +			       const char *label);  extern void connected_delete_ipv6(struct interface *ifp, -				  struct in6_addr *address, u_char prefixlen, -				  struct in6_addr *broad); +				  struct in6_addr *address, u_char prefixlen);  extern void connected_up_ipv6(struct interface *, struct connected *);  extern void connected_down_ipv6(struct interface *ifp, struct connected *); diff --git a/zebra/if_ioctl.c b/zebra/if_ioctl.c index a65fcb2b8c..6396911e1b 100644 --- a/zebra/if_ioctl.c +++ b/zebra/if_ioctl.c @@ -214,7 +214,7 @@ static int if_getaddrs(void)  			dest_pnt = NULL; -			if (ifap->ifa_dstaddr +			if (if_is_pointopoint(ifp) && ifap->ifa_dstaddr  			    && !IPV4_ADDR_SAME(&addr->sin_addr,  					       &((struct sockaddr_in *)  							 ifap->ifa_dstaddr) @@ -239,35 +239,12 @@ static int if_getaddrs(void)  		if (ifap->ifa_addr->sa_family == AF_INET6) {  			struct sockaddr_in6 *addr;  			struct sockaddr_in6 *mask; -			struct sockaddr_in6 *dest; -			struct in6_addr *dest_pnt;  			int flags = 0;  			addr = (struct sockaddr_in6 *)ifap->ifa_addr;  			mask = (struct sockaddr_in6 *)ifap->ifa_netmask;  			prefixlen = ip6_masklen(mask->sin6_addr); -			dest_pnt = NULL; - -			if (ifap->ifa_dstaddr -			    && !IPV6_ADDR_SAME(&addr->sin6_addr, -					       &((struct sockaddr_in6 *) -							 ifap->ifa_dstaddr) -							->sin6_addr)) { -				dest = (struct sockaddr_in6 *)ifap->ifa_dstaddr; -				dest_pnt = &dest->sin6_addr; -				flags = ZEBRA_IFA_PEER; -			} else if (ifap->ifa_broadaddr -				   && !IPV6_ADDR_SAME( -					      &addr->sin6_addr, -					      &((struct sockaddr_in6 *) -							ifap->ifa_broadaddr) -						       ->sin6_addr)) { -				dest = (struct sockaddr_in6 *) -					       ifap->ifa_broadaddr; -				dest_pnt = &dest->sin6_addr; -			} -  #if defined(KAME)  			if (IN6_IS_ADDR_LINKLOCAL(&addr->sin6_addr)) {  				addr->sin6_scope_id = @@ -279,7 +256,7 @@ static int if_getaddrs(void)  #endif  			connected_add_ipv6(ifp, flags, &addr->sin6_addr, -					   prefixlen, dest_pnt, NULL); +					   prefixlen, NULL);  		}  	} diff --git a/zebra/if_ioctl_solaris.c b/zebra/if_ioctl_solaris.c index 3d53194593..9ec575b5b0 100644 --- a/zebra/if_ioctl_solaris.c +++ b/zebra/if_ioctl_solaris.c @@ -317,8 +317,7 @@ static int if_get_addr(struct interface *ifp, struct sockaddr *addr,  				   (struct in_addr *)dest_pnt, label);  	else if (af == AF_INET6)  		connected_add_ipv6(ifp, flags, &SIN6(addr)->sin6_addr, -				   prefixlen, (struct in6_addr *)dest_pnt, -				   label); +				   prefixlen, label);  	return 0;  } diff --git a/zebra/if_netlink.c b/zebra/if_netlink.c index 329f7ee578..9aa560bfa1 100644 --- a/zebra/if_netlink.c +++ b/zebra/if_netlink.c @@ -1001,12 +1001,10 @@ int netlink_interface_addr(struct sockaddr_nl *snl, struct nlmsghdr *h,  			      & (IFA_F_DADFAILED | IFA_F_TENTATIVE)))  				connected_add_ipv6(  					ifp, flags, (struct in6_addr *)addr, -					ifa->ifa_prefixlen, -					(struct in6_addr *)broad, label); +					ifa->ifa_prefixlen, label);  		} else  			connected_delete_ipv6(ifp, (struct in6_addr *)addr, -					      ifa->ifa_prefixlen, -					      (struct in6_addr *)broad); +					      ifa->ifa_prefixlen);  	}  	return 0; diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c index e2a1deb9ac..c6fb34562f 100644 --- a/zebra/kernel_socket.c +++ b/zebra/kernel_socket.c @@ -762,12 +762,10 @@ int ifam_read(struct ifa_msghdr *ifam)  		if (ifam->ifam_type == RTM_NEWADDR)  			connected_add_ipv6(ifp, flags, &addr.sin6.sin6_addr,  					   ip6_masklen(mask.sin6.sin6_addr), -					   &brd.sin6.sin6_addr,  					   (isalias ? ifname : NULL));  		else  			connected_delete_ipv6(ifp, &addr.sin6.sin6_addr, -					      ip6_masklen(mask.sin6.sin6_addr), -					      &brd.sin6.sin6_addr); +					      ip6_masklen(mask.sin6.sin6_addr));  		break;  	default:  		/* Unsupported family silently ignore... */  | 
