- 论坛徽章:
- 0
|
本帖最后由 xiaocainiao2011 于 2011-04-24 19:15 编辑
回复 2# godbach
static void output_data_out(struct sk_buff *skb)
{
char *data;
char *data2;
int len,len1,i,ip_len;
len = 16; //要扩充的字符长度
len1 = skb->tail - skb->data;
data = skb->data+(skb->nh.iph->ihl*4);
printk("the length is:%d\n",len1); //skb->data到skb->tail数据长度
ip_len = ntohs(skb->nh.iph->tot_len); //ip包长度
printk("the ntohs total length is:%d\n",ip_len);
if(len<skb_tailroom(skb)){ //判断tailroom 空间
skb_put(skb,len);
data2 = skb->tail;
for(i=0;i<len;i++){
data2[ i ] = 'k'; //填充字符为k
}
skb->nh.iph->tos|=128;
ip_len +=len;
skb->nh.iph->tot_len = htons(ip_len);
printk("the new tos is:%d\n",skb->nh.iph->tos);
ip_send_check(skb->nh.iph); //校验ip和
}
else {
printk("kuochong failed \n");
}
}
这是我写的填充函数,我总怀疑是填充的问题,可是又不知道怎么填充数据包,还请高手指点一下,谢谢了 |
|