diff options
author | Nick Mathewson <nickm@torproject.org> | 2005-03-12 04:22:01 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2005-03-12 04:22:01 +0000 |
commit | 115271f65e1b84cea09f0fb401afb123f22b075b (patch) | |
tree | ab148aad2c1d2f5e320011b8507507817e48c918 /src/or/or.h | |
parent | d1f790e9cec42783e47805a8593ca5532a525904 (diff) | |
download | tor-115271f65e1b84cea09f0fb401afb123f22b075b.tar tor-115271f65e1b84cea09f0fb401afb123f22b075b.tar.gz |
Implement the common case of ATTACHSTREAM.
svn:r3751
Diffstat (limited to 'src/or/or.h')
-rw-r--r-- | src/or/or.h | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/or/or.h b/src/or/or.h index f14632eb0..3c5fbb23d 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -256,15 +256,18 @@ typedef enum { /** State for a SOCKS connection: got a y.onion URL; waiting to receive * rendezvous rescriptor. */ #define AP_CONN_STATE_RENDDESC_WAIT 6 +/** The controller will attach this connection to a circuit; it isn't our + * job to do so. */ +#define AP_CONN_STATE_CONTROLLER_WAIT 7 /** State for a SOCKS connection: waiting for a completed circuit. */ -#define AP_CONN_STATE_CIRCUIT_WAIT 7 +#define AP_CONN_STATE_CIRCUIT_WAIT 8 /** State for a SOCKS connection: sent BEGIN, waiting for CONNECTED. */ -#define AP_CONN_STATE_CONNECT_WAIT 8 +#define AP_CONN_STATE_CONNECT_WAIT 9 /** State for a SOCKS connection: send RESOLVE, waiting for RESOLVED. */ -#define AP_CONN_STATE_RESOLVE_WAIT 9 +#define AP_CONN_STATE_RESOLVE_WAIT 10 /** State for a SOCKS connection: ready to send and receive. */ -#define AP_CONN_STATE_OPEN 10 -#define _AP_CONN_STATE_MAX 10 +#define AP_CONN_STATE_OPEN 11 +#define _AP_CONN_STATE_MAX 11 #define _DIR_CONN_STATE_MIN 1 /** State for connection to directory server: waiting for connect(). */ @@ -1053,6 +1056,9 @@ typedef struct { * the control system. */ int CookieAuthentication; /**< Boolean: do we enable cookie-based auth for * the control system? */ + int ManageConnections; /**< Boolean: Does Tor attach new connections to + * circuits itself (1), or does it let the controller + * deal? (0) */ } or_options_t; #define MAX_SOCKS_REPLY_LEN 1024 @@ -1133,6 +1139,7 @@ void circuit_close_all_marked(void); circuit_t *circuit_new(uint16_t p_circ_id, connection_t *p_conn); circuit_t *circuit_get_by_circ_id_conn(uint16_t circ_id, connection_t *conn); circuit_t *circuit_get_by_conn(connection_t *conn); +circuit_t *circuit_get_by_global_id(uint32_t id); circuit_t *circuit_get_by_rend_query_and_purpose(const char *rend_query, uint8_t purpose); circuit_t *circuit_get_next_by_pk_and_purpose(circuit_t *start, const char *digest, uint8_t purpose); @@ -1172,6 +1179,8 @@ circuit_t *circuit_launch_by_nickname(uint8_t purpose, const char *exit_nickname circuit_t *circuit_launch_by_identity(uint8_t purpose, const char *exit_digest, int need_uptime, int need_capacity, int is_internal); void circuit_reset_failure_count(int timeout); +int connection_ap_handshake_attach_chosen_circuit(connection_t *conn, + circuit_t *circ); int connection_ap_handshake_attach_circuit(connection_t *conn); /********************************* command.c ***************************/ @@ -1260,6 +1269,7 @@ void connection_write_to_buf(const char *string, size_t len, connection_t *conn) connection_t *connection_exact_get_by_addr_port(uint32_t addr, uint16_t port); connection_t *connection_get_by_identity_digest(const char *digest, int type); +connection_t *connection_get_by_global_id(uint32_t id); connection_t *connection_get_by_type(int type); connection_t *connection_get_by_type_state(int type, int state); @@ -1365,7 +1375,8 @@ typedef enum stream_status_event_t { STREAM_EVENT_SUCCEEDED = 2, STREAM_EVENT_FAILED = 3, STREAM_EVENT_CLOSED = 4, - STREAM_EVENT_NEW = 5 + STREAM_EVENT_NEW = 5, + STREAM_EVENT_NEW_RESOLVE = 6 } stream_status_event_t; typedef enum or_conn_status_event_t { |