1153877Sguido/*
2255332Scy * Copyright (C) 2012 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)
11255332Scystatic const char rcsid[] = "@(#)$Id$";
12153877Sguido#endif
13153877Sguido
14153877Sguido
15255332Scyvoid
16255332Scyprintproto(pr, p, np)
17255332Scy	struct protoent *pr;
18255332Scy	int p;
19255332Scy	ipnat_t *np;
20153877Sguido{
21153877Sguido	if (np != NULL) {
22153877Sguido		if ((np->in_flags & IPN_TCPUDP) == IPN_TCPUDP)
23255332Scy			PRINTF("tcp/udp");
24153877Sguido		else if (np->in_flags & IPN_TCP)
25255332Scy			PRINTF("tcp");
26153877Sguido		else if (np->in_flags & IPN_UDP)
27255332Scy			PRINTF("udp");
28153877Sguido		else if (np->in_flags & IPN_ICMPQUERY)
29255332Scy			PRINTF("icmp");
30255332Scy		else if (np->in_pr[0] == 0)
31255332Scy			PRINTF("ip");
32153877Sguido		else if (pr != NULL)
33255332Scy			PRINTF("%s", pr->p_name);
34153877Sguido		else
35255332Scy			PRINTF("%d", np->in_pr[0]);
36153877Sguido	} else {
37153877Sguido		if (pr != NULL)
38255332Scy			PRINTF("%s", pr->p_name);
39153877Sguido		else
40255332Scy			PRINTF("%d", p);
41153877Sguido	}
42153877Sguido}
43