mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 14:23:30 +01:00
Expose some channel cell queue stuff to the test suite
This commit is contained in:
parent
5992a69dee
commit
bbb06b73cd
@ -13,6 +13,9 @@
|
|||||||
|
|
||||||
#define TOR_CHANNEL_INTERNAL_
|
#define TOR_CHANNEL_INTERNAL_
|
||||||
|
|
||||||
|
/* This one's for stuff only channel.c and the test suite should see */
|
||||||
|
#define CHANNEL_PRIVATE_
|
||||||
|
|
||||||
#include "or.h"
|
#include "or.h"
|
||||||
#include "channel.h"
|
#include "channel.h"
|
||||||
#include "channeltls.h"
|
#include "channeltls.h"
|
||||||
@ -31,29 +34,6 @@
|
|||||||
#include "routerlist.h"
|
#include "routerlist.h"
|
||||||
#include "scheduler.h"
|
#include "scheduler.h"
|
||||||
|
|
||||||
/* Cell queue structure */
|
|
||||||
|
|
||||||
typedef struct cell_queue_entry_s cell_queue_entry_t;
|
|
||||||
struct cell_queue_entry_s {
|
|
||||||
TOR_SIMPLEQ_ENTRY(cell_queue_entry_s) next;
|
|
||||||
enum {
|
|
||||||
CELL_QUEUE_FIXED,
|
|
||||||
CELL_QUEUE_VAR,
|
|
||||||
CELL_QUEUE_PACKED
|
|
||||||
} type;
|
|
||||||
union {
|
|
||||||
struct {
|
|
||||||
cell_t *cell;
|
|
||||||
} fixed;
|
|
||||||
struct {
|
|
||||||
var_cell_t *var_cell;
|
|
||||||
} var;
|
|
||||||
struct {
|
|
||||||
packed_cell_t *packed_cell;
|
|
||||||
} packed;
|
|
||||||
} u;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Global lists of channels */
|
/* Global lists of channels */
|
||||||
|
|
||||||
/* All channel_t instances */
|
/* All channel_t instances */
|
||||||
@ -175,7 +155,6 @@ static cell_queue_entry_t *
|
|||||||
cell_queue_entry_new_fixed(cell_t *cell);
|
cell_queue_entry_new_fixed(cell_t *cell);
|
||||||
static cell_queue_entry_t *
|
static cell_queue_entry_t *
|
||||||
cell_queue_entry_new_var(var_cell_t *var_cell);
|
cell_queue_entry_new_var(var_cell_t *var_cell);
|
||||||
static int chan_cell_queue_len(const chan_cell_queue_t *queue);
|
|
||||||
static int is_destroy_cell(channel_t *chan,
|
static int is_destroy_cell(channel_t *chan,
|
||||||
const cell_queue_entry_t *q, circid_t *circid_out);
|
const cell_queue_entry_t *q, circid_t *circid_out);
|
||||||
|
|
||||||
@ -1751,9 +1730,8 @@ channel_get_cell_queue_entry_size(channel_t *chan, cell_queue_entry_t *q)
|
|||||||
rv = get_cell_network_size(chan->wide_circ_ids);
|
rv = get_cell_network_size(chan->wide_circ_ids);
|
||||||
break;
|
break;
|
||||||
case CELL_QUEUE_VAR:
|
case CELL_QUEUE_VAR:
|
||||||
tor_assert(q->u.var.var_cell);
|
|
||||||
rv = get_var_cell_header_size(chan->wide_circ_ids) +
|
rv = get_var_cell_header_size(chan->wide_circ_ids) +
|
||||||
q->u.var.var_cell->payload_len;
|
(q->u.var.var_cell ? q->u.var.var_cell->payload_len : 0);
|
||||||
break;
|
break;
|
||||||
case CELL_QUEUE_PACKED:
|
case CELL_QUEUE_PACKED:
|
||||||
rv = get_cell_network_size(chan->wide_circ_ids);
|
rv = get_cell_network_size(chan->wide_circ_ids);
|
||||||
@ -3455,7 +3433,7 @@ channel_listener_describe_transport(channel_listener_t *chan_l)
|
|||||||
/**
|
/**
|
||||||
* Return the number of entries in <b>queue</b>
|
* Return the number of entries in <b>queue</b>
|
||||||
*/
|
*/
|
||||||
static int
|
STATIC int
|
||||||
chan_cell_queue_len(const chan_cell_queue_t *queue)
|
chan_cell_queue_len(const chan_cell_queue_t *queue)
|
||||||
{
|
{
|
||||||
int r = 0;
|
int r = 0;
|
||||||
|
@ -354,6 +354,34 @@ void channel_set_cmux_policy_everywhere(circuitmux_policy_t *pol);
|
|||||||
|
|
||||||
#ifdef TOR_CHANNEL_INTERNAL_
|
#ifdef TOR_CHANNEL_INTERNAL_
|
||||||
|
|
||||||
|
#ifdef CHANNEL_PRIVATE_
|
||||||
|
/* Cell queue structure (here rather than channel.c for test suite use) */
|
||||||
|
|
||||||
|
typedef struct cell_queue_entry_s cell_queue_entry_t;
|
||||||
|
struct cell_queue_entry_s {
|
||||||
|
TOR_SIMPLEQ_ENTRY(cell_queue_entry_s) next;
|
||||||
|
enum {
|
||||||
|
CELL_QUEUE_FIXED,
|
||||||
|
CELL_QUEUE_VAR,
|
||||||
|
CELL_QUEUE_PACKED
|
||||||
|
} type;
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
cell_t *cell;
|
||||||
|
} fixed;
|
||||||
|
struct {
|
||||||
|
var_cell_t *var_cell;
|
||||||
|
} var;
|
||||||
|
struct {
|
||||||
|
packed_cell_t *packed_cell;
|
||||||
|
} packed;
|
||||||
|
} u;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Cell queue functions for benefit of test suite */
|
||||||
|
STATIC int chan_cell_queue_len(const chan_cell_queue_t *queue);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Channel operations for subclasses and internal use only */
|
/* Channel operations for subclasses and internal use only */
|
||||||
|
|
||||||
/* Initialize a newly allocated channel - do this first in subclass
|
/* Initialize a newly allocated channel - do this first in subclass
|
||||||
|
Loading…
Reference in New Issue
Block a user