|  | /* | 
|  | * Copyright (C) 2005 by Darren Reed. | 
|  | * | 
|  | * See the IPFILTER.LICENCE file for details on licencing. | 
|  | */ | 
|  |  | 
|  | #include "ipf.h" | 
|  |  | 
|  |  | 
|  | #if !defined(lint) | 
|  | static const char rcsid[] = "@(#)$Id$"; | 
|  | #endif | 
|  |  | 
|  |  | 
|  | void printproto(pr, p, np) | 
|  | struct protoent *pr; | 
|  | int p; | 
|  | ipnat_t *np; | 
|  | { | 
|  | if (np != NULL) { | 
|  | if ((np->in_flags & IPN_TCPUDP) == IPN_TCPUDP) | 
|  | printf("tcp/udp"); | 
|  | else if (np->in_flags & IPN_TCP) | 
|  | printf("tcp"); | 
|  | else if (np->in_flags & IPN_UDP) | 
|  | printf("udp"); | 
|  | else if (np->in_flags & IPN_ICMPQUERY) | 
|  | printf("icmp"); | 
|  | #ifdef _AIX51 | 
|  | /* | 
|  | * To make up for "ip = 252" and "hopopt = 0" in /etc/protocols | 
|  | */ | 
|  | else if (np->in_p == 0) | 
|  | printf("ip"); | 
|  | #endif | 
|  | else if (pr != NULL) | 
|  | printf("%s", pr->p_name); | 
|  | else | 
|  | printf("%d", np->in_p); | 
|  | } else { | 
|  | #ifdef _AIX51 | 
|  | if (p == 0) | 
|  | printf("ip"); | 
|  | else | 
|  | #endif | 
|  | if (pr != NULL) | 
|  | printf("%s", pr->p_name); | 
|  | else | 
|  | printf("%d", p); | 
|  | } | 
|  | } |