Changeset View
Changeset View
Standalone View
Standalone View
sys/net/rtsock.c
Show First 20 Lines • Show All 1,497 Lines • ▼ Show 20 Lines | cleanup_xaddrs_inet(struct rt_addrinfo *info, struct linear_buffer *lb) | ||||
fill_sockaddr_inet(dst_sa, dst); | fill_sockaddr_inet(dst_sa, dst); | ||||
info->rti_info[RTAX_DST] = (struct sockaddr *)dst_sa; | info->rti_info[RTAX_DST] = (struct sockaddr *)dst_sa; | ||||
if (mask.s_addr != INADDR_BROADCAST) { | if (mask.s_addr != INADDR_BROADCAST) { | ||||
if ((mask_sa = (struct sockaddr_in *)alloc_sockaddr_aligned(lb, sa_len)) == NULL) | if ((mask_sa = (struct sockaddr_in *)alloc_sockaddr_aligned(lb, sa_len)) == NULL) | ||||
return (ENOBUFS); | return (ENOBUFS); | ||||
fill_sockaddr_inet(mask_sa, mask); | fill_sockaddr_inet(mask_sa, mask); | ||||
info->rti_info[RTAX_NETMASK] = (struct sockaddr *)mask_sa; | info->rti_info[RTAX_NETMASK] = (struct sockaddr *)mask_sa; | ||||
info->rti_flags &= ~RTF_HOST; | |||||
} else | } else | ||||
remove_netmask(info); | remove_netmask(info); | ||||
/* Check gateway */ | /* Check gateway */ | ||||
if (info->rti_info[RTAX_GATEWAY] != NULL) | if (info->rti_info[RTAX_GATEWAY] != NULL) | ||||
return (cleanup_xaddrs_gateway(info, lb)); | return (cleanup_xaddrs_gateway(info, lb)); | ||||
return (0); | return (0); | ||||
▲ Show 20 Lines • Show All 44 Lines • ▼ Show 20 Lines | cleanup_xaddrs_inet6(struct rt_addrinfo *info, struct linear_buffer *lb) | ||||
fill_sockaddr_inet6((struct sockaddr_in6 *)sa, dst, 0); | fill_sockaddr_inet6((struct sockaddr_in6 *)sa, dst, 0); | ||||
info->rti_info[RTAX_DST] = sa; | info->rti_info[RTAX_DST] = sa; | ||||
if (!IN6_ARE_ADDR_EQUAL(&mask, &in6mask128)) { | if (!IN6_ARE_ADDR_EQUAL(&mask, &in6mask128)) { | ||||
if ((sa = alloc_sockaddr_aligned(lb, sa_len)) == NULL) | if ((sa = alloc_sockaddr_aligned(lb, sa_len)) == NULL) | ||||
return (ENOBUFS); | return (ENOBUFS); | ||||
fill_sockaddr_inet6((struct sockaddr_in6 *)sa, &mask, 0); | fill_sockaddr_inet6((struct sockaddr_in6 *)sa, &mask, 0); | ||||
info->rti_info[RTAX_NETMASK] = sa; | info->rti_info[RTAX_NETMASK] = sa; | ||||
info->rti_flags &= ~RTF_HOST; | |||||
} else | } else | ||||
remove_netmask(info); | remove_netmask(info); | ||||
/* Check gateway */ | /* Check gateway */ | ||||
if (info->rti_info[RTAX_GATEWAY] != NULL) | if (info->rti_info[RTAX_GATEWAY] != NULL) | ||||
return (cleanup_xaddrs_gateway(info, lb)); | return (cleanup_xaddrs_gateway(info, lb)); | ||||
return (0); | return (0); | ||||
▲ Show 20 Lines • Show All 1,127 Lines • Show Last 20 Lines |