[server] ensure to break out of while loop and close() UDP socket before returning

This commit is contained in:
Michael Rash
2014-10-23 23:05:21 -04:00
parent 3040251695
commit 7b70ed08d2
+6 -13
View File
@@ -53,7 +53,7 @@ int
run_udp_server(fko_srv_options_t *opts)
{
int s_sock, sfd_flags, selval, pkt_len;
int is_err, s_timeout;
int is_err, s_timeout, rv=1;
fd_set sfd_set;
struct sockaddr_in saddr, caddr;
struct timeval tv;
@@ -136,10 +136,7 @@ run_udp_server(fko_srv_options_t *opts)
while(1)
{
if(sig_do_stop())
{
close(s_sock);
return 1;
}
break;
/* Check for any expired firewall rules and deal with them.
*/
@@ -164,8 +161,8 @@ run_udp_server(fko_srv_options_t *opts)
*/
log_msg(LOG_ERR, "run_udp_server: select error socket: %s",
strerror(errno));
close(s_sock);
return -1;
rv = -1;
break;
}
if(selval == 0)
@@ -212,23 +209,19 @@ run_udp_server(fko_srv_options_t *opts)
log_msg(LOG_DEBUG, "run_udp_server() processed: %d packets",
opts->packet_ctr);
/* Count the set of processed packets (pcap_dispatch() return
* value) - we use this as a comparison for --packet-limit regardless
* of SPA packet validity at this point.
*/
if (opts->packet_ctr_limit && opts->packet_ctr >= opts->packet_ctr_limit)
{
log_msg(LOG_WARNING,
"* Incoming packet count limit of %i reached",
opts->packet_ctr_limit
);
return 1;
break;
}
} /* infinite while loop */
close(s_sock);
return 1;
return rv;
}
/***EOF***/