aboutsummaryrefslogtreecommitdiff
path: root/src/or/or.h
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2007-12-23 19:15:22 +0000
committerNick Mathewson <nickm@torproject.org>2007-12-23 19:15:22 +0000
commitda06bfb80fdb0f356cd5cf5746c06492afec0f78 (patch)
treed3cffd2f267f30d269bd1ffa223345fb2a817965 /src/or/or.h
parent473725e1a47c65b59dc22d974c0d7dd2d7f7c44c (diff)
downloadtor-da06bfb80fdb0f356cd5cf5746c06492afec0f78.tar
tor-da06bfb80fdb0f356cd5cf5746c06492afec0f78.tar.gz
r15653@tombo: nickm | 2007-12-23 14:15:12 -0500
Refactor circuit_launch* functions to take a bitfield of flags rather than 4 separate nonconsecutive flags arguments. Also, note a possible but in circuit_find_to_cannibalize, which seems to be ignoring its purpose argument. svn:r12948
Diffstat (limited to 'src/or/or.h')
-rw-r--r--src/or/or.h40
1 files changed, 19 insertions, 21 deletions
diff --git a/src/or/or.h b/src/or/or.h
index 5e2610994..1e817144a 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -2473,13 +2473,10 @@ char *circuit_list_path_for_controller(origin_circuit_t *circ);
void circuit_log_path(int severity, unsigned int domain,
origin_circuit_t *circ);
void circuit_rep_hist_note_result(origin_circuit_t *circ);
-origin_circuit_t *origin_circuit_init(uint8_t purpose, int onehop_tunnel,
- int need_uptime,
- int need_capacity, int internal);
+origin_circuit_t *origin_circuit_init(uint8_t purpose, int flags);
origin_circuit_t *circuit_establish_circuit(uint8_t purpose,
- int onehop_tunnel, extend_info_t *exit,
- int need_uptime, int need_capacity,
- int internal);
+ extend_info_t *exit,
+ int flags);
int circuit_handle_first_hop(origin_circuit_t *circ);
void circuit_n_conn_done(or_connection_t *or_conn, int status);
int inform_testing_reachability(void);
@@ -2556,9 +2553,7 @@ origin_circuit_t *circuit_get_next_by_pk_and_purpose(origin_circuit_t *start,
or_circuit_t *circuit_get_rendezvous(const char *cookie);
or_circuit_t *circuit_get_intro_point(const char *digest);
origin_circuit_t *circuit_find_to_cannibalize(uint8_t purpose,
- extend_info_t *info,
- int need_uptime,
- int need_capacity, int internal);
+ extend_info_t *info, int flags);
void circuit_mark_all_unused_circs(void);
void circuit_expire_all_dirty_circs(void);
void _circuit_mark_for_close(circuit_t *circ, int reason,
@@ -2590,21 +2585,24 @@ int circuit_enough_testing_circs(void);
void circuit_has_opened(origin_circuit_t *circ);
void circuit_build_failed(origin_circuit_t *circ);
+
+/** Flag to set when a circuit should have only a single hop. */
+#define CIRCLAUNCH_ONEHOP_TUNNEL (1<<0)
+/** Flag to set when a circuit needs to be built of high-uptime nodes */
+#define CIRCLAUNCH_NEED_UPTIME (1<<1)
+/** Flag to set when a circuit needs to be build of high-capcity nodes */
+#define CIRCLAUNCH_NEED_CAPACITY (1<<2)
+/** Flag to set when the last hop of a circuit doesn't need to be an
+ * exit node. */
+#define CIRCLAUNCH_IS_INTERNAL (1<<3)
origin_circuit_t *circuit_launch_by_nickname(uint8_t purpose,
- int onehop_tunnel,
- const char *exit_nickname,
- int need_uptime, int need_capacity,
- int is_internal);
+ const char *exit_nickname,
+ int flags);
origin_circuit_t *circuit_launch_by_extend_info(uint8_t purpose,
- int onehop_tunnel,
- extend_info_t *info,
- int need_uptime, int need_capacity,
- int is_internal);
+ extend_info_t *info,
+ int flags);
origin_circuit_t *circuit_launch_by_router(uint8_t purpose,
- int onehop_tunnel,
- routerinfo_t *exit,
- int need_uptime, int need_capacity,
- int is_internal);
+ routerinfo_t *exit, int flags);
void circuit_reset_failure_count(int timeout);
int connection_ap_handshake_attach_chosen_circuit(edge_connection_t *conn,
origin_circuit_t *circ,