亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? icmp.c

?? An implementation of the TCP/IP protocol suite for the LINUX operating system. INET is implemented u
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
224                 printk("ICMP: cannot handle TOS redirects yet!\n");
225                 break;
226         default:
227                 DPRINTF((DBG_ICMP, "ICMP: Unreach: CODE=%d\n",
228                                                 (icmph->code & 7)));
229                 break;
230   }
231   skb->sk = NULL;
232   kfree_skb(skb, FREE_READ);
233 }
234 
235 
236 /* Handle ICMP_ECHO ("ping") requests. */
237 static void
238 icmp_echo(struct icmphdr *icmph, struct sk_buff *skb, struct device *dev,
239           unsigned long saddr, unsigned long daddr, int len,
240           struct options *opt)
241 {
242   struct icmphdr *icmphr;
243   struct sk_buff *skb2;
244   int size, offset;
245 
246   size = sizeof(struct sk_buff) + dev->hard_header_len + 64 + len;
247   skb2 = alloc_skb(size, GFP_ATOMIC);
248   if (skb2 == NULL) {
249         skb->sk = NULL;
250         kfree_skb(skb, FREE_READ);
251         return;
252   }
253   skb2->sk = NULL;
254   skb2->mem_addr = skb2;
255   skb2->mem_len = size;
256   skb2->free = 1;
257 
258   /* Build Layer 2-3 headers for message back to source */
259   offset = ip_build_header(skb2, daddr, saddr, &dev,
260                                 IPPROTO_ICMP, opt, len, skb->ip_hdr->tos,255);
261   if (offset < 0) {
262         printk("ICMP: Could not build IP Header for ICMP ECHO Response\n");
263         kfree_skb(skb2,FREE_WRITE);
264         skb->sk = NULL;
265         kfree_skb(skb, FREE_READ);
266         return;
267   }
268 
269   /* Re-adjust length according to actual IP header size. */
270   skb2->len = offset + len;
271 
272   /* Build ICMP_ECHO Response message. */
273   icmphr = (struct icmphdr *) (skb2->data + offset);
274   memcpy((char *) icmphr, (char *) icmph, len);
275   icmphr->type = ICMP_ECHOREPLY;
276   icmphr->code = 0;
277   icmphr->checksum = 0;
278   icmphr->checksum = ip_compute_csum((unsigned char *)icmphr, len);
279 
280   /* Ship it out - free it when done */
281   ip_queue_xmit((struct sock *)NULL, dev, skb2, 1);
282 
283   skb->sk = NULL;
284   kfree_skb(skb, FREE_READ);
285 }
286 
287 
288 /* Handle the ICMP INFORMATION REQUEST. */
289 static void
290 icmp_info(struct icmphdr *icmph, struct sk_buff *skb, struct device *dev,
291           unsigned long saddr, unsigned long daddr, int len,
292           struct options *opt)
293 {
294   /* NOT YET */
295   skb->sk = NULL;
296   kfree_skb(skb, FREE_READ);
297 }
298 
299 
300 /* Handle ICMP_ADRESS_MASK requests. */
301 static void
302 icmp_address(struct icmphdr *icmph, struct sk_buff *skb, struct device *dev,
303           unsigned long saddr, unsigned long daddr, int len,
304           struct options *opt)
305 {
306   struct icmphdr *icmphr;
307   struct sk_buff *skb2;
308   int size, offset;
309 
310   size = sizeof(struct sk_buff) + dev->hard_header_len + 64 + len;
311   skb2 = alloc_skb(size, GFP_ATOMIC);
312   if (skb2 == NULL) {
313         skb->sk = NULL;
314         kfree_skb(skb, FREE_READ);
315         return;
316   }
317   skb2->sk = NULL;
318   skb2->mem_addr = skb2;
319   skb2->mem_len = size;
320   skb2->free = 1;
321 
322   /* Build Layer 2-3 headers for message back to source */
323   offset = ip_build_header(skb2, daddr, saddr, &dev,
324                                 IPPROTO_ICMP, opt, len, skb->ip_hdr->tos,255);
325   if (offset < 0) {
326         printk("ICMP: Could not build IP Header for ICMP ADDRESS Response\n");
327         kfree_skb(skb2,FREE_WRITE);
328         skb->sk = NULL;
329         kfree_skb(skb, FREE_READ);
330         return;
331   }
332 
333   /* Re-adjust length according to actual IP header size. */
334   skb2->len = offset + len;
335 
336   /* Build ICMP ADDRESS MASK Response message. */
337   icmphr = (struct icmphdr *) (skb2->data + offset);
338   icmphr->type = ICMP_ADDRESSREPLY;
339   icmphr->code = 0;
340   icmphr->checksum = 0;
341   icmphr->un.echo.id = icmph->un.echo.id;
342   icmphr->un.echo.sequence = icmph->un.echo.sequence;
343   memcpy((char *) (icmphr + 1), (char *) &dev->pa_mask, sizeof(dev->pa_mask));
344 
345   icmphr->checksum = ip_compute_csum((unsigned char *)icmphr, len);
346 
347   /* Ship it out - free it when done */
348   ip_queue_xmit((struct sock *)NULL, dev, skb2, 1);
349 
350   skb->sk = NULL;
351   kfree_skb(skb, FREE_READ);
352 }
353 
354 
355 /* Deal with incoming ICMP packets. */
356 int
357 icmp_rcv(struct sk_buff *skb1, struct device *dev, struct options *opt,
358          unsigned long daddr, unsigned short len,
359          unsigned long saddr, int redo, struct inet_protocol *protocol)
360 {
361   struct icmphdr *icmph;
362   unsigned char *buff;
363 
364   /* Drop broadcast packets. */
365   if (chk_addr(daddr) == IS_BROADCAST) {
366         DPRINTF((DBG_ICMP, "ICMP: Discarded broadcast from %s\n",
367                                                         in_ntoa(saddr)));
368         skb1->sk = NULL;
369         kfree_skb(skb1, FREE_READ);
370         return(0);
371   }
372 
373   buff = skb1->h.raw;
374   icmph = (struct icmphdr *) buff;
375 
376   /* Validate the packet first */
377   if (ip_compute_csum((unsigned char *) icmph, len)) {
378         /* Failed checksum! */
379         printk("ICMP: failed checksum from %s!\n", in_ntoa(saddr));
380         skb1->sk = NULL;
381         kfree_skb(skb1, FREE_READ);
382         return(0);
383   }
384   print_icmp(icmph);
385 
386   /* Parse the ICMP message */
387   switch(icmph->type) {
388         case ICMP_TIME_EXCEEDED:
389         case ICMP_DEST_UNREACH:
390         case ICMP_SOURCE_QUENCH:
391                 icmp_unreach(icmph, skb1);
392                 return(0);
393         case ICMP_REDIRECT:
394                 icmp_redirect(icmph, skb1, dev);
395                 return(0);
396         case ICMP_ECHO: 
397                 icmp_echo(icmph, skb1, dev, saddr, daddr, len, opt);
398                 return 0;
399         case ICMP_ECHOREPLY:
400                 skb1->sk = NULL;
401                 kfree_skb(skb1, FREE_READ);
402                 return(0);
403         case ICMP_INFO_REQUEST:
404                 icmp_info(icmph, skb1, dev, saddr, daddr, len, opt);
405                 return 0;
406         case ICMP_INFO_REPLY:
407                 skb1->sk = NULL;
408                 kfree_skb(skb1, FREE_READ);
409                 return(0);
410         case ICMP_ADDRESS:
411                 icmp_address(icmph, skb1, dev, saddr, daddr, len, opt);
412                 return 0;
413         case ICMP_ADDRESSREPLY:
414                 skb1->sk = NULL;
415                 kfree_skb(skb1, FREE_READ);
416                 return(0);
417         default:
418                 DPRINTF((DBG_ICMP,
419                         "ICMP: Unsupported ICMP from %s, type = 0x%X\n",
420                                                 in_ntoa(saddr), icmph->type));
421                 skb1->sk = NULL;
422                 kfree_skb(skb1, FREE_READ);
423                 return(0);
424   }
425   /*NOTREACHED*/
426   skb1->sk = NULL;
427   kfree_skb(skb1, FREE_READ);
428   return(-1);
429 }
430 
431 
432 /* Perform any ICMP-related I/O control requests. */
433 int
434 icmp_ioctl(struct sock *sk, int cmd, unsigned long arg)
435 {
436   switch(cmd) {
437         case DDIOCSDBG:
438                 return(dbg_ioctl((void *) arg, DBG_ICMP));
439         default:
440                 return(-EINVAL);
441   }
442   return(0);
443 }
444 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久精品app| 一区二区三区欧美在线观看| 日韩一区二区三区av| 在线观看一区二区视频| 一本高清dvd不卡在线观看| 成人激情文学综合网| 国产精品1区二区.| 国产在线精品一区二区夜色 | 亚洲少妇30p| 国产精品乱码妇女bbbb| 国产精品久久久久久久久免费丝袜 | 欧美日韩五月天| 欧美性色欧美a在线播放| 欧美羞羞免费网站| 欧美高清性hdvideosex| 3d动漫精品啪啪| 日韩女同互慰一区二区| 久久久噜噜噜久噜久久综合| 国产欧美视频一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟| 国产人妖乱国产精品人妖| 中文字幕一区二区三区乱码在线| 亚洲丝袜精品丝袜在线| 亚洲一二三级电影| 免费观看30秒视频久久| 国产综合久久久久久鬼色| 成人性生交大片免费看视频在线| 91网站在线观看视频| 欧美午夜寂寞影院| 精品国产3级a| 国产精品国产三级国产aⅴ原创| 中文字幕在线不卡视频| 午夜精品福利一区二区三区av| 美女精品自拍一二三四| 成人成人成人在线视频| 欧美色图激情小说| 欧美tk—视频vk| 一区在线观看免费| 日韩精品成人一区二区在线| 国产精品中文有码| 色成年激情久久综合| 日韩欧美中文一区| 中文字幕一区二区三区av| 日韩av电影天堂| 成人一区在线看| 欧美精品久久天天躁| 欧美激情综合在线| 日韩电影在线观看电影| 成人网在线播放| 69堂国产成人免费视频| 日本一区二区不卡视频| 强制捆绑调教一区二区| 不卡av在线网| 欧美一区二区视频在线观看| 国产精品久久久一本精品 | 91原创在线视频| 51精品国自产在线| 亚洲欧美综合另类在线卡通| 蜜臀av一区二区在线观看| heyzo一本久久综合| 日韩欧美一二三四区| 国产精品高潮久久久久无| 男男成人高潮片免费网站| 91视频一区二区三区| 欧美不卡激情三级在线观看| 一区二区三区在线免费播放| 国产美女精品一区二区三区| 欧美日本乱大交xxxxx| 国产精品黄色在线观看| 韩日av一区二区| 欧美日本一区二区三区四区| 中文字幕一区二区三区乱码在线| 久久er精品视频| 中文字幕一区二区三区精华液| 日韩精品视频网站| 在线这里只有精品| 国产精品免费视频观看| 国内久久精品视频| 3d成人h动漫网站入口| 一区二区三区在线播放| 大白屁股一区二区视频| 久久综合九色综合97婷婷女人| 亚洲成人资源网| 色欧美日韩亚洲| 综合电影一区二区三区| 国产成人高清在线| 久久毛片高清国产| 久久国产精品99精品国产| 在线播放91灌醉迷j高跟美女| 亚洲精品乱码久久久久久| 成人av网站在线| 国产欧美一区二区在线| 国产一区二区成人久久免费影院| 91精品国产综合久久精品麻豆| 亚洲主播在线播放| 91久久久免费一区二区| 亚洲精品日韩专区silk| 成人激情免费电影网址| 欧美国产激情二区三区| 国产成人精品一区二| 国产色综合一区| 国产美女在线精品| 欧美极品美女视频| 成人精品电影在线观看| 国产精品黄色在线观看| 99re66热这里只有精品3直播 | 高清不卡在线观看av| 精品国产a毛片| 国产精品自拍在线| 欧美极品少妇xxxxⅹ高跟鞋 | 精品国产免费久久 | 欧洲av一区二区嗯嗯嗯啊| 亚洲精品精品亚洲| 一本大道av伊人久久综合| 亚洲蜜桃精久久久久久久| 在线一区二区三区做爰视频网站| 艳妇臀荡乳欲伦亚洲一区| 欧美日韩在线精品一区二区三区激情| 亚洲电影一区二区三区| 欧美精品乱人伦久久久久久| 蜜臀久久99精品久久久久宅男| 精品免费一区二区三区| 国产老女人精品毛片久久| 中文字幕乱码久久午夜不卡| 99re在线视频这里只有精品| 亚洲最色的网站| 欧美高清一级片在线| 久久99国产精品麻豆| 久久久久久亚洲综合| 波多野结衣欧美| 亚洲亚洲精品在线观看| 日韩女同互慰一区二区| 高清beeg欧美| 亚洲资源中文字幕| 精品久久久久久久一区二区蜜臀| 国产99久久久精品| 亚洲一区二区三区四区五区黄 | 欧美日韩欧美一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 精品国产一二三区| 97se亚洲国产综合自在线观| 日韩精品欧美精品| 日本一区免费视频| 欧美日韩一二三| 国产激情视频一区二区三区欧美| 亚洲人午夜精品天堂一二香蕉| 欧美日韩在线直播| 国产精品一色哟哟哟| 一区二区三区日韩精品| 精品日韩av一区二区| 91影院在线观看| 免费观看在线综合色| 国产精品福利av| 91精品国产综合久久福利| 成人精品国产福利| 免费成人在线视频观看| 亚洲视频一区二区在线| 日韩欧美在线综合网| 色综合天天综合网天天狠天天| 免费成人在线观看| 亚洲蜜臀av乱码久久精品| 久久美女艺术照精彩视频福利播放| 91久久精品一区二区| 国产毛片精品视频| 天天av天天翘天天综合网色鬼国产| 国产日韩欧美高清在线| 51久久夜色精品国产麻豆| 99精品欧美一区二区三区综合在线| 日本成人在线不卡视频| 亚洲欧美另类小说| 久久久99精品免费观看| 欧美一区二区日韩| 91久久精品国产91性色tv| 国产iv一区二区三区| 麻豆国产精品官网| 亚洲一区二区三区国产| 亚洲欧洲色图综合| 久久人人超碰精品| 91精品国产色综合久久不卡电影| 99视频国产精品| 风间由美一区二区三区在线观看| 日本女人一区二区三区| 亚洲一卡二卡三卡四卡五卡| 国产精品精品国产色婷婷| 久久久久久久久伊人| 日韩视频在线永久播放| 欧美日韩高清一区二区不卡| 色综合一区二区三区| caoporn国产一区二区| 国产丶欧美丶日本不卡视频| 蜜桃一区二区三区在线观看| 亚洲国产精品综合小说图片区| 国产在线精品免费av| 美国毛片一区二区| 视频一区二区不卡| 亚洲狠狠爱一区二区三区| 亚洲精品水蜜桃| 亚洲三级在线免费观看| 一区免费观看视频| 亚洲欧美综合色|