Optionally support port ranges in leftprotoport
This commit is contained in:
+20
-4
@@ -303,7 +303,7 @@ static void kw_end(starter_conn_t *conn, starter_end_t *end, kw_token_t token,
|
|||||||
end->from_port = 0xffff;
|
end->from_port = 0xffff;
|
||||||
end->to_port = 0;
|
end->to_port = 0;
|
||||||
}
|
}
|
||||||
else
|
else if (*port)
|
||||||
{
|
{
|
||||||
svc = getservbyname(port, NULL);
|
svc = getservbyname(port, NULL);
|
||||||
if (svc)
|
if (svc)
|
||||||
@@ -313,12 +313,28 @@ static void kw_end(starter_conn_t *conn, starter_end_t *end, kw_token_t token,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
p = strtol(port, &endptr, 0);
|
p = strtol(port, &endptr, 0);
|
||||||
if ((*port && *endptr) || p < 0 || p > 0xffff)
|
if (p < 0 || p > 0xffff)
|
||||||
{
|
{
|
||||||
DBG1(DBG_APP, "# bad port: %s=%s", name, value);
|
DBG1(DBG_APP, "# bad port: %s=%s", name, port);
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
end->from_port = p;
|
||||||
|
if (*endptr == '-')
|
||||||
|
{
|
||||||
|
port = endptr + 1;
|
||||||
|
p = strtol(port, &endptr, 0);
|
||||||
|
if (p < 0 || p > 0xffff)
|
||||||
|
{
|
||||||
|
DBG1(DBG_APP, "# bad port: %s=%s", name, port);
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end->to_port = p;
|
||||||
|
if (*endptr)
|
||||||
|
{
|
||||||
|
DBG1(DBG_APP, "# bad port: %s=%s", name, port);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
end->from_port = end->to_port = (u_int16_t)p;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (sep)
|
if (sep)
|
||||||
|
|||||||
Reference in New Issue
Block a user