bool hash_remove_fast(struct hash *hash, struct hash_bucket *bucket, const void *key, uint64_t hv)
struct hash_element * hash_lookup_fast(struct hash *hash, struct hash_bucket *bucket, const void *key, uint64_t hv)
static void hash_add_fast(struct hash *hash, struct hash_bucket *bucket, const void *key, uint64_t hv, void *value)
static struct hash_bucket * hash_bucket(struct hash *hash, uint64_t hv)
static uint64_t hash_value(const struct hash *hash, const void *key)
Header file for server-mode related structures and functions.
static void multi_instance_dec_refcount(struct multi_instance *mi)
static void multi_instance_inc_refcount(struct multi_instance *mi)
static bool session_id_equal(const struct session_id *sid1, const struct session_id *sid2)
static bool session_id_defined(const struct session_id *sid1)
static uint64_t session_id_hash_function(const void *key, const uint8_t hash_key[HASH_KEY_LEN])
static bool session_id_hash_equal(const void *sid1, const void *sid2)
static void multi_hash_sid_add(struct multi_context *m, const struct session_id *sid, struct multi_instance *mi)
static bool multi_hash_sid_remove(struct multi_context *m, const struct session_id *sid)
static struct hash_element * multi_hash_sid_lookup(struct multi_context *m, const struct session_id *sid)
uint64_t siphash_hash_func(const uint8_t *k, uint32_t length, const uint8_t hash_key[SIPHASH_KEY_SIZE])
Wrapper of the siphash function to be able to use it in the hash map.
Container for unidirectional cipher and HMAC key material.
Main OpenVPN server state structure.
struct hash * sid_hash
TLS sessions indexed by the peer's session id.
Server-mode state structure for one single VPN tunnel.
struct session_id sid_hashed_value
If this is multi_instance is hashed in the sid lookup table the session id here is a non-null session...