skbcreate.c

来自「ipsec vpn」· C语言 代码 · 共 40 行

C
40
字号
#include "kernelenv.h"#include "skb_fake.h"struct sk_buff *skbFromArray(const unsigned char *buf, const unsigned int len){  struct sk_buff *skb;  skb = talloc(NULL, struct sk_buff);  memset(skb, 0, sizeof(*skb));  skb->head=talloc_size(NULL, len+128);  memset(skb->head, 0x99, len+128);            /* just so that we can tell */  skb->data=skb->head+64;                      /* leave some head room */  memcpy(skb->data, buf, len);  skb->tail=skb->data + len;  skb->end=skb->head+len+128;  skb->len = len;  skb->data_len = 0;  skb->protocol = ETH_P_IP;  skb->mac_len = 14;  skb->mac.raw = skb->data;  return skb;}void skb_ethernet_ip_setup(struct sk_buff *skb){  int iphlen;  skb->nh.raw = skb_pull(skb, skb->mac_len);  iphlen = (skb->nh.iph->ihl<<2);  skb->h.raw = skb_pull(skb, iphlen);}  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?