diff options
author | George Kadianakis <desnacked@riseup.net> | 2019-01-10 12:33:43 +0200 |
---|---|---|
committer | George Kadianakis <desnacked@riseup.net> | 2019-01-10 13:06:08 +0200 |
commit | 5738a0ab6c7904ed9dd53ce5d045b2dedf69b4f6 (patch) | |
tree | 76f7c276e33e845f871b3fa4a6e0e0e44e84c516 | |
parent | cdbd5c0af85775522845a54468492770c54b4cb4 (diff) | |
download | tor-5738a0ab6c7904ed9dd53ce5d045b2dedf69b4f6.tar.gz tor-5738a0ab6c7904ed9dd53ce5d045b2dedf69b4f6.zip |
Rename circpad_machine_t -> circpad_machine_spec_t
-rw-r--r-- | src/core/or/circuit_st.h | 4 | ||||
-rw-r--r-- | src/core/or/circuitpadding.c | 70 | ||||
-rw-r--r-- | src/core/or/circuitpadding.h | 14 | ||||
-rw-r--r-- | src/test/test_circuitpadding.c | 17 |
4 files changed, 53 insertions, 52 deletions
diff --git a/src/core/or/circuit_st.h b/src/core/or/circuit_st.h index 0d9ad3cdd5..74f045d723 100644 --- a/src/core/or/circuit_st.h +++ b/src/core/or/circuit_st.h @@ -12,7 +12,7 @@ #include "core/or/cell_queue_st.h" struct hs_token_t; -typedef struct circpad_machine_t circpad_machine_t; +typedef struct circpad_machine_spec_t circpad_machine_spec_t; typedef struct circpad_machineinfo_t circpad_machineinfo_t; /** Number of padding state machines on a circuit. */ @@ -189,7 +189,7 @@ struct circuit_t { * * Each element of this array corresponds to a different padding machine, * and we can have up to CIRCPAD_MAX_MACHINES such machines. */ - const circpad_machine_t *padding_machine[CIRCPAD_MAX_MACHINES]; + const circpad_machine_spec_t *padding_machine[CIRCPAD_MAX_MACHINES]; /** Adaptive Padding machine info for above machines. This is the * per-circuit mutable information, such as the current state and diff --git a/src/core/or/circuitpadding.c b/src/core/or/circuitpadding.c index 4c0736fff4..c5a80d6c5d 100644 --- a/src/core/or/circuitpadding.c +++ b/src/core/or/circuitpadding.c @@ -14,9 +14,9 @@ * In particular the code in this file describes mechanisms for clients to * negotiate various types of circuit-level padding from relays. * - * Each padding type is described by a state machine (circpad_machine_t), which - * is also referred as a "padding machine" in this file. Currently, these - * state machines are hardcoded in the source code (e.g. see + * Each padding type is described by a state machine (circpad_machine_spec_t), + * which is also referred as a "padding machine" in this file. Currently, + * these state machines are hardcoded in the source code (e.g. see * circpad_circ_client_machine_init()), but in the future we will be able to * serialize them in the torrc or the consensus. * @@ -36,7 +36,7 @@ * * When a padding machine reaches the END state, it gets wiped from the circuit * so that other padding machines can take over if needed (see - * circpad_machine_transitioned_to_end()). + * circpad_machine_spec_transitioned_to_end()). **/ #define CIRCUITPADDING_PRIVATE @@ -75,7 +75,7 @@ static inline circpad_purpose_mask_t circpad_circ_purpose_to_mask(uint8_t static inline circpad_circuit_state_t circpad_circuit_state( origin_circuit_t *circ); static void circpad_setup_machine_on_circ(circuit_t *on_circ, - const circpad_machine_t *machine); + const circpad_machine_spec_t *machine); static double circpad_distribution_sample(circpad_distribution_t dist); /** Cached consensus params */ @@ -86,12 +86,12 @@ static uint16_t circpad_global_allowed_cells; static uint64_t circpad_global_padding_sent; static uint64_t circpad_global_nonpadding_sent; -/** This is the list of circpad_machine_t's parsed from consensus and torrc - * that have origin_side == 1 (ie: are for client side) */ +/** This is the list of circpad_machine_spec_t's parsed from consensus and + * torrc that have origin_side == 1 (ie: are for client side) */ STATIC smartlist_t *origin_padding_machines = NULL; -/** This is the list of circpad_machine_t's parsed from consensus and torrc - * that have origin_side == 0 (ie: are for relay side) */ +/** This is the list of circpad_machine_spec_t's parsed from consensus and + * torrc that have origin_side == 0 (ie: are for relay side) */ STATIC smartlist_t *relay_padding_machines = NULL; /** Loop over the current padding state machines using <b>loop_var</b> as the @@ -197,7 +197,7 @@ circpad_circuit_machineinfo_new(circuit_t *on_circ, int machine_index) STATIC const circpad_state_t * circpad_machine_current_state(const circpad_machineinfo_t *mi) { - const circpad_machine_t *machine = CIRCPAD_GET_MACHINE(mi); + const circpad_machine_spec_t *machine = CIRCPAD_GET_MACHINE(mi); if (mi->current_state == CIRCPAD_STATE_END) { return NULL; @@ -1097,7 +1097,7 @@ circpad_new_consensus_params(const networkstatus_t *ns) STATIC bool circpad_machine_reached_padding_limit(circpad_machineinfo_t *mi) { - const circpad_machine_t *machine = CIRCPAD_GET_MACHINE(mi); + const circpad_machine_spec_t *machine = CIRCPAD_GET_MACHINE(mi); /* If machine_padding_pct is non-zero, and we've sent more * than the allowed count of padding cells, then check our @@ -1233,9 +1233,9 @@ circpad_machine_schedule_padding,(circpad_machineinfo_t *mi)) * not access it. */ static void -circpad_machine_transitioned_to_end(circpad_machineinfo_t *mi) +circpad_machine_spec_transitioned_to_end(circpad_machineinfo_t *mi) { - const circpad_machine_t *machine = CIRCPAD_GET_MACHINE(mi); + const circpad_machine_spec_t *machine = CIRCPAD_GET_MACHINE(mi); /* * We allow machines to shut down and delete themselves as opposed @@ -1283,7 +1283,7 @@ circpad_machine_transitioned_to_end(circpad_machineinfo_t *mi) * Returns 1 if we transition states, 0 otherwise. */ MOCK_IMPL(circpad_decision_t, -circpad_machine_transition,(circpad_machineinfo_t *mi, +circpad_machine_spec_transition,(circpad_machineinfo_t *mi, circpad_event_t event)) { const circpad_state_t *state = @@ -1331,7 +1331,7 @@ circpad_machine_transition,(circpad_machineinfo_t *mi, /* If we transition to the end state, check to see * if this machine wants to be shut down at end */ if (s == CIRCPAD_STATE_END) { - circpad_machine_transitioned_to_end(mi); + circpad_machine_spec_transitioned_to_end(mi); /* We transitioned but we don't pad in end. Also, mi * may be freed. Returning STATE_CHANGED prevents us * from accessing it in any callers of this function. */ @@ -1485,7 +1485,7 @@ circpad_cell_event_nonpadding_sent(circuit_t *on_circ) if (!circpad_machine_remove_token(on_circ->padding_info[i])) { /* If removing a token did not cause a transition, check if * non-padding sent event should */ - circpad_machine_transition(on_circ->padding_info[i], + circpad_machine_spec_transition(on_circ->padding_info[i], CIRCPAD_EVENT_NONPADDING_SENT); } } FOR_EACH_ACTIVE_CIRCUIT_MACHINE_END; @@ -1506,7 +1506,7 @@ circpad_cell_event_nonpadding_received(circuit_t *on_circ) /* First, update any RTT estimate */ circpad_estimate_circ_rtt_on_received(on_circ, on_circ->padding_info[i]); - circpad_machine_transition(on_circ->padding_info[i], + circpad_machine_spec_transition(on_circ->padding_info[i], CIRCPAD_EVENT_NONPADDING_RECV); } FOR_EACH_ACTIVE_CIRCUIT_MACHINE_END; } @@ -1523,7 +1523,7 @@ void circpad_cell_event_padding_sent(circuit_t *on_circ) { FOR_EACH_ACTIVE_CIRCUIT_MACHINE_BEGIN(i, on_circ) { - circpad_machine_transition(on_circ->padding_info[i], + circpad_machine_spec_transition(on_circ->padding_info[i], CIRCPAD_EVENT_PADDING_SENT); } FOR_EACH_ACTIVE_CIRCUIT_MACHINE_END; } @@ -1541,7 +1541,7 @@ circpad_cell_event_padding_received(circuit_t *on_circ) { /* identical to padding sent */ FOR_EACH_ACTIVE_CIRCUIT_MACHINE_BEGIN(i, on_circ) { - circpad_machine_transition(on_circ->padding_info[i], + circpad_machine_spec_transition(on_circ->padding_info[i], CIRCPAD_EVENT_PADDING_RECV); } FOR_EACH_ACTIVE_CIRCUIT_MACHINE_END; } @@ -1558,7 +1558,7 @@ circpad_cell_event_padding_received(circuit_t *on_circ) circpad_decision_t circpad_internal_event_infinity(circpad_machineinfo_t *mi) { - return circpad_machine_transition(mi, CIRCPAD_EVENT_INFINITY); + return circpad_machine_spec_transition(mi, CIRCPAD_EVENT_INFINITY); } /** @@ -1572,7 +1572,7 @@ circpad_internal_event_infinity(circpad_machineinfo_t *mi) circpad_decision_t circpad_internal_event_bins_empty(circpad_machineinfo_t *mi) { - if (circpad_machine_transition(mi, CIRCPAD_EVENT_BINS_EMPTY) + if (circpad_machine_spec_transition(mi, CIRCPAD_EVENT_BINS_EMPTY) == CIRCPAD_STATE_CHANGED) { return CIRCPAD_STATE_CHANGED; } else { @@ -1591,7 +1591,7 @@ circpad_internal_event_bins_empty(circpad_machineinfo_t *mi) circpad_decision_t circpad_internal_event_state_length_up(circpad_machineinfo_t *mi) { - return circpad_machine_transition(mi, CIRCPAD_EVENT_LENGTH_COUNT); + return circpad_machine_spec_transition(mi, CIRCPAD_EVENT_LENGTH_COUNT); } /** @@ -1599,7 +1599,7 @@ circpad_internal_event_state_length_up(circpad_machineinfo_t *mi) */ static inline bool circpad_machine_conditions_met(origin_circuit_t *circ, - const circpad_machine_t *machine) + const circpad_machine_spec_t *machine) { if (!(circpad_circ_purpose_to_mask(TO_CIRCUIT(circ)->purpose) & machine->conditions.purpose_mask)) @@ -1740,7 +1740,7 @@ circpad_add_matching_machines(origin_circuit_t *on_circ) * machines in reverse order, so that more recently added * machines take priority over older ones. */ SMARTLIST_FOREACH_REVERSE_BEGIN(origin_padding_machines, - circpad_machine_t *, + circpad_machine_spec_t *, machine) { /* Machine definitions have a specific target machine index. * This is so event ordering is deterministic with respect @@ -2012,7 +2012,7 @@ circpad_deliver_sent_relay_cell_events(circuit_t *circ, * Initialize the states array for a circpad machine. */ void -circpad_machine_states_init(circpad_machine_t *machine, +circpad_machine_states_init(circpad_machine_spec_t *machine, circpad_statenum_t num_states) { if (BUG(num_states > CIRCPAD_MAX_MACHINE_STATES)) { @@ -2033,7 +2033,7 @@ circpad_machine_states_init(circpad_machine_t *machine, static void circpad_setup_machine_on_circ(circuit_t *on_circ, - const circpad_machine_t *machine) + const circpad_machine_spec_t *machine) { if (CIRCUIT_IS_ORIGIN(on_circ) && !machine->is_origin_side) { log_fn(LOG_WARN, LD_BUG, @@ -2061,8 +2061,8 @@ circpad_setup_machine_on_circ(circuit_t *on_circ, static void circpad_circ_client_machine_init(void) { - circpad_machine_t *circ_client_machine - = tor_malloc_zero(sizeof(circpad_machine_t)); + circpad_machine_spec_t *circ_client_machine + = tor_malloc_zero(sizeof(circpad_machine_spec_t)); // XXX: Better conditions for merge.. Or disable this machine in // merge? @@ -2115,8 +2115,8 @@ circpad_circ_client_machine_init(void) static void circpad_circ_responder_machine_init(void) { - circpad_machine_t *circ_responder_machine - = tor_malloc_zero(sizeof(circpad_machine_t)); + circpad_machine_spec_t *circ_responder_machine + = tor_malloc_zero(sizeof(circpad_machine_spec_t)); /* Shut down the machine after we've sent enough packets */ circ_responder_machine->should_negotiate_end = 1; @@ -2235,14 +2235,14 @@ circpad_machines_free(void) { if (origin_padding_machines) { SMARTLIST_FOREACH(origin_padding_machines, - circpad_machine_t *, + circpad_machine_spec_t *, m, tor_free(m->states); tor_free(m)); smartlist_free(origin_padding_machines); } if (relay_padding_machines) { SMARTLIST_FOREACH(relay_padding_machines, - circpad_machine_t *, + circpad_machine_spec_t *, m, tor_free(m->states); tor_free(m)); smartlist_free(relay_padding_machines); } @@ -2417,7 +2417,7 @@ circpad_handle_padding_negotiate(circuit_t *circ, cell_t *cell) goto err; } else if (negotiate->command == CIRCPAD_COMMAND_START) { SMARTLIST_FOREACH_BEGIN(relay_padding_machines, - const circpad_machine_t *, m) { + const circpad_machine_spec_t *, m) { if (m->machine_num == negotiate->machine_type) { circpad_setup_machine_on_circ(circ, m); goto done; @@ -2520,7 +2520,7 @@ circpad_state_serialize(const circpad_state_t *state, } char * -circpad_machine_to_string(const circpad_machine_t *machine) +circpad_machine_spec_to_string(const circpad_machine_spec_t *machine) { smartlist_t *chunks = smartlist_new(); char *out; @@ -2538,7 +2538,7 @@ circpad_machine_to_string(const circpad_machine_t *machine) } // XXX: Writeme -const circpad_machine_t * +const circpad_machine_spec_t * circpad_string_to_machine(const char *str) { (void)str; diff --git a/src/core/or/circuitpadding.h b/src/core/or/circuitpadding.h index 6559f916d2..a43be58abb 100644 --- a/src/core/or/circuitpadding.h +++ b/src/core/or/circuitpadding.h @@ -389,7 +389,7 @@ typedef struct circpad_state_t { /** * End is a pseudo-state that causes the machine to go completely * idle, and optionally get torn down (depending on the - * value of circpad_machine_t.should_negotiate_end) + * value of circpad_machine_spec_t.should_negotiate_end) * * End MUST NOT occupy a slot in the machine state array. */ @@ -529,7 +529,7 @@ typedef struct circpad_machineinfo_t { typedef uint8_t circpad_machine_num_t; /** Global state machine structure from the consensus */ -typedef struct circpad_machine_t { +typedef struct circpad_machine_spec_t { /** Global machine number */ circpad_machine_num_t machine_num; @@ -569,7 +569,7 @@ typedef struct circpad_machine_t { * Number of states this machine has (ie: length of the states array). * XXX: This field is not needed other than for safety. */ circpad_statenum_t num_states; -} circpad_machine_t; +} circpad_machine_spec_t; void circpad_new_consensus_params(const networkstatus_t *ns); @@ -608,7 +608,7 @@ void circpad_machine_event_circ_has_no_relay_early(origin_circuit_t *circ); void circpad_machines_init(void); void circpad_machines_free(void); -void circpad_machine_states_init(circpad_machine_t *machine, +void circpad_machine_states_init(circpad_machine_spec_t *machine, circpad_statenum_t num_states); void circpad_circuit_free_all_machineinfos(circuit_t *circ); @@ -617,8 +617,8 @@ bool circpad_padding_is_from_expected_hop(circuit_t *circ, crypt_path_t *from_hop); /** Serializaton functions for writing to/from torrc and consensus */ -char *circpad_machine_to_string(const circpad_machine_t *machine); -const circpad_machine_t *circpad_string_to_machine(const char *str); +char *circpad_machine_spec_to_string(const circpad_machine_spec_t *machine); +const circpad_machine_spec_t *circpad_string_to_machine(const char *str); /* Padding negotiation between client and middle */ signed_error_t circpad_handle_padding_negotiate(circuit_t *circ, cell_t *cell); @@ -637,7 +637,7 @@ MOCK_DECL(circpad_decision_t, circpad_machine_schedule_padding,(circpad_machineinfo_t *)); MOCK_DECL(circpad_decision_t, -circpad_machine_transition, (circpad_machineinfo_t *mi, +circpad_machine_spec_transition, (circpad_machineinfo_t *mi, circpad_event_t event)); circpad_decision_t circpad_send_padding_cell_for_callback( diff --git a/src/test/test_circuitpadding.c b/src/test/test_circuitpadding.c index 5693c98e41..2ab8e2445e 100644 --- a/src/test/test_circuitpadding.c +++ b/src/test/test_circuitpadding.c @@ -61,7 +61,7 @@ static node_t padding_node; static node_t non_padding_node; static channel_t dummy_channel; -static circpad_machine_t circ_client_machine; +static circpad_machine_spec_t circ_client_machine; static void timers_advance_and_run(int64_t msec_update) @@ -1514,7 +1514,7 @@ test_circuitpadding_negotiation(void *arg) client_side->purpose = CIRCUIT_PURPOSE_C_GENERAL; SMARTLIST_FOREACH(relay_padding_machines, - circpad_machine_t *, + circpad_machine_spec_t *, m, tor_free(m->states); tor_free(m)); smartlist_free(relay_padding_machines); relay_padding_machines = smartlist_new(); @@ -1594,10 +1594,11 @@ simulate_single_hop_extend(circuit_t *client, circuit_t *mid_relay, circpad_machine_event_circ_added_hop(TO_ORIGIN_CIRCUIT(client)); } -static circpad_machine_t * +static circpad_machine_spec_t * helper_create_conditional_machine(void) { - circpad_machine_t *ret = tor_malloc_zero(sizeof(circpad_machine_t)); + circpad_machine_spec_t *ret = + tor_malloc_zero(sizeof(circpad_machine_spec_t)); /* Start, burst */ circpad_machine_states_init(ret, 2); @@ -1630,7 +1631,7 @@ helper_create_conditional_machine(void) static void helper_create_conditional_machines(void) { - circpad_machine_t *add = helper_create_conditional_machine(); + circpad_machine_spec_t *add = helper_create_conditional_machine(); origin_padding_machines = smartlist_new(); relay_padding_machines = smartlist_new(); @@ -2158,7 +2159,7 @@ test_circuitpadding_sample_distribution(void *arg) } static circpad_decision_t -circpad_machine_transition_mock(circpad_machineinfo_t *mi, +circpad_machine_spec_transition_mock(circpad_machineinfo_t *mi, circpad_event_t event) { (void) mi; @@ -2178,7 +2179,7 @@ test_circuitpadding_machine_rate_limiting(void *arg) /* Ignore machine transitions for the purposes of this function, we only * really care about padding counts */ - MOCK(circpad_machine_transition, circpad_machine_transition_mock); + MOCK(circpad_machine_spec_transition, circpad_machine_spec_transition_mock); MOCK(circpad_send_command_to_hop, circpad_send_command_to_hop_mock); /* Setup machine and circuits */ @@ -2246,7 +2247,7 @@ test_circuitpadding_global_rate_limiting(void *arg) /* Ignore machine transitions for the purposes of this function, we only * really care about padding counts */ - MOCK(circpad_machine_transition, circpad_machine_transition_mock); + MOCK(circpad_machine_spec_transition, circpad_machine_spec_transition_mock); MOCK(circuitmux_attach_circuit, circuitmux_attach_circuit_mock); MOCK(circuit_package_relay_cell, circuit_package_relay_cell_mock); |