Changeset View
Changeset View
Standalone View
Standalone View
head/sys/net/rtsock.c
Show First 20 Lines • Show All 612 Lines • ▼ Show 20 Lines | #define senderr(e) { error = e; goto flush;} | ||||
/* | /* | ||||
* rt_xaddrs() performs s6_addr[2] := sin6_scope_id for AF_INET6 | * rt_xaddrs() performs s6_addr[2] := sin6_scope_id for AF_INET6 | ||||
* link-local address because rtrequest requires addresses with | * link-local address because rtrequest requires addresses with | ||||
* embedded scope id. | * embedded scope id. | ||||
*/ | */ | ||||
if (rt_xaddrs((caddr_t)(rtm + 1), len + (caddr_t)rtm, &info)) | if (rt_xaddrs((caddr_t)(rtm + 1), len + (caddr_t)rtm, &info)) | ||||
senderr(EINVAL); | senderr(EINVAL); | ||||
if (rtm->rtm_flags & RTF_RNH_LOCKED) | |||||
senderr(EINVAL); | |||||
info.rti_flags = rtm->rtm_flags; | info.rti_flags = rtm->rtm_flags; | ||||
if (info.rti_info[RTAX_DST] == NULL || | if (info.rti_info[RTAX_DST] == NULL || | ||||
info.rti_info[RTAX_DST]->sa_family >= AF_MAX || | info.rti_info[RTAX_DST]->sa_family >= AF_MAX || | ||||
(info.rti_info[RTAX_GATEWAY] != NULL && | (info.rti_info[RTAX_GATEWAY] != NULL && | ||||
info.rti_info[RTAX_GATEWAY]->sa_family >= AF_MAX)) | info.rti_info[RTAX_GATEWAY]->sa_family >= AF_MAX)) | ||||
senderr(EINVAL); | senderr(EINVAL); | ||||
saf = info.rti_info[RTAX_DST]->sa_family; | saf = info.rti_info[RTAX_DST]->sa_family; | ||||
/* | /* | ||||
▲ Show 20 Lines • Show All 1,367 Lines • Show Last 20 Lines |