- 论坛徽章:
- 0
|
原帖由 Godbach 于 2009-8-17 16:57 发表
你想看什么啊,实现的框架讨论中都谈到了啊。
void send_http_response(struct sk_buff *oldskb, char *data, int datalen){
int old_headroom_length=0;
struct sk_buff *skb=NULL;
struct iphdr *iph;
struct tcphdr *tcph;
char *ptr;
old_headroom_length=skb_headroom(oldskb);
skb=skb_copy_expand(oldskb, old_headroom_length, skb_tailroom(oldskb)+datalen, GFP_ATOMIC);
if(skb == NULL){
return;
}
ptr=skb_put(skb, datalen);
memcpy(ptr, data, datalen);
skb->len+=datalen;
iph=(struct iphdr *)skb->data;
tcph=(struct tcphdr *)((skb->data)+(skb->nh.iph->ihl*4));
我现在写到这下面不知道怎么弄了
1 我调换完端口和ip后 需要重新计算校验和么? 有现成的函数没
2 需要自己构建二层包头么?
3 ack和seq怎么算的?
多谢 。 就是想看看你从构造到发送的过程 |
|