mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
Minor fixes for build problems after reformatting
This commit is contained in:
parent
b2f171ec69
commit
30aa4621c5
12 changed files with 231 additions and 214 deletions
8
NEWS
8
NEWS
|
@ -9,6 +9,14 @@ Zeek 4.2.0
|
|||
New Functionality
|
||||
-----------------
|
||||
|
||||
- Zeek now supports formatting the C++ code using clang-format. It requires at
|
||||
least clang-format 12.0.1 due to some additions that were made in that version
|
||||
to better support the Whitesmiths style. Zeek also includes a set of python
|
||||
scripts to more easily reformat in the auxil/run-clang-format directory. An
|
||||
example command to reformat the code:
|
||||
|
||||
`python3 auxil/run-clang-format/run-clang-format.py --clang-format-executable `which clang-format-12` -r src -i`
|
||||
|
||||
Changed Functionality
|
||||
---------------------
|
||||
|
||||
|
|
|
@ -1,10 +1,3 @@
|
|||
#include "zeek/EventLauncher.h"
|
||||
|
||||
#include "zeek/Conn.h"
|
||||
#include "zeek/Event.h"
|
||||
#include "zeek/File.h"
|
||||
#include "zeek/NetVar.h"
|
||||
#include "zeek/Val.h"
|
||||
#include "zeek/analyzer/Analyzer.h"
|
||||
|
||||
#include "event.bif.func_def"
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
#pragma once
|
||||
|
||||
#include "zeek/Conn.h"
|
||||
#include "zeek/Event.h"
|
||||
#include "zeek/File.h"
|
||||
#include "zeek/NetVar.h"
|
||||
#include "zeek/Val.h"
|
||||
#include "zeek/analyzer/Analyzer.h"
|
||||
|
||||
#include "event.bif.func_h"
|
||||
|
|
2
src/IP.h
2
src/IP.h
|
@ -2,9 +2,9 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <sys/types.h> // for u_char
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/ip.h>
|
||||
#include <sys/types.h> // for u_char
|
||||
|
||||
#include "zeek/zeek-config.h"
|
||||
|
||||
|
|
|
@ -212,246 +212,246 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig)
|
|||
|
||||
// Count of users, services and servers in whole network.
|
||||
case 251:
|
||||
{
|
||||
if ( ! irc_network_info )
|
||||
break;
|
||||
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
int users = 0;
|
||||
int services = 0;
|
||||
int servers = 0;
|
||||
|
||||
for ( size_t i = 1; i < parts.size(); ++i )
|
||||
{
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
int users = 0;
|
||||
int services = 0;
|
||||
int servers = 0;
|
||||
|
||||
for ( size_t i = 1; i < parts.size(); ++i )
|
||||
{
|
||||
if ( parts[i] == "users" )
|
||||
users = atoi(parts[i - 1].c_str());
|
||||
else if ( parts[i] == "services" )
|
||||
services = atoi(parts[i - 1].c_str());
|
||||
else if ( parts[i] == "servers" )
|
||||
servers = atoi(parts[i - 1].c_str());
|
||||
// else ###
|
||||
}
|
||||
|
||||
EnqueueConnEvent(irc_network_info, ConnVal(), val_mgr->Bool(orig),
|
||||
val_mgr->Int(users), val_mgr->Int(services),
|
||||
val_mgr->Int(servers));
|
||||
if ( parts[i] == "users" )
|
||||
users = atoi(parts[i - 1].c_str());
|
||||
else if ( parts[i] == "services" )
|
||||
services = atoi(parts[i - 1].c_str());
|
||||
else if ( parts[i] == "servers" )
|
||||
servers = atoi(parts[i - 1].c_str());
|
||||
// else ###
|
||||
}
|
||||
|
||||
EnqueueConnEvent(irc_network_info, ConnVal(), val_mgr->Bool(orig),
|
||||
val_mgr->Int(users), val_mgr->Int(services),
|
||||
val_mgr->Int(servers));
|
||||
}
|
||||
break;
|
||||
|
||||
// List of users in a channel (names command).
|
||||
case 353:
|
||||
{
|
||||
if ( ! irc_names_info )
|
||||
break;
|
||||
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
|
||||
if ( parts.size() < 3 )
|
||||
{
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
|
||||
if ( parts.size() < 3 )
|
||||
{
|
||||
Weird("irc_invalid_names_line");
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove nick name.
|
||||
parts.erase(parts.begin());
|
||||
|
||||
string type = parts[0];
|
||||
string channel = parts[1];
|
||||
|
||||
// Remove type and channel.
|
||||
parts.erase(parts.begin());
|
||||
parts.erase(parts.begin());
|
||||
|
||||
if ( parts.size() > 0 && parts[0][0] == ':' )
|
||||
parts[0] = parts[0].substr(1);
|
||||
|
||||
auto set = make_intrusive<TableVal>(id::string_set);
|
||||
|
||||
for ( auto& part : parts )
|
||||
{
|
||||
if ( part[0] == '@' )
|
||||
part = part.substr(1);
|
||||
auto idx = make_intrusive<StringVal>(part);
|
||||
set->Assign(std::move(idx), nullptr);
|
||||
}
|
||||
|
||||
EnqueueConnEvent(irc_names_info, ConnVal(), val_mgr->Bool(orig),
|
||||
make_intrusive<StringVal>(type.c_str()),
|
||||
make_intrusive<StringVal>(channel.c_str()), std::move(set));
|
||||
Weird("irc_invalid_names_line");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
|
||||
// Remove nick name.
|
||||
parts.erase(parts.begin());
|
||||
|
||||
string type = parts[0];
|
||||
string channel = parts[1];
|
||||
|
||||
// Remove type and channel.
|
||||
parts.erase(parts.begin());
|
||||
parts.erase(parts.begin());
|
||||
|
||||
if ( parts.size() > 0 && parts[0][0] == ':' )
|
||||
parts[0] = parts[0].substr(1);
|
||||
|
||||
auto set = make_intrusive<TableVal>(id::string_set);
|
||||
|
||||
for ( auto& part : parts )
|
||||
{
|
||||
if ( part[0] == '@' )
|
||||
part = part.substr(1);
|
||||
auto idx = make_intrusive<StringVal>(part);
|
||||
set->Assign(std::move(idx), nullptr);
|
||||
}
|
||||
|
||||
EnqueueConnEvent(irc_names_info, ConnVal(), val_mgr->Bool(orig),
|
||||
make_intrusive<StringVal>(type.c_str()),
|
||||
make_intrusive<StringVal>(channel.c_str()), std::move(set));
|
||||
}
|
||||
break;
|
||||
|
||||
// Count of users and services on this server.
|
||||
case 255:
|
||||
{
|
||||
if ( ! irc_server_info )
|
||||
break;
|
||||
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
int users = 0;
|
||||
int services = 0;
|
||||
int servers = 0;
|
||||
|
||||
for ( size_t i = 1; i < parts.size(); ++i )
|
||||
{
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
int users = 0;
|
||||
int services = 0;
|
||||
int servers = 0;
|
||||
|
||||
for ( size_t i = 1; i < parts.size(); ++i )
|
||||
{
|
||||
if ( parts[i] == "users," )
|
||||
users = atoi(parts[i - 1].c_str());
|
||||
else if ( parts[i] == "clients" )
|
||||
users = atoi(parts[i - 1].c_str());
|
||||
else if ( parts[i] == "services" )
|
||||
services = atoi(parts[i - 1].c_str());
|
||||
else if ( parts[i] == "servers" )
|
||||
servers = atoi(parts[i - 1].c_str());
|
||||
// else ###
|
||||
}
|
||||
|
||||
EnqueueConnEvent(irc_server_info, ConnVal(), val_mgr->Bool(orig),
|
||||
val_mgr->Int(users), val_mgr->Int(services),
|
||||
val_mgr->Int(servers));
|
||||
if ( parts[i] == "users," )
|
||||
users = atoi(parts[i - 1].c_str());
|
||||
else if ( parts[i] == "clients" )
|
||||
users = atoi(parts[i - 1].c_str());
|
||||
else if ( parts[i] == "services" )
|
||||
services = atoi(parts[i - 1].c_str());
|
||||
else if ( parts[i] == "servers" )
|
||||
servers = atoi(parts[i - 1].c_str());
|
||||
// else ###
|
||||
}
|
||||
|
||||
EnqueueConnEvent(irc_server_info, ConnVal(), val_mgr->Bool(orig),
|
||||
val_mgr->Int(users), val_mgr->Int(services),
|
||||
val_mgr->Int(servers));
|
||||
}
|
||||
break;
|
||||
|
||||
// Count of channels.
|
||||
case 254:
|
||||
{
|
||||
if ( ! irc_channel_info )
|
||||
break;
|
||||
|
||||
{
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
int channels = 0;
|
||||
for ( size_t i = 1; i < parts.size(); ++i )
|
||||
if ( parts[i] == ":channels" )
|
||||
channels = atoi(parts[i - 1].c_str());
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
int channels = 0;
|
||||
for ( size_t i = 1; i < parts.size(); ++i )
|
||||
if ( parts[i] == ":channels" )
|
||||
channels = atoi(parts[i - 1].c_str());
|
||||
|
||||
EnqueueConnEvent(irc_channel_info, ConnVal(), val_mgr->Bool(orig),
|
||||
val_mgr->Int(channels));
|
||||
}
|
||||
EnqueueConnEvent(irc_channel_info, ConnVal(), val_mgr->Bool(orig),
|
||||
val_mgr->Int(channels));
|
||||
}
|
||||
break;
|
||||
|
||||
// RPL_GLOBALUSERS
|
||||
case 266:
|
||||
{
|
||||
// FIXME: We should really streamline all this
|
||||
// parsing code ...
|
||||
if ( ! irc_global_users )
|
||||
break;
|
||||
|
||||
const char* prefix = params.c_str();
|
||||
|
||||
const char* eop = strchr(prefix, ' ');
|
||||
if ( ! eop )
|
||||
{
|
||||
// FIXME: We should really streamline all this
|
||||
// parsing code ...
|
||||
if ( ! irc_global_users )
|
||||
break;
|
||||
|
||||
const char* prefix = params.c_str();
|
||||
|
||||
const char* eop = strchr(prefix, ' ');
|
||||
if ( ! eop )
|
||||
{
|
||||
Weird("invalid_irc_global_users_reply");
|
||||
break;
|
||||
}
|
||||
|
||||
const char* msg = strchr(++eop, ':');
|
||||
if ( ! msg )
|
||||
{
|
||||
Weird("invalid_irc_global_users_reply");
|
||||
break;
|
||||
}
|
||||
|
||||
EnqueueConnEvent(irc_global_users, ConnVal(), val_mgr->Bool(orig),
|
||||
make_intrusive<StringVal>(eop - prefix, prefix),
|
||||
make_intrusive<StringVal>(++msg));
|
||||
Weird("invalid_irc_global_users_reply");
|
||||
break;
|
||||
}
|
||||
|
||||
const char* msg = strchr(++eop, ':');
|
||||
if ( ! msg )
|
||||
{
|
||||
Weird("invalid_irc_global_users_reply");
|
||||
break;
|
||||
}
|
||||
|
||||
EnqueueConnEvent(irc_global_users, ConnVal(), val_mgr->Bool(orig),
|
||||
make_intrusive<StringVal>(eop - prefix, prefix),
|
||||
make_intrusive<StringVal>(++msg));
|
||||
}
|
||||
break;
|
||||
|
||||
// WHOIS user reply line.
|
||||
case 311:
|
||||
{
|
||||
if ( ! irc_whois_user_line )
|
||||
break;
|
||||
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
|
||||
if ( parts.size() > 1 )
|
||||
parts.erase(parts.begin());
|
||||
if ( parts.size() < 5 )
|
||||
{
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
|
||||
if ( parts.size() > 1 )
|
||||
parts.erase(parts.begin());
|
||||
if ( parts.size() < 5 )
|
||||
{
|
||||
Weird("irc_invalid_whois_user_line");
|
||||
return;
|
||||
}
|
||||
|
||||
Args vl;
|
||||
vl.reserve(6);
|
||||
vl.emplace_back(ConnVal());
|
||||
vl.emplace_back(val_mgr->Bool(orig));
|
||||
vl.emplace_back(make_intrusive<StringVal>(parts[0].c_str()));
|
||||
vl.emplace_back(make_intrusive<StringVal>(parts[1].c_str()));
|
||||
vl.emplace_back(make_intrusive<StringVal>(parts[2].c_str()));
|
||||
|
||||
parts.erase(parts.begin(), parts.begin() + 4);
|
||||
|
||||
string real_name = parts[0];
|
||||
for ( size_t i = 1; i < parts.size(); ++i )
|
||||
real_name = real_name + " " + parts[i];
|
||||
|
||||
if ( real_name[0] == ':' )
|
||||
real_name = real_name.substr(1);
|
||||
|
||||
vl.emplace_back(make_intrusive<StringVal>(real_name.c_str()));
|
||||
|
||||
EnqueueConnEvent(irc_whois_user_line, std::move(vl));
|
||||
Weird("irc_invalid_whois_user_line");
|
||||
return;
|
||||
}
|
||||
|
||||
Args vl;
|
||||
vl.reserve(6);
|
||||
vl.emplace_back(ConnVal());
|
||||
vl.emplace_back(val_mgr->Bool(orig));
|
||||
vl.emplace_back(make_intrusive<StringVal>(parts[0].c_str()));
|
||||
vl.emplace_back(make_intrusive<StringVal>(parts[1].c_str()));
|
||||
vl.emplace_back(make_intrusive<StringVal>(parts[2].c_str()));
|
||||
|
||||
parts.erase(parts.begin(), parts.begin() + 4);
|
||||
|
||||
string real_name = parts[0];
|
||||
for ( size_t i = 1; i < parts.size(); ++i )
|
||||
real_name = real_name + " " + parts[i];
|
||||
|
||||
if ( real_name[0] == ':' )
|
||||
real_name = real_name.substr(1);
|
||||
|
||||
vl.emplace_back(make_intrusive<StringVal>(real_name.c_str()));
|
||||
|
||||
EnqueueConnEvent(irc_whois_user_line, std::move(vl));
|
||||
}
|
||||
break;
|
||||
|
||||
// WHOIS operator reply line.
|
||||
case 313:
|
||||
{
|
||||
if ( ! irc_whois_operator_line )
|
||||
break;
|
||||
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
|
||||
if ( parts.size() > 1 )
|
||||
parts.erase(parts.begin());
|
||||
|
||||
if ( parts.size() < 2 )
|
||||
{
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
|
||||
if ( parts.size() > 1 )
|
||||
parts.erase(parts.begin());
|
||||
|
||||
if ( parts.size() < 2 )
|
||||
{
|
||||
Weird("irc_invalid_whois_operator_line");
|
||||
return;
|
||||
}
|
||||
|
||||
EnqueueConnEvent(irc_whois_operator_line, ConnVal(), val_mgr->Bool(orig),
|
||||
make_intrusive<StringVal>(parts[0].c_str()));
|
||||
Weird("irc_invalid_whois_operator_line");
|
||||
return;
|
||||
}
|
||||
|
||||
EnqueueConnEvent(irc_whois_operator_line, ConnVal(), val_mgr->Bool(orig),
|
||||
make_intrusive<StringVal>(parts[0].c_str()));
|
||||
}
|
||||
break;
|
||||
|
||||
// WHOIS channel reply.
|
||||
case 319:
|
||||
{
|
||||
if ( ! irc_whois_channel_line )
|
||||
break;
|
||||
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
|
||||
// Remove nick name.
|
||||
parts.erase(parts.begin());
|
||||
if ( parts.size() < 2 )
|
||||
{
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
|
||||
// Remove nick name.
|
||||
parts.erase(parts.begin());
|
||||
if ( parts.size() < 2 )
|
||||
{
|
||||
Weird("irc_invalid_whois_channel_line");
|
||||
return;
|
||||
}
|
||||
|
||||
string nick = parts[0];
|
||||
parts.erase(parts.begin());
|
||||
|
||||
if ( parts.size() > 0 && parts[0][0] == ':' )
|
||||
parts[0] = parts[0].substr(1);
|
||||
|
||||
auto set = make_intrusive<TableVal>(id::string_set);
|
||||
|
||||
for ( const auto& part : parts )
|
||||
{
|
||||
auto idx = make_intrusive<StringVal>(part);
|
||||
set->Assign(std::move(idx), nullptr);
|
||||
}
|
||||
|
||||
EnqueueConnEvent(irc_whois_channel_line, ConnVal(), val_mgr->Bool(orig),
|
||||
make_intrusive<StringVal>(nick.c_str()), std::move(set));
|
||||
Weird("irc_invalid_whois_channel_line");
|
||||
return;
|
||||
}
|
||||
|
||||
string nick = parts[0];
|
||||
parts.erase(parts.begin());
|
||||
|
||||
if ( parts.size() > 0 && parts[0][0] == ':' )
|
||||
parts[0] = parts[0].substr(1);
|
||||
|
||||
auto set = make_intrusive<TableVal>(id::string_set);
|
||||
|
||||
for ( const auto& part : parts )
|
||||
{
|
||||
auto idx = make_intrusive<StringVal>(part);
|
||||
set->Assign(std::move(idx), nullptr);
|
||||
}
|
||||
|
||||
EnqueueConnEvent(irc_whois_channel_line, ConnVal(), val_mgr->Bool(orig),
|
||||
make_intrusive<StringVal>(nick.c_str()), std::move(set));
|
||||
}
|
||||
break;
|
||||
|
||||
// RPL_TOPIC reply.
|
||||
|
@ -485,39 +485,39 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig)
|
|||
Weird("irc_invalid_topic_reply");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
// WHO reply line.
|
||||
case 352:
|
||||
{
|
||||
if ( ! irc_who_line )
|
||||
break;
|
||||
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
if ( parts.size() < 9 )
|
||||
{
|
||||
vector<string> parts = SplitWords(params, ' ');
|
||||
if ( parts.size() < 9 )
|
||||
{
|
||||
Weird("irc_invalid_who_line");
|
||||
return;
|
||||
}
|
||||
|
||||
if ( parts[2][0] == '~' )
|
||||
parts[2] = parts[2].substr(1);
|
||||
|
||||
if ( parts[7][0] == ':' )
|
||||
parts[7] = parts[7].substr(1);
|
||||
|
||||
EnqueueConnEvent(irc_who_line, ConnVal(), val_mgr->Bool(orig),
|
||||
make_intrusive<StringVal>(parts[0].c_str()),
|
||||
make_intrusive<StringVal>(parts[1].c_str()),
|
||||
make_intrusive<StringVal>(parts[2].c_str()),
|
||||
make_intrusive<StringVal>(parts[3].c_str()),
|
||||
make_intrusive<StringVal>(parts[4].c_str()),
|
||||
make_intrusive<StringVal>(parts[5].c_str()),
|
||||
make_intrusive<StringVal>(parts[6].c_str()),
|
||||
val_mgr->Int(atoi(parts[7].c_str())),
|
||||
make_intrusive<StringVal>(parts[8].c_str()));
|
||||
Weird("irc_invalid_who_line");
|
||||
return;
|
||||
}
|
||||
|
||||
if ( parts[2][0] == '~' )
|
||||
parts[2] = parts[2].substr(1);
|
||||
|
||||
if ( parts[7][0] == ':' )
|
||||
parts[7] = parts[7].substr(1);
|
||||
|
||||
EnqueueConnEvent(irc_who_line, ConnVal(), val_mgr->Bool(orig),
|
||||
make_intrusive<StringVal>(parts[0].c_str()),
|
||||
make_intrusive<StringVal>(parts[1].c_str()),
|
||||
make_intrusive<StringVal>(parts[2].c_str()),
|
||||
make_intrusive<StringVal>(parts[3].c_str()),
|
||||
make_intrusive<StringVal>(parts[4].c_str()),
|
||||
make_intrusive<StringVal>(parts[5].c_str()),
|
||||
make_intrusive<StringVal>(parts[6].c_str()),
|
||||
val_mgr->Int(atoi(parts[7].c_str())),
|
||||
make_intrusive<StringVal>(parts[8].c_str()));
|
||||
}
|
||||
break;
|
||||
|
||||
// Invalid nick name.
|
||||
|
|
|
@ -1,8 +1,14 @@
|
|||
#pragma once
|
||||
|
||||
// This needs to remain the first include in this file, or some defines aren't
|
||||
// set correctly when netinet/tcp.h is included and the CentOS 7 build breaks.
|
||||
// clang-format off
|
||||
#include "zeek/net_util.h"
|
||||
|
||||
#include <netinet/tcp.h>
|
||||
#include <sys/types.h>
|
||||
#include <string>
|
||||
// clang-format on
|
||||
|
||||
namespace zeek::analyzer::tcp
|
||||
{
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
#include "zeek/iosource/Manager.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/event.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "zeek/NetVar.h"
|
||||
|
|
|
@ -21,12 +21,12 @@ typedef enum
|
|||
IPv6
|
||||
} IPFamily;
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <assert.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/in_systm.h>
|
||||
#include <netinet/ip.h>
|
||||
#include <sys/types.h>
|
||||
#ifdef HAVE_LINUX
|
||||
#define __FAVOR_BSD
|
||||
#endif
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <net/if_arp.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/types.h>
|
||||
#include <net/if_arp.h>
|
||||
|
||||
#include "zeek/packet_analysis/Analyzer.h"
|
||||
#include "zeek/packet_analysis/Component.h"
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
#include <set>
|
||||
|
||||
#include "zeek/IntrusivePtr.h"
|
||||
#include "zeek/ID.h"
|
||||
#include "zeek/Expr.h"
|
||||
|
||||
namespace zeek::detail
|
||||
{
|
||||
|
|
|
@ -313,8 +313,9 @@ ValPtr ZBody::DoExec(Frame* f, int start_pc, StmtFlowType& flow)
|
|||
case OP_NOP:
|
||||
break;
|
||||
|
||||
#include "ZAM-EvalDefs.h"
|
||||
// These must stay in this order or the build fails.
|
||||
#include "ZAM-EvalMacros.h"
|
||||
#include "ZAM-EvalDefs.h"
|
||||
|
||||
default:
|
||||
reporter->InternalError("bad ZAM opcode");
|
||||
|
|
|
@ -28,8 +28,8 @@ bool set_affinity(int core_number)
|
|||
|
||||
#elif defined(__FreeBSD__)
|
||||
|
||||
#include <sys/cpuset.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/cpuset.h>
|
||||
|
||||
namespace zeek
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue