xref: /freebsd/sbin/ipf/libipf/getproto.c (revision 41edb306f05651fcaf6c74f9e3557f59f80292e1)
1 /*	$FreeBSD$	*/
2 
3 /*
4  * Copyright (C) 2012 by Darren Reed.
5  *
6  * See the IPFILTER.LICENCE file for details on licencing.
7  *
8  * $Id$
9  */
10 
11 #include "ipf.h"
12 #include <ctype.h>
13 
14 int getproto(name)
15 	char *name;
16 {
17 	struct protoent *p;
18 	char *s;
19 
20 	for (s = name; *s != '\0'; s++)
21 		if (!ISDIGIT(*s))
22 			break;
23 	if (*s == '\0')
24 		return atoi(name);
25 
26 	if (!strcasecmp(name, "ip"))
27 		return 0;
28 
29 	p = getprotobyname(name);
30 	if (p != NULL)
31 		return p->p_proto;
32 	return -1;
33 }
34