Rolled back after invalid previous commit. Sorry.
authorfnm3 <fnm3>
Mon, 25 Nov 2002 09:00:29 +0000 (09:00 +0000)
committerfnm3 <fnm3>
Mon, 25 Nov 2002 09:00:29 +0000 (09:00 +0000)
extensions/ebt_ip.c

index 9ad272b..7a054ce 100644 (file)
@@ -57,8 +57,6 @@ static struct option opts[] =
        { 0 }
 };
 
-struct protoent *p_ent;
-
 // put the ip string into 4 bytes
 static int undot_ip(char *ip, unsigned char *ip2)
 {
@@ -315,14 +313,9 @@ static int parse(int c, char **argv, int argc, const struct ebt_u_entry *entry,
                        ipinfo->invflags |= EBT_IP_PROTO;
                if (optind > argc)
                        print_error("Missing IP protocol argument");
-               (unsigned char) i = strtoul(argv[optind - 1], &end, 10);
-               if ((i > 0xFF) || (*end != '\0')) {
-                       p_ent = getprotobyname(argv[optind - 1]);
-                       if (p_ent == NULL)
-                               print_error("Unknown Internet protocol %s ",
-                                           argv[optind - 1]);
-                       i = p_ent->p_proto;
-               }
+               i = strtol(argv[optind - 1], &end, 10);
+               if (i < 0 || i > 255 || *end != '\0')
+                       print_error("Problem with specified IP protocol");
                ipinfo->protocol = i;
                ipinfo->bitmask |= EBT_IP_PROTO;
                break;