Revert "Merge branch 'topic/jgras/iosource-offline-fd' of https://github.com/J-Gras/zeek"

This reverts commit 957825441a, reversing
changes made to c8cdc75f2b.

Caused spurious CI failures in the external testing baselines. See zeek/zeek#2842.
This commit is contained in:
Arne Welzel 2023-03-08 12:07:45 +01:00
parent 957825441a
commit b58a2d3822
5 changed files with 23 additions and 13 deletions

View file

@ -1,3 +1,12 @@
6.0.0-dev.165 | 2023-03-08 12:07:45 +0100
* Revert "Merge branch 'topic/jgras/iosource-offline-fd' of https://github.com/J-Gras/zeek" (Arne Welzel, Corelight)
This reverts commit 957825441a2ed32421fd9955b1cd9d3cbf561da0, reversing
changes made to c8cdc75f2bf56a369904ad54d9a9d05477fb44a3.
Caused spurious CI failures in the external testing baselines. See zeek/zeek#2842.
6.0.0-dev.164 | 2023-03-08 11:05:07 +0100 6.0.0-dev.164 | 2023-03-08 11:05:07 +0100
* Allow offline packet sources to register FDs. (Jan Grashoefer, Corelight) * Allow offline packet sources to register FDs. (Jan Grashoefer, Corelight)

4
NEWS
View file

@ -64,10 +64,6 @@ New Functionality
Changed Functionality Changed Functionality
--------------------- ---------------------
- The selectable file descriptor of PktSrc instances in offline mode are now
registered with the IO manager. Previously, these were ignored to avoid
issues specific to libpcap's file descriptor.
- When ``get_file_handle()`` is invoked for an analyzer that did not register - When ``get_file_handle()`` is invoked for an analyzer that did not register
an appropriate callback function, log a warning and return a generic handle an appropriate callback function, log a warning and return a generic handle
value based on the analyzer and connection information. value based on the analyzer and connection information.

View file

@ -1 +1 @@
6.0.0-dev.164 6.0.0-dev.165

View file

@ -83,11 +83,17 @@ void PktSrc::Opened(const Properties& arg_props)
} }
if ( props.is_live ) if ( props.is_live )
{
Info(util::fmt("listening on %s\n", props.path.c_str())); Info(util::fmt("listening on %s\n", props.path.c_str()));
// We only register the file descriptor if we're in live
// mode because libpcap's file descriptor for trace files
// isn't a reliable way to know whether we actually have
// data to read.
if ( props.selectable_fd != -1 ) if ( props.selectable_fd != -1 )
if ( ! iosource_mgr->RegisterFd(props.selectable_fd, this) ) if ( ! iosource_mgr->RegisterFd(props.selectable_fd, this) )
reporter->FatalError("Failed to register pktsrc fd with iosource_mgr"); reporter->FatalError("Failed to register pktsrc fd with iosource_mgr");
}
DBG_LOG(DBG_PKTIO, "Opened source %s", props.path.c_str()); DBG_LOG(DBG_PKTIO, "Opened source %s", props.path.c_str());
} }

View file

@ -182,11 +182,10 @@ void PcapSource::OpenOffline()
return; return;
} }
// We don't register the file descriptor if we're in offline mode, props.selectable_fd = fileno(pcap_file(pd));
// because libpcap's file descriptor for trace files isn't a reliable
// way to know whether we actually have data to read. if ( props.selectable_fd < 0 )
// See https://github.com/the-tcpdump-group/libpcap/issues/870 InternalError("OS does not support selectable pcap fd");
props.selectable_fd = -1;
props.link_type = pcap_datalink(pd); props.link_type = pcap_datalink(pd);
props.is_live = false; props.is_live = false;