suricata: fix computing of default packet size

Update the default packet size computation to use LiveDeviceName
instead of LiveDevice as the LiveDevice list is not built when
the default packet size is built.
pull/4431/head
Eric Leblond 7 years ago committed by Victor Julien
parent 222a81f85d
commit 1b9009ea0e

@ -2531,9 +2531,9 @@ static int ConfigGetCaptureValue(SCInstance *suri)
case RUNMODE_PCAP_DEV:
case RUNMODE_AFP_DEV:
case RUNMODE_PFRING:
nlive = LiveGetDeviceCount();
nlive = LiveGetDeviceNameCount();
for (lthread = 0; lthread < nlive; lthread++) {
const char *live_dev = LiveGetDeviceName(lthread);
const char *live_dev = LiveGetDeviceNameName(lthread);
char dev[128]; /* need to be able to support GUID names on Windows */
(void)strlcpy(dev, live_dev, sizeof(dev));

@ -190,6 +190,49 @@ const char *LiveGetDeviceName(int number)
return NULL;
}
/**
* \brief Get the number of pre registered devices
*
* \retval cnt the number of pre registered devices
*/
int LiveGetDeviceNameCount(void)
{
int i = 0;
LiveDeviceName *pd;
TAILQ_FOREACH(pd, &pre_live_devices, next) {
i++;
}
return i;
}
/**
* \brief Get a pointer to the pre device name at idx
*
* \param number idx of the pre device in our list
*
* \retval ptr pointer to the string containing the device
* \retval NULL on error
*/
const char *LiveGetDeviceNameName(int number)
{
int i = 0;
LiveDeviceName *pd;
TAILQ_FOREACH(pd, &pre_live_devices, next) {
if (i == number) {
return pd->dev;
}
i++;
}
return NULL;
}
/** \internal
* \brief Shorten a device name that is to long
*

@ -63,6 +63,8 @@ typedef struct LiveDeviceName_ {
void LiveDevRegisterExtension(void);
int LiveRegisterDeviceName(const char *dev);
int LiveGetDeviceNameCount(void);
const char *LiveGetDeviceNameName(int number);
int LiveRegisterDevice(const char *dev);
int LiveDevUseBypass(LiveDevice *dev);
void LiveDevSetBypassStats(LiveDevice *dev, uint64_t cnt, int family);

Loading…
Cancel
Save