|
Tor
0.4.7.0-alpha-dev
|
Code that is related to SENDME cells both in terms of creating/parsing cells and handling the content. More...
#include "core/or/or.h"#include "app/config/config.h"#include "core/crypto/relay_crypto.h"#include "core/mainloop/connection.h"#include "core/or/cell_st.h"#include "core/or/crypt_path.h"#include "core/or/circuitlist.h"#include "core/or/circuituse.h"#include "core/or/or_circuit_st.h"#include "core/or/relay.h"#include "core/or/sendme.h"#include "feature/nodelist/networkstatus.h"#include "lib/ctime/di_ops.h"#include "trunnel/sendme_cell.h"Go to the source code of this file.
Functions | |
| STATIC int | get_emit_min_version (void) |
| STATIC int | get_accept_min_version (void) |
| static uint8_t * | pop_first_cell_digest (const circuit_t *circ) |
| static bool | v1_digest_matches (const uint8_t *circ_digest, const uint8_t *cell_digest) |
| static bool | cell_v1_is_valid (const sendme_cell_t *cell, const uint8_t *circ_digest) |
| STATIC bool | cell_version_can_be_handled (uint8_t cell_version) |
| STATIC bool | sendme_is_valid (const circuit_t *circ, const uint8_t *cell_payload, size_t cell_payload_len) |
| STATIC ssize_t | build_cell_payload_v1 (const uint8_t *cell_digest, uint8_t *payload) |
| static int | send_circuit_level_sendme (circuit_t *circ, crypt_path_t *layer_hint, const uint8_t *cell_digest) |
| static void | record_cell_digest_on_circ (circuit_t *circ, const uint8_t *sendme_digest) |
| static bool | circuit_sendme_cell_is_next (int window) |
| void | sendme_connection_edge_consider_sending (edge_connection_t *conn) |
| void | sendme_circuit_consider_sending (circuit_t *circ, crypt_path_t *layer_hint) |
| int | sendme_process_circuit_level (crypt_path_t *layer_hint, circuit_t *circ, const uint8_t *cell_payload, uint16_t cell_payload_len) |
| int | sendme_process_stream_level (edge_connection_t *conn, circuit_t *circ, uint16_t cell_body_len) |
| int | sendme_circuit_data_received (circuit_t *circ, crypt_path_t *layer_hint) |
| int | sendme_stream_data_received (edge_connection_t *conn) |
| int | sendme_note_circuit_data_packaged (circuit_t *circ, crypt_path_t *layer_hint) |
| int | sendme_note_stream_data_packaged (edge_connection_t *conn) |
| void | sendme_record_cell_digest_on_circ (circuit_t *circ, crypt_path_t *cpath) |
| void | sendme_record_received_cell_digest (circuit_t *circ, crypt_path_t *cpath) |
| void | sendme_record_sending_cell_digest (circuit_t *circ, crypt_path_t *cpath) |
Code that is related to SENDME cells both in terms of creating/parsing cells and handling the content.
Definition in file sendme.c.
|
static |
| void sendme_circuit_consider_sending | ( | circuit_t * | circ, |
| crypt_path_t * | layer_hint | ||
| ) |
| void sendme_connection_edge_consider_sending | ( | edge_connection_t * | conn | ) |
Called when we've just received a relay data cell, when we've just finished flushing all bytes to stream conn, or when we've flushed some bytes to the stream conn.
If conn->outbuf is not too full, and our deliver window is low, send back a suitable number of stream-level sendme cells.
Definition at line 375 of file sendme.c.
Referenced by connection_edge_finished_flushing().