+ src = (struct sockaddr_pup *)&rp->rcb_laddr;
+ bcopy((caddr_t)&src->spup_net, (caddr_t)&pup->pup_snet,
+ sizeof (struct pupport));
+ } else {
+ pup->pup_snet = ifp->if_net;
+ pup->pup_shost = ifp->if_host[0];
+ /* socket is specified by user */
+ }
+ /*
+ * Fill in checksum unless user indicates none should be specified.
+ */
+ pc = (u_short *)(mtod(last, caddr_t) + last->m_len - sizeof (short));
+ if (*pc != PUP_NOCKSUM)
+ *pc = htons((u_short)pup_cksum(m, len - sizeof (short)));
+ return ((*ifp->if_output)(ifp, m, (struct sockaddr *)dst));