mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
Reformat the world
This commit is contained in:
parent
194cb24547
commit
b2f171ec69
714 changed files with 35149 additions and 35203 deletions
|
@ -1,4 +1,4 @@
|
|||
// See the file "COPYING" in the main distribution directory for copyright.
|
||||
// See the file "COPYING" in the main distribution directory for copyright.
|
||||
|
||||
#pragma once
|
||||
|
||||
|
@ -7,13 +7,14 @@
|
|||
#include <queue>
|
||||
#include <utility>
|
||||
|
||||
#include "zeek/List.h"
|
||||
#include "zeek/EventHandler.h"
|
||||
#include "zeek/iosource/IOSource.h"
|
||||
#include "zeek/IPAddr.h"
|
||||
#include "zeek/List.h"
|
||||
#include "zeek/iosource/IOSource.h"
|
||||
#include "zeek/util.h"
|
||||
|
||||
namespace zeek {
|
||||
namespace zeek
|
||||
{
|
||||
|
||||
class EventHandler;
|
||||
class RecordType;
|
||||
|
@ -26,30 +27,33 @@ using ValPtr = IntrusivePtr<Val>;
|
|||
using ListValPtr = IntrusivePtr<ListVal>;
|
||||
using TableValPtr = IntrusivePtr<TableVal>;
|
||||
|
||||
} // namespace zeek
|
||||
} // namespace zeek
|
||||
|
||||
// Defined in nb_dns.h
|
||||
struct nb_dns_info;
|
||||
struct nb_dns_result;
|
||||
|
||||
namespace zeek::detail {
|
||||
namespace zeek::detail
|
||||
{
|
||||
|
||||
class DNS_Mgr_Request;
|
||||
using DNS_mgr_request_list = PList<DNS_Mgr_Request>;
|
||||
|
||||
class DNS_Mapping;
|
||||
|
||||
enum DNS_MgrMode {
|
||||
DNS_PRIME, // used to prime the cache
|
||||
DNS_FORCE, // internal error if cache miss
|
||||
DNS_DEFAULT, // lookup names as they're requested
|
||||
DNS_FAKE, // don't look up names, just return dummy results
|
||||
};
|
||||
enum DNS_MgrMode
|
||||
{
|
||||
DNS_PRIME, // used to prime the cache
|
||||
DNS_FORCE, // internal error if cache miss
|
||||
DNS_DEFAULT, // lookup names as they're requested
|
||||
DNS_FAKE, // don't look up names, just return dummy results
|
||||
};
|
||||
|
||||
// Number of seconds we'll wait for a reply.
|
||||
#define DNS_TIMEOUT 5
|
||||
|
||||
class DNS_Mgr final : public iosource::IOSource {
|
||||
class DNS_Mgr final : public iosource::IOSource
|
||||
{
|
||||
public:
|
||||
explicit DNS_Mgr(DNS_MgrMode mode);
|
||||
~DNS_Mgr() override;
|
||||
|
@ -64,7 +68,7 @@ public:
|
|||
ValPtr LookupAddr(const IPAddr& addr);
|
||||
|
||||
// Define the directory where to store the data.
|
||||
void SetDir(const char* arg_dir) { dir = util::copy_string(arg_dir); }
|
||||
void SetDir(const char* arg_dir) { dir = util::copy_string(arg_dir); }
|
||||
|
||||
void Verify();
|
||||
void Resolve();
|
||||
|
@ -75,29 +79,31 @@ public:
|
|||
const char* LookupTextInCache(const std::string& name);
|
||||
|
||||
// Support for async lookups.
|
||||
class LookupCallback {
|
||||
class LookupCallback
|
||||
{
|
||||
public:
|
||||
LookupCallback() { }
|
||||
virtual ~LookupCallback() { }
|
||||
LookupCallback() { }
|
||||
virtual ~LookupCallback() { }
|
||||
|
||||
virtual void Resolved(const char* name) { };
|
||||
virtual void Resolved(TableVal* addrs) { };
|
||||
virtual void Resolved(const char* name){};
|
||||
virtual void Resolved(TableVal* addrs){};
|
||||
virtual void Timeout() = 0;
|
||||
};
|
||||
};
|
||||
|
||||
void AsyncLookupAddr(const IPAddr& host, LookupCallback* callback);
|
||||
void AsyncLookupName(const std::string& name, LookupCallback* callback);
|
||||
void AsyncLookupNameText(const std::string& name, LookupCallback* callback);
|
||||
|
||||
struct Stats {
|
||||
unsigned long requests; // These count only async requests.
|
||||
struct Stats
|
||||
{
|
||||
unsigned long requests; // These count only async requests.
|
||||
unsigned long successful;
|
||||
unsigned long failed;
|
||||
unsigned long pending;
|
||||
unsigned long cached_hosts;
|
||||
unsigned long cached_addresses;
|
||||
unsigned long cached_texts;
|
||||
};
|
||||
};
|
||||
|
||||
void GetStats(Stats* stats);
|
||||
|
||||
|
@ -108,8 +114,7 @@ protected:
|
|||
friend class DNS_Mgr_Request;
|
||||
|
||||
void Event(EventHandlerPtr e, DNS_Mapping* dm);
|
||||
void Event(EventHandlerPtr e, DNS_Mapping* dm,
|
||||
ListValPtr l1, ListValPtr l2);
|
||||
void Event(EventHandlerPtr e, DNS_Mapping* dm, ListValPtr l1, ListValPtr l2);
|
||||
void Event(EventHandlerPtr e, DNS_Mapping* old_dm, DNS_Mapping* new_dm);
|
||||
|
||||
ValPtr BuildMappingVal(DNS_Mapping* dm);
|
||||
|
@ -119,7 +124,7 @@ protected:
|
|||
ListValPtr AddrListDelta(ListVal* al1, ListVal* al2);
|
||||
void DumpAddrList(FILE* f, ListVal* al);
|
||||
|
||||
typedef std::map<std::string, std::pair<DNS_Mapping*, DNS_Mapping*> > HostMap;
|
||||
typedef std::map<std::string, std::pair<DNS_Mapping*, DNS_Mapping*>> HostMap;
|
||||
typedef std::map<IPAddr, DNS_Mapping*> AddrMap;
|
||||
typedef std::map<std::string, DNS_Mapping*> TextMap;
|
||||
void LoadCache(FILE* f);
|
||||
|
@ -143,7 +148,7 @@ protected:
|
|||
// IOSource interface.
|
||||
void Process() override;
|
||||
void InitSource() override;
|
||||
const char* Tag() override { return "DNS_Mgr"; }
|
||||
const char* Tag() override { return "DNS_Mgr"; }
|
||||
double GetNextTimeout() override;
|
||||
|
||||
DNS_MgrMode mode;
|
||||
|
@ -156,7 +161,7 @@ protected:
|
|||
|
||||
nb_dns_info* nb_dns;
|
||||
char* cache_name;
|
||||
char* dir; // directory in which cache_name resides
|
||||
char* dir; // directory in which cache_name resides
|
||||
|
||||
bool did_init;
|
||||
int asyncs_pending;
|
||||
|
@ -165,7 +170,8 @@ protected:
|
|||
|
||||
typedef std::list<LookupCallback*> CallbackList;
|
||||
|
||||
struct AsyncRequest {
|
||||
struct AsyncRequest
|
||||
{
|
||||
double time;
|
||||
IPAddr host;
|
||||
std::string name;
|
||||
|
@ -175,12 +181,11 @@ protected:
|
|||
|
||||
AsyncRequest() : time(0.0), is_txt(false), processed(false) { }
|
||||
|
||||
bool IsAddrReq() const { return name.empty(); }
|
||||
bool IsAddrReq() const { return name.empty(); }
|
||||
|
||||
void Resolved(const char* name)
|
||||
{
|
||||
for ( CallbackList::iterator i = callbacks.begin();
|
||||
i != callbacks.end(); ++i )
|
||||
for ( CallbackList::iterator i = callbacks.begin(); i != callbacks.end(); ++i )
|
||||
{
|
||||
(*i)->Resolved(name);
|
||||
delete *i;
|
||||
|
@ -191,8 +196,7 @@ protected:
|
|||
|
||||
void Resolved(TableVal* addrs)
|
||||
{
|
||||
for ( CallbackList::iterator i = callbacks.begin();
|
||||
i != callbacks.end(); ++i )
|
||||
for ( CallbackList::iterator i = callbacks.begin(); i != callbacks.end(); ++i )
|
||||
{
|
||||
(*i)->Resolved(addrs);
|
||||
delete *i;
|
||||
|
@ -203,8 +207,7 @@ protected:
|
|||
|
||||
void Timeout()
|
||||
{
|
||||
for ( CallbackList::iterator i = callbacks.begin();
|
||||
i != callbacks.end(); ++i )
|
||||
for ( CallbackList::iterator i = callbacks.begin(); i != callbacks.end(); ++i )
|
||||
{
|
||||
(*i)->Timeout();
|
||||
delete *i;
|
||||
|
@ -212,8 +215,7 @@ protected:
|
|||
callbacks.clear();
|
||||
processed = true;
|
||||
}
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
typedef std::map<IPAddr, AsyncRequest*> AsyncRequestAddrMap;
|
||||
AsyncRequestAddrMap asyncs_addrs;
|
||||
|
@ -227,21 +229,20 @@ protected:
|
|||
typedef std::list<AsyncRequest*> QueuedList;
|
||||
QueuedList asyncs_queued;
|
||||
|
||||
struct AsyncRequestCompare {
|
||||
bool operator()(const AsyncRequest* a, const AsyncRequest* b)
|
||||
{
|
||||
return a->time > b->time;
|
||||
}
|
||||
};
|
||||
struct AsyncRequestCompare
|
||||
{
|
||||
bool operator()(const AsyncRequest* a, const AsyncRequest* b) { return a->time > b->time; }
|
||||
};
|
||||
|
||||
typedef std::priority_queue<AsyncRequest*, std::vector<AsyncRequest*>, AsyncRequestCompare> TimeoutQueue;
|
||||
typedef std::priority_queue<AsyncRequest*, std::vector<AsyncRequest*>, AsyncRequestCompare>
|
||||
TimeoutQueue;
|
||||
TimeoutQueue asyncs_timeouts;
|
||||
|
||||
unsigned long num_requests;
|
||||
unsigned long successful;
|
||||
unsigned long failed;
|
||||
};
|
||||
};
|
||||
|
||||
extern DNS_Mgr* dns_mgr;
|
||||
|
||||
} // namespace zeek::detail
|
||||
} // namespace zeek::detail
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue