nwfilter: Cap the poll timeout in the DHCP Snooping code

Cap the poll timeout in the DHCP Snooping code to a max. of 10 seconds
to not hold up the libvirt shutdown longer than this.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
This commit is contained in:
Stefan Berger 2014-03-03 15:13:44 -05:00 committed by Stefan Berger
parent 2ebf593a05
commit a718eb19e3

View File

@ -265,6 +265,7 @@ struct _virNWFilterSnoopRateLimitConf {
const unsigned int burstRate;
const unsigned int burstInterval;
};
#define SNOOP_POLL_MAX_TIMEOUT_MS (10 * 1000) /* milliseconds */
typedef struct _virNWFilterSnoopPcapConf virNWFilterSnoopPcapConf;
typedef virNWFilterSnoopPcapConf *virNWFilterSnoopPcapConfPtr;
@ -1419,6 +1420,10 @@ virNWFilterDHCPSnoopThread(void *req0)
break;
}
/* cap pollTo so we don't hold up the join for too long */
if (pollTo < 0 || pollTo > SNOOP_POLL_MAX_TIMEOUT_MS)
pollTo = SNOOP_POLL_MAX_TIMEOUT_MS;
n = poll(fds, ARRAY_CARDINALITY(fds), pollTo);
if (n < 0) {