diff --git a/src/response.c b/src/response.c index 2acee4e..0cde2f8 100644 --- a/src/response.c +++ b/src/response.c @@ -85,10 +85,13 @@ void icmp_response(const struct icmphdr *icmphdr, const struct scan *data) } } - data->responses->service = get_service_name(data->port_start, "udp"); if (data->responses->service == NULL) - data->responses->service = - get_service_name(data->port_start, "tcp"); + { + data->responses->service = get_service_name(data->port_start, "udp"); + if (data->responses->service == NULL) + data->responses->service = + get_service_name(data->port_start, "tcp"); + } if (data->type & SCAN_SYN && icmphdr->type == 3) data->responses->states[type_index] = FILTERED; else if (data->type & SCAN_ACK && icmphdr->type == 3) @@ -117,10 +120,13 @@ void no_response(const struct scan *data) } } - data->responses->service = get_service_name(data->port_start, "udp"); if (data->responses->service == NULL) - data->responses->service = - get_service_name(data->port_start, "tcp"); + { + data->responses->service = get_service_name(data->port_start, "udp"); + if (data->responses->service == NULL) + data->responses->service = + get_service_name(data->port_start, "tcp"); + } if (data->type & SCAN_SYN) data->responses->states[type_index] = FILTERED; else if (data->type & SCAN_ACK)