diff options
Diffstat (limited to 'lib/getproto.c')
-rw-r--r-- | lib/getproto.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/getproto.c b/lib/getproto.c new file mode 100644 index 0000000..9714da2 --- /dev/null +++ b/lib/getproto.c @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2002-2005 by Darren Reed. + * + * See the IPFILTER.LICENCE file for details on licencing. + * + * $Id: getproto.c,v 1.2.2.3 2006/06/16 17:21:00 darrenr Exp $ + */ + +#include "ipf.h" + +int getproto(name) +char *name; +{ + struct protoent *p; + char *s; + + for (s = name; *s != '\0'; s++) + if (!ISDIGIT(*s)) + break; + if (*s == '\0') + return atoi(name); + +#ifdef _AIX51 + /* + * For some bogus reason, "ip" is 252 in /etc/protocols on AIX 5 + */ + if (!strcasecmp(name, "ip")) + return 0; +#endif + + p = getprotobyname(name); + if (p != NULL) + return p->p_proto; + return -1; +} |