Annotation of embedaddon/hping2/logicmp.c, revision 1.1.1.1

1.1       misho       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>