1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-12 10:49:02 +00:00

Simplify output_rangelist_given_ports.

This commit is contained in:
david
2012-06-20 23:08:33 +00:00
parent 42f71759c2
commit 6eb37db01b

View File

@@ -1075,25 +1075,20 @@ int log_open(int logt, int append, char *filename) {
rangelist to the log stream given (such as LOG_MACHINE or LOG_XML) */ rangelist to the log stream given (such as LOG_MACHINE or LOG_XML) */
static void output_rangelist_given_ports(int logt, unsigned short *ports, static void output_rangelist_given_ports(int logt, unsigned short *ports,
int numports) { int numports) {
int i, previous_port = -2, range_start = -2, port; int start, end;
char outpbuf[128];
for (i = 0; i <= numports; i++) { start = 0;
port = (i < numports) ? ports[i] : 0xABCDE; while (start < numports) {
if (port != previous_port + 1) { end = start;
outpbuf[0] = '\0'; while (end + 1 < numports && ports[end + 1] == ports[end] + 1)
if (range_start != previous_port && range_start != -2) end++;
sprintf(outpbuf, "-%hu", previous_port); if (start > 0)
if (port != 0xABCDE) { log_write(logt, ",");
if (range_start != -2) if (start == end)
strcat(outpbuf, ","); log_write(logt, "%hu", ports[start]);
sprintf(outpbuf + strlen(outpbuf), "%hu", port); else
} log_write(logt, "%hu-%hu", ports[start], ports[end]);
if (*outpbuf) start = end + 1;
log_write(logt, "%s", outpbuf);
range_start = port;
}
previous_port = port;
} }
} }