nicklezhang
驱动牛犊
驱动牛犊
  • 注册日期2004-03-29
  • 最后登录2017-06-19
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望145点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1582回复:2

ip_send 死机问题(20分)

楼主#
更多 发布于:2004-06-15 10:21
ip_send出错:
size = size & 0xFFFFFFF0
new_skb = alloc_skb(size ,GFP_ATOMIC);
if(!new_skb)
    return NF_ACCEPT;

skb_put(new_skb, size);
memcpy((void *)(new_skb->data),
       (void *)ip_header, // 只想要拷的数据报
        size);

new_skb->nh.iph = (struct iphdr*)new_skb->data;
new_skb->h.uh = (struct udphdr*)(new_skb->data + ip_header->ihl*4);
new_skb->len = size;
new_skb->protocol = IPPROTO_UDP;

//new_skb->next = NULL;
//new_skb->prev = NULL;
//new_skb->list = NULL;
new_skb->pkt_type = PACKET_OUTGOING;
ip_send(new_skb);

可是一到ip_send(new_skb);就死机
为什么?
注:我是在nf_local_out中运行以上代码的

[编辑 -  6/15/04 by  nicklezhang]
freasy
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-15 10:46
根据我得经验,是因为你的模块依赖另外一个模块。
所以,在加载这个模块之前,你应该把包含了do_ip_send这个函数得模块先加载进去。
小弟新学,错误之处,请指正
nicklezhang
驱动牛犊
驱动牛犊
  • 注册日期2004-03-29
  • 最后登录2017-06-19
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望145点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2004-06-15 11:00
是不是ip_send的new_skb有什么参数设置不对呀,那该是什么呢

[编辑 -  6/15/04 by  nicklezhang]
游客

返回顶部