#include <ctype.h> | |
#include "ipf.h" | |
int getportproto(name, proto) | |
char *name; | |
int proto; | |
{ | |
struct servent *s; | |
struct protoent *p; | |
if (ISDIGIT(*name)) { | |
int number; | |
char *s; | |
for (s = name; *s != '\0'; s++) | |
if (!ISDIGIT(*s)) | |
return -1; | |
number = atoi(name); | |
if (number < 0 || number > 65535) | |
return -1; | |
return htons(number); | |
} | |
p = getprotobynumber(proto); | |
s = getservbyname(name, p ? p->p_name : NULL); | |
if (s != NULL) | |
return s->s_port; | |
return -1; | |
} |