mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-28 03:21:19 +00:00
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:
parent
2ebf593a05
commit
a718eb19e3
@ -265,6 +265,7 @@ struct _virNWFilterSnoopRateLimitConf {
|
|||||||
const unsigned int burstRate;
|
const unsigned int burstRate;
|
||||||
const unsigned int burstInterval;
|
const unsigned int burstInterval;
|
||||||
};
|
};
|
||||||
|
#define SNOOP_POLL_MAX_TIMEOUT_MS (10 * 1000) /* milliseconds */
|
||||||
|
|
||||||
typedef struct _virNWFilterSnoopPcapConf virNWFilterSnoopPcapConf;
|
typedef struct _virNWFilterSnoopPcapConf virNWFilterSnoopPcapConf;
|
||||||
typedef virNWFilterSnoopPcapConf *virNWFilterSnoopPcapConfPtr;
|
typedef virNWFilterSnoopPcapConf *virNWFilterSnoopPcapConfPtr;
|
||||||
@ -1419,6 +1420,10 @@ virNWFilterDHCPSnoopThread(void *req0)
|
|||||||
break;
|
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);
|
n = poll(fds, ARRAY_CARDINALITY(fds), pollTo);
|
||||||
|
|
||||||
if (n < 0) {
|
if (n < 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user