Annotation of xinu/sys/ipsend.c, revision 1.1.1.1

1.1       root        1: /* ipsend.c - ipsend */
                      2: 
                      3: #include <conf.h>
                      4: #include <kernel.h>
                      5: #include <network.h>
                      6: 
                      7: /*------------------------------------------------------------------------
                      8:  *  ipsend  -  fill in IP header and send datagram to specified address
                      9:  *------------------------------------------------------------------------
                     10:  */
                     11: ipsend(faddr, packet, datalen)
                     12: IPaddr faddr;
                     13: struct epacket *packet;
                     14: int    datalen;
                     15: {
                     16:        register struct ip *ipptr;
                     17: 
                     18:        packet->ep_hdr.e_ptype = hs2net(EP_IP);
                     19:        ipptr = (struct ip *) packet->ep_data;
                     20:        ipptr->i_verlen = IVERLEN;
                     21:        ipptr->i_svctyp = ISVCTYP;
                     22:        ipptr->i_paclen = hs2net( datalen+IPHLEN );
                     23:        ipptr->i_id = hs2net(ipackid++);
                     24:        ipptr->i_fragoff = hs2net(IFRAGOFF);
                     25:        ipptr->i_tim2liv = ITIM2LIV;
                     26:        ipptr->i_cksum = 0;
                     27:        getaddr(ipptr->i_src);
                     28:        blkcopy(ipptr->i_dest, faddr, IPLEN);
                     29:        ipptr->i_cksum = cksum(ipptr, IPHLEN>>1);
                     30:        return( route(faddr, packet, EHLEN+IPHLEN+datalen) );
                     31: }
                     32: int    ipackid = 1;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.