Rename ConnID and ConnIDKey

This commit is contained in:
Tim Wojtulewicz 2021-04-29 10:23:53 -07:00
parent 0b7ca5e7bc
commit 9684624a52
8 changed files with 39 additions and 35 deletions

View file

@ -25,8 +25,8 @@ namespace zeek {
uint64_t Connection::total_connections = 0;
uint64_t Connection::current_connections = 0;
Connection::Connection(const detail::ConnIDKey& k, double t,
const ConnID* id, uint32_t flow, const Packet* pkt)
Connection::Connection(const detail::ConnKey& k, double t,
const ConnTuple* id, uint32_t flow, const Packet* pkt)
: Session(t, connection_timeout, connection_status_update,
detail::connection_status_update_interval),
key(k)

View file

@ -55,7 +55,7 @@ enum ConnEventToFlag {
NUM_EVENTS_TO_FLAG,
};
struct ConnID {
struct ConnTuple {
IPAddr src_addr;
IPAddr dst_addr;
uint32_t src_port;
@ -64,6 +64,8 @@ struct ConnID {
TransportProto proto;
};
using ConnID [[deprecated("Remove in v5.1. Use zeek::ConnTuple.")]] = ConnTuple;
static inline int addr_port_canon_lt(const IPAddr& addr1, uint32_t p1,
const IPAddr& addr2, uint32_t p2)
{
@ -73,7 +75,7 @@ static inline int addr_port_canon_lt(const IPAddr& addr1, uint32_t p1,
class Connection final : public session::Session {
public:
Connection(const detail::ConnIDKey& k, double t, const ConnID* id,
Connection(const detail::ConnKey& k, double t, const ConnTuple* id,
uint32_t flow, const Packet* pkt);
~Connection() override;
@ -113,7 +115,7 @@ public:
// Keys are only considered valid for a connection when a
// connection is in the session map. If it is removed, the key
// should be marked invalid.
const detail::ConnIDKey& Key() const { return key; }
const detail::ConnKey& Key() const { return key; }
session::detail::Key SessionKey(bool copy) const override
{ return session::detail::Key{&key, sizeof(key), copy}; }
@ -267,7 +269,7 @@ private:
RecordValPtr conn_val;
std::shared_ptr<EncapsulationStack> encapsulation; // tunnels
detail::ConnIDKey key;
detail::ConnKey key;
unsigned int skip:1;
unsigned int weird:1;

View file

@ -19,7 +19,7 @@ const IPAddr IPAddr::v6_unspecified = IPAddr();
namespace detail {
ConnIDKey::ConnIDKey(const IPAddr& src, const IPAddr& dst, uint16_t src_port,
ConnKey::ConnKey(const IPAddr& src, const IPAddr& dst, uint16_t src_port,
uint16_t dst_port, TransportProto t, bool one_way)
: transport(t)
{
@ -44,8 +44,8 @@ ConnIDKey::ConnIDKey(const IPAddr& src, const IPAddr& dst, uint16_t src_port,
}
}
detail::ConnIDKey::ConnIDKey(const ConnID& id)
: ConnIDKey(id.src_addr, id.dst_addr, id.src_port, id.dst_port,
detail::ConnKey::ConnKey(const ConnTuple& id)
: ConnKey(id.src_addr, id.dst_addr, id.src_port, id.dst_port,
id.proto, id.is_one_way)
{
}

View file

@ -15,43 +15,45 @@ typedef in_addr in4_addr;
namespace zeek {
class String;
struct ConnID;
struct ConnTuple;
namespace detail {
class HashKey;
struct ConnIDKey {
struct ConnKey {
in6_addr ip1;
in6_addr ip2;
uint16_t port1;
uint16_t port2;
TransportProto transport;
ConnIDKey(const IPAddr& src, const IPAddr& dst, uint16_t src_port,
ConnKey(const IPAddr& src, const IPAddr& dst, uint16_t src_port,
uint16_t dst_port, TransportProto t, bool one_way);
ConnIDKey(const ConnID& conn);
ConnIDKey(const ConnIDKey& rhs)
ConnKey(const ConnTuple& conn);
ConnKey(const ConnKey& rhs)
{
*this = rhs;
}
bool operator<(const ConnIDKey& rhs) const { return memcmp(this, &rhs, sizeof(ConnIDKey)) < 0; }
bool operator<=(const ConnIDKey& rhs) const { return memcmp(this, &rhs, sizeof(ConnIDKey)) <= 0; }
bool operator==(const ConnIDKey& rhs) const { return memcmp(this, &rhs, sizeof(ConnIDKey)) == 0; }
bool operator!=(const ConnIDKey& rhs) const { return memcmp(this, &rhs, sizeof(ConnIDKey)) != 0; }
bool operator>=(const ConnIDKey& rhs) const { return memcmp(this, &rhs, sizeof(ConnIDKey)) >= 0; }
bool operator>(const ConnIDKey& rhs) const { return memcmp(this, &rhs, sizeof(ConnIDKey)) > 0; }
bool operator<(const ConnKey& rhs) const { return memcmp(this, &rhs, sizeof(ConnKey)) < 0; }
bool operator<=(const ConnKey& rhs) const { return memcmp(this, &rhs, sizeof(ConnKey)) <= 0; }
bool operator==(const ConnKey& rhs) const { return memcmp(this, &rhs, sizeof(ConnKey)) == 0; }
bool operator!=(const ConnKey& rhs) const { return memcmp(this, &rhs, sizeof(ConnKey)) != 0; }
bool operator>=(const ConnKey& rhs) const { return memcmp(this, &rhs, sizeof(ConnKey)) >= 0; }
bool operator>(const ConnKey& rhs) const { return memcmp(this, &rhs, sizeof(ConnKey)) > 0; }
ConnIDKey& operator=(const ConnIDKey& rhs)
ConnKey& operator=(const ConnKey& rhs)
{
if ( this != &rhs )
memcpy(this, &rhs, sizeof(ConnIDKey));
memcpy(this, &rhs, sizeof(ConnKey));
return *this;
}
};
using ConnIDKey [[deprecated("Remove in v5.1. Use zeek::detail::ConnKey.")]] = ConnKey;
} // namespace detail
/**
@ -441,7 +443,7 @@ public:
static const IPAddr v6_unspecified;
private:
friend struct detail::ConnIDKey;
friend struct detail::ConnKey;
friend class IPPrefix;
/**

View file

@ -19,14 +19,14 @@ static zeek::Connection* add_connection()
zeek::run_state::detail::update_network_time(network_time_start);
zeek::Packet p;
zeek::ConnID conn_id;
zeek::ConnTuple conn_id;
conn_id.src_addr = zeek::IPAddr("1.2.3.4");
conn_id.dst_addr = zeek::IPAddr("5.6.7.8");
conn_id.src_port = htons(23132);
conn_id.dst_port = htons(80);
conn_id.is_one_way = false;
conn_id.proto = TRANSPORT_TCP;
zeek::detail::ConnIDKey key(conn_id);
zeek::detail::ConnKey key(conn_id);
zeek::Connection* conn = new zeek::Connection(key, network_time_start,
&conn_id, 1, &p);
conn->SetTransport(TRANSPORT_TCP);

View file

@ -10,7 +10,7 @@ namespace zeek::session::detail {
/**
* This type is used as the key for the map in SessionManager. It represents a
* raw block of memory that points to a key of some type for a session, such as
* a ConnIDKey for a Connection. This allows us to do type-independent
* a ConnKey for a Connection. This allows us to do type-independent
* comparison of the keys in the map. By default, this type does not maintain
* the lifetime of the data pointed to by the Key. It only holds a
* pointer. When a Key object is inserted into the SessionManager's map,

View file

@ -129,7 +129,7 @@ void Manager::ProcessTransportLayer(double t, const Packet* pkt, size_t remainin
const u_char* data = ip_hdr->Payload();
ConnID id;
ConnTuple id;
id.src_addr = ip_hdr->SrcAddr();
id.dst_addr = ip_hdr->DstAddr();
BifEnum::Tunnel::Type tunnel_type = BifEnum::Tunnel::IP;
@ -188,7 +188,7 @@ void Manager::ProcessTransportLayer(double t, const Packet* pkt, size_t remainin
return;
}
zeek::detail::ConnIDKey conn_key(id);
zeek::detail::ConnKey conn_key(id);
detail::Key key(&conn_key, sizeof(conn_key), false);
Connection* conn = nullptr;
@ -375,7 +375,7 @@ Connection* Manager::FindConnection(Val* v)
auto orig_portv = vl->GetFieldAs<PortVal>(orig_p);
auto resp_portv = vl->GetFieldAs<PortVal>(resp_p);
zeek::detail::ConnIDKey conn_key(orig_addr, resp_addr,
zeek::detail::ConnKey conn_key(orig_addr, resp_addr,
htons((unsigned short) orig_portv->Port()),
htons((unsigned short) resp_portv->Port()),
orig_portv->PortType(), false);
@ -482,7 +482,7 @@ void Manager::GetStats(Stats& s)
s.num_packets = packet_mgr->PacketsProcessed();
}
Connection* Manager::NewConn(const zeek::detail::ConnIDKey& k, double t, const ConnID* id,
Connection* Manager::NewConn(const zeek::detail::ConnKey& k, double t, const ConnTuple* id,
const u_char* data, int proto, uint32_t flow_label,
const Packet* pkt)
{

View file

@ -20,7 +20,7 @@ namespace detail { class PacketFilter; }
class EncapsulationStack;
class Packet;
class Connection;
struct ConnID;
struct ConnTuple;
class StatBlocks;
namespace session {
@ -64,7 +64,7 @@ public:
* @param proto The transport protocol for the connection.
* @return The connection, or nullptr if one doesn't exist.
*/
Connection* FindConnection(const zeek::detail::ConnIDKey& key, TransportProto proto);
Connection* FindConnection(const zeek::detail::ConnKey& key, TransportProto proto);
void Remove(Session* s);
void Insert(Session* c);
@ -148,7 +148,7 @@ private:
using SessionMap = std::map<detail::Key, Session*>;
Connection* NewConn(const zeek::detail::ConnIDKey& k, double t, const ConnID* id,
Connection* NewConn(const zeek::detail::ConnKey& k, double t, const ConnTuple* id,
const u_char* data, int proto, uint32_t flow_label,
const Packet* pkt);