File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / hping2 / logicmp.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 22:11:37 2012 UTC (12 years, 3 months ago) by misho
Branches: hping2, MAIN
CVS tags: v2_0_0rc3p7, v2_0_0rc3p5, v2_0_0rc3p4, v2_0_0rc3p0, v2_0_0rc3, HEAD
hping2

    1: /* 
    2:  * $smu-mark$ 
    3:  * $name: logicmp.c$ 
    4:  * $author: Salvatore Sanfilippo <antirez@invece.org>$ 
    5:  * $copyright: Copyright (C) 1999 by Salvatore Sanfilippo$ 
    6:  * $license: This software is under GPL version 2 of license$ 
    7:  * $date: Fri Nov  5 11:55:48 MET 1999$ 
    8:  * $rev: 8$ 
    9:  */ 
   10: 
   11: #include <stdio.h>
   12: #include <sys/types.h> /* this should be not needed, but ip_icmp.h lacks it */
   13: 
   14: #include "hping2.h"
   15: #include "globals.h"
   16: 
   17: void log_icmp_timeexc(char *src_addr, unsigned short icmp_code)
   18: {
   19: 	switch(icmp_code) {
   20: 	case ICMP_EXC_TTL:
   21: 		printf("TTL 0 during transit from ip=%s", src_addr);
   22: 		break;
   23: 	case ICMP_EXC_FRAGTIME:
   24: 		printf("TTL 0 during reassembly from ip=%s", src_addr);
   25: 		break;
   26: 	}
   27: 	if (opt_gethost) {
   28: 		char *hostn;
   29: 
   30: 		fflush(stdout);
   31: 		hostn = get_hostname(src_addr);
   32: 		printf("name=%s", (hostn) ? hostn : "UNKNOWN");
   33: 	}
   34: 	putchar('\n');
   35: }
   36: 		
   37: void log_icmp_unreach(char *src_addr, unsigned short icmp_code)
   38: {
   39: 	static char* icmp_unreach_msg[]={
   40: 	"Network Unreachable from",		/* code 0 */
   41: 	"Host Unreachable from",		/* code 1 */
   42: 	"Protocol Unreachable from",		/* code 2 */
   43: 	"Port Unreachable from",		/* code 3 */
   44: 	"Fragmentation Needed/DF set from",	/* code 4 */
   45: 	"Source Route failed from",		/* code 5 */
   46: 	NULL,					/* code 6 */
   47: 	NULL,					/* code 7 */
   48: 	NULL,					/* code 8 */
   49: 	NULL,					/* code 9 */
   50: 	NULL,					/* code 10 */
   51: 	NULL,					/* code 11 */
   52: 	NULL,					/* code 12 */
   53: 	"Packet filtered from",			/* code 13 */
   54: 	"Precedence violation from",		/* code 14 */
   55: 	"precedence cut off from"		/* code 15 */
   56: 	};
   57: 	
   58: 	if (icmp_unreach_msg[icmp_code] != NULL)
   59: 		printf("ICMP %s ip=%s", icmp_unreach_msg[icmp_code], src_addr);
   60: 	else
   61: 		printf("ICMP Unreachable type=%d from ip=%s",
   62: 			icmp_code, src_addr);
   63: 
   64: 	if (opt_gethost) {
   65: 		char *hostn;
   66: 
   67: 		fflush(stdout);
   68: 		hostn = get_hostname(src_addr);
   69: 		printf("name=%s", (hostn) ? hostn : "UNKNOWN");
   70: 	}
   71: 	putchar('\n');
   72: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>