Information we track per tunnel. More...
Go to the source code of this file.
Macros | |
#define | DESIRED_CONNECTIONS_PER_TUNNEL 3 |
How many connections would we like to have per tunnel? More... | |
Typedefs | |
typedef void(* | GCT_SendContinuation) (void *cls, const struct GNUNET_CADET_ConnectionTunnelIdentifier *cid) |
Function called when a transmission requested using GCT_send is done. More... | |
typedef void(* | GCT_ConnectionIterator) (void *cls, struct CadetTConnection *ct) |
Iterator over connections. More... | |
typedef void(* | GCT_ChannelIterator) (void *cls, struct CadetChannel *ch) |
Iterator over channels. More... | |
Enumerations | |
enum | CadetTunnelEState { CADET_TUNNEL_KEY_UNINITIALIZED , CADET_TUNNEL_KEY_AX_SENT , CADET_TUNNEL_KEY_AX_RECV , CADET_TUNNEL_KEY_AX_SENT_AND_RECV , CADET_TUNNEL_KEY_AX_AUTH_SENT , CADET_TUNNEL_KEY_OK } |
All the encryption states a tunnel can be in. More... | |
Functions | |
int | GCT_alice_or_betty (const struct GNUNET_PeerIdentity *other) |
Am I Alice or Betty (some call her Bob), or talking to myself? More... | |
const char * | GCT_2s (const struct CadetTunnel *t) |
Get the static string for the peer this tunnel is directed. More... | |
struct CadetTunnel * | GCT_create_tunnel (struct CadetPeer *destination) |
Create a tunnel to destination. More... | |
void | GCT_destroy_tunnel_now (struct CadetTunnel *t) |
Destroys the tunnel t now, without delay. More... | |
int | GCT_add_inbound_connection (struct CadetTunnel *t, const struct GNUNET_CADET_ConnectionTunnelIdentifier *cid, struct CadetPeerPath *path) |
Add a connection to the tunnel. More... | |
void | GCT_connection_lost (struct CadetTConnection *ct) |
We lost a connection, remove it from our list and clean up the connection object itself. More... | |
struct CadetPeer * | GCT_get_destination (struct CadetTunnel *t) |
Return the peer to which this tunnel goes. More... | |
void | GCT_consider_path (struct CadetTunnel *t, struct CadetPeerPath *p, unsigned int off) |
Consider using the path p for the tunnel t. More... | |
struct GNUNET_CADET_ChannelTunnelNumber | GCT_add_channel (struct CadetTunnel *t, struct CadetChannel *ch) |
Add a channel to a tunnel. More... | |
void | GCT_remove_channel (struct CadetTunnel *t, struct CadetChannel *ch, struct GNUNET_CADET_ChannelTunnelNumber ctn) |
Remove a channel from a tunnel. More... | |
void | GCT_send_channel_destroy (struct CadetTunnel *t, struct GNUNET_CADET_ChannelTunnelNumber ctn) |
Send a DESTROY message via the tunnel. More... | |
struct CadetTunnelQueueEntry * | GCT_send (struct CadetTunnel *t, const struct GNUNET_MessageHeader *message, GCT_SendContinuation cont, void *cont_cls, struct GNUNET_CADET_ChannelTunnelNumber *ctn) |
Sends an already built message on a tunnel, encrypting it and choosing the best connection if not provided. More... | |
void | GCT_send_cancel (struct CadetTunnelQueueEntry *q) |
Cancel a previously sent message while it's in the queue. More... | |
unsigned int | GCT_count_channels (struct CadetTunnel *t) |
Returns the number of channels using a tunnel. More... | |
unsigned int | GCT_count_any_connections (const struct CadetTunnel *t) |
Counts the number of connections created for a tunnel, including busy connections. More... | |
void | GCT_iterate_connections (struct CadetTunnel *t, GCT_ConnectionIterator iter, void *iter_cls) |
Iterate over all connections of a tunnel. More... | |
void | GCT_iterate_channels (struct CadetTunnel *t, GCT_ChannelIterator iter, void *iter_cls) |
Iterate over all channels of a tunnel. More... | |
enum CadetTunnelEState | GCT_get_estate (struct CadetTunnel *t) |
Get the encryption state of a tunnel. More... | |
void | GCT_change_estate (struct CadetTunnel *t, enum CadetTunnelEState state) |
Change the tunnel encryption state. More... | |
void | GCT_handle_kx (struct CadetTConnection *ct, const struct GNUNET_CADET_TunnelKeyExchangeMessage *msg) |
Handle KX message that lacks authentication (and which will thus only be considered authenticated after we respond with our own KX_AUTH and finally successfully decrypt the payload). More... | |
void | GCT_handle_kx_auth (struct CadetTConnection *ct, const struct GNUNET_CADET_TunnelKeyExchangeAuthMessage *msg) |
Handle KX_AUTH message. More... | |
void | GCT_handle_encrypted (struct CadetTConnection *ct, const struct GNUNET_CADET_TunnelEncryptedMessage *msg) |
Handle encrypted message. More... | |
void | GCT_debug (const struct CadetTunnel *t, enum GNUNET_ErrorType level) |
Log all possible info about the tunnel state. More... | |
Information we track per tunnel.
Definition in file gnunet-service-cadet_tunnels.h.
#define DESIRED_CONNECTIONS_PER_TUNNEL 3 |
How many connections would we like to have per tunnel?
Definition at line 37 of file gnunet-service-cadet_tunnels.h.
typedef void(* GCT_SendContinuation) (void *cls, const struct GNUNET_CADET_ConnectionTunnelIdentifier *cid) |
Function called when a transmission requested using GCT_send is done.
cls | closure |
ctn | identifier of the connection used for transmission, NULL if the transmission failed (to be used to match ACKs to the respective connection for connection performance evaluation) |
Definition at line 217 of file gnunet-service-cadet_tunnels.h.
typedef void(* GCT_ConnectionIterator) (void *cls, struct CadetTConnection *ct) |
Iterator over connections.
cls | closure |
ct | one of the connections |
Definition at line 281 of file gnunet-service-cadet_tunnels.h.
typedef void(* GCT_ChannelIterator) (void *cls, struct CadetChannel *ch) |
Iterator over channels.
cls | closure |
ch | one of the channels |
Definition at line 305 of file gnunet-service-cadet_tunnels.h.
enum CadetTunnelEState |
All the encryption states a tunnel can be in.
Definition at line 43 of file gnunet-service-cadet_tunnels.h.
int GCT_alice_or_betty | ( | const struct GNUNET_PeerIdentity * | other | ) |
Am I Alice or Betty (some call her Bob), or talking to myself?
other | the other peer |
Definition at line 468 of file gnunet-service-cadet_tunnels.c.
References GNUNET_break_op, GNUNET_memcmp, GNUNET_NO, GNUNET_SYSERR, GNUNET_YES, and my_full_id.
Referenced by GCT_handle_kx(), send_create(), send_kx(), and update_ax_by_kx().
const char * GCT_2s | ( | const struct CadetTunnel * | t | ) |
Get the static string for the peer this tunnel is directed.
t | Tunnel. |
Definition at line 517 of file gnunet-service-cadet_tunnels.c.
References GCP_get_id(), GNUNET_i2s(), GNUNET_snprintf(), and t.
Referenced by connection_ready_cb(), consider_path_cb(), destroy_tunnel(), GCC_2s(), GCCH_bind(), GCCH_channel_local_new(), GCCH_debug(), GCP_drop_tunnel(), GCT_add_channel(), GCT_add_inbound_connection(), GCT_change_estate(), GCT_consider_path(), GCT_debug(), GCT_handle_encrypted(), GCT_handle_kx(), GCT_handle_kx_auth(), GCT_remove_channel(), GCT_send(), handle_plaintext_channel_destroy(), handle_plaintext_channel_open(), handle_plaintext_channel_open_ack(), handle_plaintext_keepalive(), maintain_connections_cb(), retry_kx(), send_keepalive(), send_kx(), send_kx_auth(), try_send_normal_payload(), and update_state().
struct CadetTunnel * GCT_create_tunnel | ( | struct CadetPeer * | destination | ) |
Create a tunnel to destination.
Must only be called from within GCP_get_tunnel().
destination | where to create the tunnel to |
Definition at line 3137 of file gnunet-service-cadet_tunnels.c.
References decrypted_error_cb(), GNUNET_CONTAINER_multihashmap32_create(), GNUNET_CRYPTO_ecdhe_key_create(), GNUNET_MESSAGE_TYPE_CADET_CHANNEL_APP_DATA, GNUNET_MESSAGE_TYPE_CADET_CHANNEL_APP_DATA_ACK, GNUNET_MESSAGE_TYPE_CADET_CHANNEL_DESTROY, GNUNET_MESSAGE_TYPE_CADET_CHANNEL_KEEPALIVE, GNUNET_MESSAGE_TYPE_CADET_CHANNEL_OPEN, GNUNET_MESSAGE_TYPE_CADET_CHANNEL_OPEN_ACK, GNUNET_MQ_handler_end, GNUNET_MQ_hd_fixed_size, GNUNET_MQ_hd_var_size, GNUNET_MQ_queue_for_callbacks(), GNUNET_MST_create(), GNUNET_new, GNUNET_SCHEDULER_add_now(), handle_decrypted(), handlers, INITIAL_KX_RETRY_DELAY, maintain_connections_cb(), new_ephemeral(), and t.
Referenced by GCP_get_tunnel().
void GCT_destroy_tunnel_now | ( | struct CadetTunnel * | t | ) |
Destroys the tunnel t now, without delay.
Used during shutdown.
t | tunnel to destroy |
Definition at line 2305 of file gnunet-service-cadet_tunnels.c.
References destroy_remaining_channels(), destroy_tunnel(), GCT_count_channels(), GNUNET_assert, GNUNET_CONTAINER_multihashmap32_iterate(), GNUNET_SCHEDULER_cancel(), GNUNET_YES, shutting_down, and t.
Referenced by destroy_tunnels_now().
int GCT_add_inbound_connection | ( | struct CadetTunnel * | t, |
const struct GNUNET_CADET_ConnectionTunnelIdentifier * | cid, | ||
struct CadetPeerPath * | path | ||
) |
Add a connection to the tunnel.
t | a tunnel |
cid | connection identifier to use for the connection |
path | path to use for the connection |
Definition at line 3190 of file gnunet-service-cadet_tunnels.c.
References CadetTConnection::cc, connection_ready_cb(), CadetTConnection::created, GCC_2s(), GCC_create_inbound(), GCT_2s(), GNUNET_CONTAINER_DLL_insert, GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_new, GNUNET_OK, GNUNET_SYSERR, GNUNET_TIME_absolute_get(), LOG, t, and CadetTConnection::t.
Referenced by handle_connection_create().
void GCT_connection_lost | ( | struct CadetTConnection * | ct | ) |
We lost a connection, remove it from our list and clean up the connection object itself.
ct | binding of connection to tunnel of the connection that was lost. |
Definition at line 2146 of file gnunet-service-cadet_tunnels.c.
References GNUNET_CONTAINER_DLL_remove, GNUNET_free, GNUNET_YES, CadetTConnection::is_ready, t, and CadetTConnection::t.
Referenced by destroy_t_connection(), GCC_create_inbound(), and GCC_destroy_without_core().
struct CadetPeer * GCT_get_destination | ( | struct CadetTunnel * | t | ) |
Return the peer to which this tunnel goes.
t | a tunnel |
Definition at line 573 of file gnunet-service-cadet_tunnels.c.
References t.
Referenced by GCCH_2s(), GCCH_bind(), GCCH_channel_incoming_new(), get_next_free_ctn(), and timeout_closed_cb().
void GCT_consider_path | ( | struct CadetTunnel * | t, |
struct CadetPeerPath * | p, | ||
unsigned int | off | ||
) |
Consider using the path p for the tunnel t.
The tunnel destination is at offset off in path p.
t | our tunnel |
p | a path to our destination |
off | offset of the destination on path path |
Definition at line 2821 of file gnunet-service-cadet_tunnels.c.
References consider_path_cb(), GCPP_2s(), GCT_2s(), GNUNET_ERROR_TYPE_DEBUG, LOG, p, and t.
Referenced by GCP_path_entry_add(), and GCP_set_mq().
struct GNUNET_CADET_ChannelTunnelNumber GCT_add_channel | ( | struct CadetTunnel * | t, |
struct CadetChannel * | ch | ||
) |
Add a channel to a tunnel.
t | Tunnel. |
ch | Channel |
Add a channel to a tunnel.
Otherwise that notification will be done later in notify_tunnel_up_cb().
t | Tunnel. |
ch | Channel |
Definition at line 2087 of file gnunet-service-cadet_tunnels.c.
References CADET_TUNNEL_KEY_AX_AUTH_SENT, CADET_TUNNEL_KEY_AX_RECV, CADET_TUNNEL_KEY_AX_SENT, CADET_TUNNEL_KEY_AX_SENT_AND_RECV, CADET_TUNNEL_KEY_OK, CADET_TUNNEL_KEY_UNINITIALIZED, ch, GNUNET_CADET_ChannelTunnelNumber::cn, GCCH_2s(), GCCH_tunnel_up(), GCT_2s(), get_next_free_ctn(), GNUNET_assert, GNUNET_CONTAINER_multihashmap32_put(), GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY, GNUNET_ERROR_TYPE_DEBUG, GNUNET_SCHEDULER_add_at(), GNUNET_SCHEDULER_cancel(), GNUNET_YES, LOG, retry_kx(), and t.
Referenced by GCCH_channel_local_new().
void GCT_remove_channel | ( | struct CadetTunnel * | t, |
struct CadetChannel * | ch, | ||
struct GNUNET_CADET_ChannelTunnelNumber | ctn | ||
) |
Remove a channel from a tunnel.
t | Tunnel. |
ch | Channel |
ctn | unique number identifying ch within t |
Definition at line 2254 of file gnunet-service-cadet_tunnels.c.
References ch, GNUNET_CADET_ChannelTunnelNumber::cn, destroy_tunnel(), GCCH_2s(), GCT_2s(), GCT_count_channels(), GNUNET_assert, GNUNET_CONTAINER_multihashmap32_remove(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_SCHEDULER_add_delayed(), GNUNET_YES, IDLE_DESTROY_DELAY, LOG, and t.
Referenced by channel_destroy().
void GCT_send_channel_destroy | ( | struct CadetTunnel * | t, |
struct GNUNET_CADET_ChannelTunnelNumber | ctn | ||
) |
Send a DESTROY message via the tunnel.
t | the tunnel to transmit over |
ctn | ID of the channel to destroy |
Definition at line 2997 of file gnunet-service-cadet_tunnels.c.
References GNUNET_CADET_ChannelTunnelNumber::cn, GNUNET_CADET_ChannelDestroyMessage::ctn, GCT_send(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_MESSAGE_TYPE_CADET_CHANNEL_DESTROY, LOG, msg, GNUNET_MessageHeader::size, t, and GNUNET_MessageHeader::type.
Referenced by GCCH_channel_local_destroy(), GCCH_handle_channel_plaintext_data(), GCCH_handle_local_ack(), handle_plaintext_channel_open_ack(), handle_plaintext_data(), and handle_plaintext_data_ack().
struct CadetTunnelQueueEntry * GCT_send | ( | struct CadetTunnel * | t, |
const struct GNUNET_MessageHeader * | message, | ||
GCT_SendContinuation | cont, | ||
void * | cont_cls, | ||
struct GNUNET_CADET_ChannelTunnelNumber * | ctn | ||
) |
Sends an already built message on a tunnel, encrypting it and choosing the best connection if not provided.
message | Message to send. Function modifies it. |
t | Tunnel on which this message is transmitted. |
cont | Continuation to call once message is really sent. |
cont_cls | Closure for cont . |
Definition at line 3413 of file gnunet-service-cadet_tunnels.c.
References GNUNET_CADET_TunnelEncryptedMessage::ax_header, CADET_TUNNEL_KEY_OK, ch, GNUNET_CADET_TunnelEncryptedMessage::cid, CadetTunnelQueueEntry::cid, CadetTunnelQueueEntry::cont, CadetTunnelQueueEntry::cont_cls, CadetChannel::ctn, GNUNET_CADET_AxHeader::DHRs, env, CadetTunnelQueueEntry::env, GCCH_is_type_to_drop(), GCT_2s(), GNUNET_break, GNUNET_CONTAINER_DLL_insert_tail, GNUNET_CRYPTO_ecdhe_key_get_public(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_malloc, GNUNET_MESSAGE_TYPE_CADET_TUNNEL_ENCRYPTED, GNUNET_MQ_msg_extra, GNUNET_NO, GNUNET_SCHEDULER_add_now(), GNUNET_SCHEDULER_cancel(), GNUNET_STATISTICS_update(), GNUNET_CADET_TunnelEncryptedMessage::hmac, LOG, lookup_channel(), GNUNET_CADET_AxHeader::Ns, GNUNET_CADET_AxHeader::PNs, GNUNET_MessageHeader::size, stats, t, CadetTunnelQueueEntry::t, t_ax_encrypt(), t_h_encrypt(), t_hmac(), and trigger_transmissions().
Referenced by GCCH_handle_local_data(), GCT_send_channel_destroy(), retry_transmission(), send_channel_data_ack(), send_channel_open(), send_keepalive(), and send_open_ack().
void GCT_send_cancel | ( | struct CadetTunnelQueueEntry * | q | ) |
Cancel a previously sent message while it's in the queue.
ONLY can be called before the continuation given to the send function is called. Once the continuation is called, the message is no longer in the queue!
q | Handle to the queue entry to cancel. |
Definition at line 3491 of file gnunet-service-cadet_tunnels.c.
References CadetTunnelQueueEntry::env, GNUNET_CONTAINER_DLL_remove, GNUNET_free, GNUNET_MQ_discard(), t, and CadetTunnelQueueEntry::t.
Referenced by channel_destroy(), destroy_tunnel(), GCC_destroy(), handle_matching_ack(), send_channel_data_ack(), send_channel_open(), and send_open_ack().
unsigned int GCT_count_channels | ( | struct CadetTunnel * | t | ) |
Returns the number of channels using a tunnel.
t | Tunnel in question. |
Definition at line 580 of file gnunet-service-cadet_tunnels.c.
References GNUNET_CONTAINER_multihashmap32_size(), and t.
Referenced by connection_ready_cb(), destroy_tunnel(), GCT_destroy_tunnel_now(), GCT_remove_channel(), get_all_tunnels_iterator(), and retry_kx().
unsigned int GCT_count_any_connections | ( | const struct CadetTunnel * | t | ) |
Counts the number of connections created for a tunnel, including busy connections.
t | Tunnel to be counted. |
Definition at line 603 of file gnunet-service-cadet_tunnels.c.
References t.
Referenced by consider_path_cb(), GCT_debug(), get_all_tunnels_iterator(), and maintain_connections_cb().
void GCT_iterate_connections | ( | struct CadetTunnel * | t, |
GCT_ConnectionIterator | iter, | ||
void * | iter_cls | ||
) |
Iterate over all connections of a tunnel.
t | Tunnel whose connections to iterate. |
iter | Iterator. |
iter_cls | Closure for iter . |
Definition at line 3511 of file gnunet-service-cadet_tunnels.c.
References CadetTConnection::next, and t.
Referenced by consider_path_cb(), destroy_tunnel(), and maintain_connections_cb().
void GCT_iterate_channels | ( | struct CadetTunnel * | t, |
GCT_ChannelIterator | iter, | ||
void * | iter_cls | ||
) |
Iterate over all channels of a tunnel.
t | Tunnel whose channels to iterate. |
iter | Iterator. |
iter_cls | Closure for iter . |
Definition at line 3583 of file gnunet-service-cadet_tunnels.c.
References ctx, GNUNET_CONTAINER_multihashmap32_iterate(), ChanIterCls::iter, ChanIterCls::iter_cls, iterate_channels_cb(), and t.
enum CadetTunnelEState GCT_get_estate | ( | struct CadetTunnel * | t | ) |
Get the encryption state of a tunnel.
t | Tunnel. |
Definition at line 635 of file gnunet-service-cadet_tunnels.c.
References t.
Referenced by get_all_tunnels_iterator(), handle_connection_create(), send_create(), and send_keepalive().
void GCT_change_estate | ( | struct CadetTunnel * | t, |
enum CadetTunnelEState | state | ||
) |
Change the tunnel encryption state.
If the encryption state changes to OK, stop the rekey task.
t | Tunnel whose encryption state to change, or NULL. |
state | New encryption state. |
Definition at line 1284 of file gnunet-service-cadet_tunnels.c.
References CADET_TUNNEL_KEY_OK, estate2s(), GCT_2s(), GNUNET_CONTAINER_multihashmap32_iterate(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_SCHEDULER_add_now(), GNUNET_SCHEDULER_cancel(), LOG, notify_tunnel_up_cb(), state, t, and trigger_transmissions().
Referenced by GCT_handle_encrypted(), GCT_handle_kx(), GCT_handle_kx_auth(), handle_connection_create(), send_kx(), and send_kx_auth().
void GCT_handle_kx | ( | struct CadetTConnection * | ct, |
const struct GNUNET_CADET_TunnelKeyExchangeMessage * | msg | ||
) |
Handle KX message that lacks authentication (and which will thus only be considered authenticated after we respond with our own KX_AUTH and finally successfully decrypt the payload).
ct | connection/tunnel combo that received encrypted message |
msg | the key exchange message |
Definition at line 1696 of file gnunet-service-cadet_tunnels.c.
References CADET_TUNNEL_KEY_AX_RECV, CADET_TUNNEL_KEY_AX_SENT, CADET_TUNNEL_KEY_AX_SENT_AND_RECV, CADET_TUNNEL_KEY_OK, CADET_TUNNEL_KEY_UNINITIALIZED, CadetTConnection::cc, GCC_2s(), GCP_get_id(), GCT_2s(), GCT_alice_or_betty(), GCT_change_estate(), GNUNET_break, GNUNET_break_op, GNUNET_e2s(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_i2s(), GNUNET_new, GNUNET_NO, GNUNET_OK, GNUNET_SCHEDULER_add_now(), GNUNET_SCHEDULER_cancel(), GNUNET_STATISTICS_update(), GNUNET_SYSERR, GNUNET_YES, LOG, msg, ret, retry_kx(), send_kx_auth(), stats, t, CadetTConnection::t, and update_ax_by_kx().
Referenced by GCC_handle_kx().
void GCT_handle_kx_auth | ( | struct CadetTConnection * | ct, |
const struct GNUNET_CADET_TunnelKeyExchangeAuthMessage * | msg | ||
) |
Handle KX_AUTH message.
ct | connection/tunnel combo that received encrypted message |
msg | the key exchange message |
Definition at line 1906 of file gnunet-service-cadet_tunnels.c.
References CADET_TUNNEL_KEY_AX_AUTH_SENT, CADET_TUNNEL_KEY_AX_RECV, CADET_TUNNEL_KEY_AX_SENT, CADET_TUNNEL_KEY_AX_SENT_AND_RECV, CADET_TUNNEL_KEY_OK, CADET_TUNNEL_KEY_UNINITIALIZED, cleanup_ax(), GCP_get_id(), GCT_2s(), GCT_change_estate(), GNUNET_assert, GNUNET_break, GNUNET_break_op, GNUNET_CADET_KX_FLAG_FORCE_REPLY, GNUNET_CRYPTO_ecdhe_key_get_public(), GNUNET_CRYPTO_hash(), GNUNET_e2s(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_ERROR_TYPE_WARNING, GNUNET_free, GNUNET_memcmp, GNUNET_NO, GNUNET_OK, GNUNET_SCHEDULER_add_at(), GNUNET_STATISTICS_update(), CadetTunnelAxolotl::kx_0, LOG, msg, my_private_key, ret, retry_kx(), CadetTunnelAxolotl::RK, send_kx_auth(), stats, t, CadetTConnection::t, and update_ax_by_kx().
Referenced by GCC_handle_kx_auth().
void GCT_handle_encrypted | ( | struct CadetTConnection * | ct, |
const struct GNUNET_CADET_TunnelEncryptedMessage * | msg | ||
) |
Handle encrypted message.
ct | connection/tunnel combo that received encrypted message |
msg | the encrypted message to decrypt |
Definition at line 3238 of file gnunet-service-cadet_tunnels.c.
References CADET_TUNNEL_KEY_AX_AUTH_SENT, CADET_TUNNEL_KEY_AX_RECV, CADET_TUNNEL_KEY_AX_SENT, CADET_TUNNEL_KEY_AX_SENT_AND_RECV, CADET_TUNNEL_KEY_OK, CADET_TUNNEL_KEY_UNINITIALIZED, cleanup_ax(), GCT_2s(), GCT_change_estate(), GNUNET_ALIGN, GNUNET_break_op, GNUNET_ERROR_TYPE_DEBUG, GNUNET_ERROR_TYPE_WARNING, GNUNET_free, GNUNET_MST_from_buffer(), GNUNET_NO, GNUNET_OK, GNUNET_SCHEDULER_add_now(), GNUNET_SCHEDULER_cancel(), GNUNET_STATISTICS_update(), GNUNET_YES, LOG, MAX_UNVERIFIED_ATTEMPTS, msg, send_kx(), send_kx_auth(), GNUNET_MessageHeader::size, size, stats, t, CadetTConnection::t, t_ax_decrypt_and_validate(), and trigger_transmissions().
Referenced by GCC_handle_encrypted().
void GCT_debug | ( | const struct CadetTunnel * | t, |
enum GNUNET_ErrorType | level | ||
) |
Log all possible info about the tunnel state.
t | Tunnel to debug. |
level | Debug level to use. |
Definition at line 3629 of file gnunet-service-cadet_tunnels.c.
References CadetTConnection::cc, debug_channel(), estate2s(), GCC_debug(), GCT_2s(), GCT_count_any_connections(), GNUNET_CONTAINER_multihashmap32_iterate(), GNUNET_ERROR_TYPE_BULK, GNUNET_get_log_call_status(), LOG2, CadetTConnection::next, and t.