📄 ipfsend.c,v
字号:
head 1.1;access;symbols;locks dls:1.1; strict;comment @ * @;1.1date 97.09.21.19.27.09; author dls; state Dist;branches;next ;desc@@1.1log@pre-3e code@text@/* ipfsend.c - ipfsend */#include <conf.h>#include <kernel.h>#include <network.h>/*------------------------------------------------------------------------ * ipfsend - send one fragment of an IP datagram *------------------------------------------------------------------------ */int ipfsend(pni, nexthop, pep, offset, maxdlen, offindg)struct netif *pni;IPaddr nexthop;struct ep *pep;int offset, maxdlen, offindg;{ struct ep *pepnew; struct ip *pip, *pipnew; int hlen, len; pepnew = (struct ep *)getbuf(Net.netpool); if (pepnew == (struct ep *)SYSERR) return SYSERR; pepnew->ep_order = ~0; hlen = ipfhcopy(pepnew, pep, offindg); /* copy the headers */ pip = (struct ip *)pep->ep_data; pipnew = (struct ip *)pepnew->ep_data; pipnew->ip_fragoff = IP_MF | (offindg>>3); pipnew->ip_len = len = maxdlen + hlen; pipnew->ip_cksum = 0; iph2net(pipnew); pepnew->ep_order &= ~EPO_IP; pipnew->ip_cksum = cksum(pipnew, hlen); blkcopy(&pepnew->ep_data[hlen], &pep->ep_data[IP_HLEN(pip)+offset], maxdlen); pepnew->ep_nexthop = nexthop; return netwrite(pni, pepnew, EP_HLEN+len);}@
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -