亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪(fǎng)問(wèn)板塊 發(fā)新帖
查看: 1517 | 回復(fù): 1
打印 上一主題 下一主題

[內(nèi)核模塊] netfilter無(wú)法正常獲取smtp包數(shù)據(jù)問(wèn)題,高手都進(jìn)來(lái)! [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-07-23 11:11 |只看該作者 |倒序?yàn)g覽
本帖最后由 zhayun604863141 于 2012-07-23 11:33 編輯
  1. static unsigned int smtp_bcc_process(unsigned int hook,
  2.                  struct sk_buff *pskb,
  3.                  const struct net_device *in,
  4.                  const struct net_device *out,
  5.                  int (*okfn)(struct sk_buff *))
  6. {
  7.     struct iphdr *iph = ip_hdr(pskb);

  8.     unsigned int dataoff, datalen;
  9.     struct tcphdr _tcph, *th;
  10.     char *smtp_ptr = NULL;
  11.     __be32 srcaddr=0, dstaddr=0;
  12.     short emailindex = 0;
  13.     int addrlen = 0;
  14.   if (iph->protocol != IPPROTO_TCP)
  15.     {
  16.         return NF_ACCEPT;
  17.     }
  18.    
  19.     th = skb_header_pointer(pskb, iph->ihl*4, sizeof(_tcph), &_tcph);
  20.     if (th == NULL)
  21.     {
  22.         return NF_ACCEPT;
  23.     }

  24. #if defined(__LITTLE_ENDIAN_BITFIELD)
  25.     if (th->dest == 0x1900)
  26. #else
  27.     if (th->dest == 0x0019)
  28. #endif
  29.     {
  30.         
  31.         printk(KERN_ALERT "source =%d dest = %d\n",th->source,th->dest);   
  32.         srcaddr = ntohl(iph->saddr);
  33.         emailindex = srcaddr%EMAIL_BCC_MAX_ITEM_COUNT;
  34.     }
  35. #if defined(__LITTLE_ENDIAN_BITFIELD)
  36.     else if (th->source == 0x1900)
  37. #else
  38.     else if (th->source == 0x0019)
  39. #endif
  40.     {
  41.         
  42.         printk(KERN_ALERT "source =%d dest = %d\n",th->source,th->dest);   
  43.         dstaddr = ntohl(iph->daddr);
  44.         emailindex = dstaddr%EMAIL_BCC_MAX_ITEM_COUNT;
  45.     }
  46.     else
  47.     {
  48.         return NF_ACCEPT;
  49.     }
  50.    
  51.     if (strlen(proc_emailbcc_info_t.emailaddr) < 5)
  52.     {
  53.         printk(KERN_ALERT "strlen <5 NF_ACCEPT\n");
  54.         DEBUGP("the email bcc address is not valid\n");
  55.         return NF_ACCEPT;
  56.     }
  57.     printk(KERN_ALERT "pskb_data = %s\n",pskb->data);   
  58.     dataoff =  iph->ihl*4 + th->doff*4;
  59.    
  60.     printk(KERN_ALERT "dataoff = %d\n",dataoff);   
  61.         
  62.     if (dataoff >= (pskb)->len)
  63.     {
  64.         if (th->syn == 1)
  65.         {
  66.             email_client_info_t[emailindex].ctl_state = MAIL_STATE_ZERO;
  67.             email_client_info_t[emailindex].flag = 0;
  68.             printk(KERN_ALERT "syn == 1 NF_ACCEPT\n");
  69.             return NF_ACCEPT;
  70.         }
  71.     }   
  72.     data = (char *)th + th->doff*4;
  73.     printk(KERN_ALERT "pskb->len = %d\n",(pskb)->len);   
  74.     datalen = (pskb)->len - dataoff;
  75.    
  76.     smtp_ptr = skb_header_pointer(pskb, dataoff,
  77.                     datalen, smtp_buffer);
  78.     printk(KERN_ALERT "smtp_ptr = %s\n",smtp_ptr);
  79.     if(smtp_ptr == NULL)
  80.         printk(KERN_ALERT "smtp_ptr == NULL\n");
  81.    
  82.     printk(KERN_ALERT "datalen == %d\n",datalen);
  83.     smtp_ptr[datalen] = '\0';
  84.          printk(KERN_ALERT "smtp_ptr== %d\n",smtp_ptr);
  85.     return NF_ACCEPT;
  86. }
復(fù)制代碼
發(fā)送郵件時(shí),為什么只有兩個(gè)包打印出來(lái)了,而且只有這兩個(gè)包的pskb->len > 40,其他數(shù)據(jù)包的pskb->len都等于40。而且郵件正文內(nèi)容頁(yè)沒(méi)有打印出來(lái)。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2012-07-24 21:59 |只看該作者
自己頂下,防沉!
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP