printproto.c revision 153877
1153877Sguido/*
2153877Sguido * Copyright (C) 1993-2005 by Darren Reed.
3153877Sguido *
4153877Sguido * See the IPFILTER.LICENCE file for details on licencing.
5153877Sguido */
6153877Sguido
7153877Sguido#include "ipf.h"
8153877Sguido
9153877Sguido
10153877Sguido#if !defined(lint)
11153877Sguidostatic const char rcsid[] = "@(#)$Id: printproto.c,v 1.1.2.1 2005/06/12 07:21:53 darrenr Exp $";
12153877Sguido#endif
13153877Sguido
14153877Sguido
15153877Sguidovoid printproto(pr, p, np)
16153877Sguidostruct protoent *pr;
17153877Sguidoint p;
18153877Sguidoipnat_t *np;
19153877Sguido{
20153877Sguido	if (np != NULL) {
21153877Sguido		if ((np->in_flags & IPN_TCPUDP) == IPN_TCPUDP)
22153877Sguido			printf("tcp/udp");
23153877Sguido		else if (np->in_flags & IPN_TCP)
24153877Sguido			printf("tcp");
25153877Sguido		else if (np->in_flags & IPN_UDP)
26153877Sguido			printf("udp");
27153877Sguido		else if (np->in_flags & IPN_ICMPQUERY)
28153877Sguido			printf("icmp");
29153877Sguido#ifdef _AIX51
30153877Sguido		/*
31153877Sguido		 * To make up for "ip = 252" and "hopopt = 0" in /etc/protocols
32153877Sguido		 */
33153877Sguido		else if (np->in_p == 0)
34153877Sguido			printf("ip");
35153877Sguido#endif
36153877Sguido		else if (pr != NULL)
37153877Sguido			printf("%s", pr->p_name);
38153877Sguido		else
39153877Sguido			printf("%d", np->in_p);
40153877Sguido	} else {
41153877Sguido#ifdef _AIX51
42153877Sguido		if (p == 0)
43153877Sguido			printf("ip");
44153877Sguido		else
45153877Sguido#endif
46153877Sguido		if (pr != NULL)
47153877Sguido			printf("%s", pr->p_name);
48153877Sguido		else
49153877Sguido			printf("%d", p);
50153877Sguido	}
51153877Sguido}
52