mirror of
https://github.com/zeek/zeek.git
synced 2025-10-04 15:48:19 +00:00
IOSource reorg.
A bunch of infrastructure work to move IOSource, IOSourceRegistry (now iosource::Manager) and PktSrc/PktDumper code into iosource/, and over to a plugin structure. Other IOSources aren't touched yet, they are still in src/*. It compiles and does something with a small trace, but that's all I've tested so far. There are quite certainly a number of problems left, as well as various TODOs and cleanup; and nothing's cast in stone yet. Will continue to work on this.
This commit is contained in:
parent
6c20df11cc
commit
93d9dde969
52 changed files with 2223 additions and 1306 deletions
|
@ -188,10 +188,11 @@
|
|||
#include "File.h"
|
||||
#include "Conn.h"
|
||||
#include "Reporter.h"
|
||||
#include "threading/SerialTypes.h"
|
||||
#include "logging/Manager.h"
|
||||
#include "IPAddr.h"
|
||||
#include "bro_inet_ntop.h"
|
||||
#include "threading/SerialTypes.h"
|
||||
#include "logging/Manager.h"
|
||||
#include "iosource/Manager.h"
|
||||
|
||||
extern "C" {
|
||||
#include "setsignal.h"
|
||||
|
@ -284,10 +285,10 @@ struct ping_args {
|
|||
\
|
||||
if ( ! c ) \
|
||||
{ \
|
||||
idle = io->IsIdle();\
|
||||
SetIdle(io->IsIdle());\
|
||||
return true; \
|
||||
} \
|
||||
idle = false; \
|
||||
SetIdle(false); \
|
||||
}
|
||||
|
||||
static const char* msgToStr(int msg)
|
||||
|
@ -536,7 +537,6 @@ RemoteSerializer::RemoteSerializer()
|
|||
current_sync_point = 0;
|
||||
syncing_times = false;
|
||||
io = 0;
|
||||
closed = false;
|
||||
terminating = false;
|
||||
in_sync = 0;
|
||||
last_flush = 0;
|
||||
|
@ -574,7 +574,7 @@ void RemoteSerializer::Init()
|
|||
|
||||
Fork();
|
||||
|
||||
io_sources.Register(this);
|
||||
iosource_mgr->Register(this);
|
||||
|
||||
Log(LogInfo, fmt("communication started, parent pid is %d, child pid is %d", getpid(), child_pid));
|
||||
initialized = 1;
|
||||
|
@ -1278,7 +1278,7 @@ bool RemoteSerializer::Listen(const IPAddr& ip, uint16 port, bool expect_ssl,
|
|||
return false;
|
||||
|
||||
listening = true;
|
||||
closed = false;
|
||||
SetClosed(false);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1347,7 +1347,7 @@ bool RemoteSerializer::StopListening()
|
|||
return false;
|
||||
|
||||
listening = false;
|
||||
closed = ! IsActive();
|
||||
SetClosed(! IsActive());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1385,7 +1385,7 @@ double RemoteSerializer::NextTimestamp(double* local_network_time)
|
|||
if ( received_logs > 0 )
|
||||
{
|
||||
// If we processed logs last time, assume there's more.
|
||||
idle = false;
|
||||
SetIdle(false);
|
||||
received_logs = 0;
|
||||
return timer_mgr->Time();
|
||||
}
|
||||
|
@ -1400,7 +1400,7 @@ double RemoteSerializer::NextTimestamp(double* local_network_time)
|
|||
pt = timer_mgr->Time();
|
||||
|
||||
if ( packets.length() )
|
||||
idle = false;
|
||||
SetIdle(false);
|
||||
|
||||
if ( et >= 0 && (et < pt || pt < 0) )
|
||||
return et;
|
||||
|
@ -1479,7 +1479,7 @@ void RemoteSerializer::Process()
|
|||
}
|
||||
|
||||
if ( packets.length() )
|
||||
idle = false;
|
||||
SetIdle(false);
|
||||
}
|
||||
|
||||
void RemoteSerializer::Finish()
|
||||
|
@ -1511,7 +1511,7 @@ bool RemoteSerializer::Poll(bool may_block)
|
|||
}
|
||||
|
||||
io->Flush();
|
||||
idle = false;
|
||||
SetIdle(false);
|
||||
|
||||
switch ( msgstate ) {
|
||||
case TYPE:
|
||||
|
@ -1695,7 +1695,7 @@ bool RemoteSerializer::DoMessage()
|
|||
|
||||
case MSG_TERMINATE:
|
||||
assert(terminating);
|
||||
io_sources.Terminate();
|
||||
iosource_mgr->Terminate();
|
||||
return true;
|
||||
|
||||
case MSG_REMOTE_PRINT:
|
||||
|
@ -1885,7 +1885,7 @@ void RemoteSerializer::RemovePeer(Peer* peer)
|
|||
delete peer->cache_out;
|
||||
delete peer;
|
||||
|
||||
closed = ! IsActive();
|
||||
SetClosed(! IsActive());
|
||||
|
||||
if ( in_sync == peer )
|
||||
in_sync = 0;
|
||||
|
@ -2850,7 +2850,7 @@ void RemoteSerializer::GotEvent(const char* name, double time,
|
|||
BufferedEvent* e = new BufferedEvent;
|
||||
|
||||
// Our time, not the time when the event was generated.
|
||||
e->time = pkt_srcs.length() ?
|
||||
e->time = iosource_mgr->GetPktSrcs().size() ?
|
||||
time_t(network_time) : time_t(timer_mgr->Time());
|
||||
|
||||
e->src = current_peer->id;
|
||||
|
@ -3094,7 +3094,7 @@ RecordVal* RemoteSerializer::GetPeerVal(PeerID id)
|
|||
void RemoteSerializer::ChildDied()
|
||||
{
|
||||
Log(LogError, "child died");
|
||||
closed = true;
|
||||
SetClosed(true);
|
||||
child_pid = 0;
|
||||
|
||||
// Shut down the main process as well.
|
||||
|
@ -3188,7 +3188,7 @@ void RemoteSerializer::FatalError(const char* msg)
|
|||
Log(LogError, msg);
|
||||
reporter->Error("%s", msg);
|
||||
|
||||
closed = true;
|
||||
SetClosed(true);
|
||||
|
||||
if ( kill(child_pid, SIGQUIT) < 0 )
|
||||
reporter->Warning("warning: cannot kill child pid %d, %s", child_pid, strerror(errno));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue