update to iptables-1.3.8
[iptables.git] / extensions / libipt_sctp.c
index 18fe6ad..0354d19 100644 (file)
@@ -79,31 +79,6 @@ static struct option opts[] = {
        { .name = 0 }
 };
 
-static int
-service_to_port(const char *name)
-{
-       struct servent *service;
-
-       if ((service = getservbyname(name, "sctp")) != NULL)
-               return ntohs((unsigned short) service->s_port);
-
-       return -1;
-}
-
-static u_int16_t
-parse_sctp_port(const char *port)
-{
-       unsigned int portnum;
-
-       DEBUGP("%s\n", port);
-       if (string_to_number(port, 0, 65535, &portnum) != -1 ||
-           (portnum = service_to_port(port)) != -1)
-               return (u_int16_t)portnum;
-
-       exit_error(PARAMETER_PROBLEM,
-                  "invalid SCTP port/service `%s' specified", port);
-}
-
 static void
 parse_sctp_ports(const char *portstring, 
                 u_int16_t *ports)
@@ -114,14 +89,14 @@ parse_sctp_ports(const char *portstring,
        buffer = strdup(portstring);
        DEBUGP("%s\n", portstring);
        if ((cp = strchr(buffer, ':')) == NULL) {
-               ports[0] = ports[1] = parse_sctp_port(buffer);
+               ports[0] = ports[1] = parse_port(buffer, "sctp");
        }
        else {
                *cp = '\0';
                cp++;
 
-               ports[0] = buffer[0] ? parse_sctp_port(buffer) : 0;
-               ports[1] = cp[0] ? parse_sctp_port(cp) : 0xFFFF;
+               ports[0] = buffer[0] ? parse_port(buffer, "sctp") : 0;
+               ports[1] = cp[0] ? parse_port(cp, "sctp") : 0xFFFF;
 
                if (ports[0] > ports[1])
                        exit_error(PARAMETER_PROBLEM,
@@ -462,7 +437,8 @@ print_chunks(u_int32_t chunk_match_type,
        flag = 0;
        for (i = 0; i < 256; i++) {
                if (SCTP_CHUNKMAP_IS_SET(chunkmap, i)) {
-                       flag && printf(",");
+                       if (flag)
+                               printf(",");
                        flag = 1;
                        print_chunk(i, numeric);
                        for (j = 0; j < flag_count; j++) {
@@ -474,7 +450,8 @@ print_chunks(u_int32_t chunk_match_type,
                }
        }
 
-       flag && printf(" ");
+       if (flag)
+               printf(" ");
 out:
        return;
 }