getaddr
if ((addr = (struct sockaddr *)getaddr(RTA_IFA,
if ((netmask = (struct sockaddr *)getaddr(RTA_NETMASK,
if ((addr_dl = (struct sockaddr_dl *)getaddr
if ((addr = (struct sockaddr *)getaddr(RTA_IFA,
(struct sockaddr *)getaddr(RTA_NETMASK,
if ((addr_dl = (struct sockaddr_dl *)getaddr
static void *getaddr(int, int, void *);
if (!getaddr(rcip, RTA_IFA, tok, atype)) {
if (!getaddr(rcip, RTA_IFP, tok, atype)) {
if (!getaddr(rcip, RTA_GATEWAY, tok, atype)) {
if (!getaddr(rcip, RTA_DST, tok, atype)) {
if (!getaddr(rcip, RTA_NETMASK, tok, atype)) {
if (!getaddr(rcip, RTA_SRC, tok, atype)) {
if (!getaddr(rcip, RTA_DST, tok, atype)) {
if (!getaddr(rcip, RTA_GATEWAY, tok, atype)) {
if (!getaddr(rcip, RTA_NETMASK, tok, atype)) {
return (getaddr(rcip, RTA_NETMASK, s, ADDR_TYPE_NET));
static boolean_t getaddr(rtcmd_irep_t *rcip, int which, char *s,
struct strioctl getaddr;
getaddr.ic_cmd = TI_GETINFO;
getaddr.ic_timout = -1;
getaddr.ic_len = sizeof (*ack_p) + (2 * sizeof (sin6_t));
getaddr.ic_dp = (char *)ack_p;
err = strioctl(fp->f_vnode, I_STR, (intptr_t)&getaddr,