- if (ifp->if_flags & IFF_RUNNING)
- if_rtinit(ifp, -1); /* delete previous route */
- sin = (struct sockaddr_in *)&ifr->ifr_addr;
- ifp->if_addr = *(struct sockaddr *)sin;
- ifp->if_net = in_netof(sin->sin_addr);
- ifp->if_host[0] = in_lnaof(sin->sin_addr);
- ifp->if_broadaddr = *(struct sockaddr *)sin;
- sin = (struct sockaddr_in *)&ifp->if_broadaddr;
- sin->sin_addr = if_makeaddr(ifp->if_net, INADDR_ANY);
- ifp->if_flags |= IFF_BROADCAST;
- if (ifp->if_flags & IFF_RUNNING)
- if_rtinit(ifp, RTF_UP);
- else