mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 14:23:30 +01:00
fix some bugs; more remain
svn:r1450
This commit is contained in:
parent
06c812c2de
commit
bbc9484957
@ -334,7 +334,7 @@ circuit_t *circuit_get_newest(connection_t *conn,
|
|||||||
* the list.
|
* the list.
|
||||||
*/
|
*/
|
||||||
circuit_t *circuit_get_next_by_pk_and_purpose(circuit_t *start,
|
circuit_t *circuit_get_next_by_pk_and_purpose(circuit_t *start,
|
||||||
const char *digest, int purpose)
|
const char *digest, uint8_t purpose)
|
||||||
{
|
{
|
||||||
circuit_t *circ;
|
circuit_t *circ;
|
||||||
if (start == NULL)
|
if (start == NULL)
|
||||||
|
@ -1026,8 +1026,9 @@ void assert_connection_ok(connection_t *conn, time_t now)
|
|||||||
} else {
|
} else {
|
||||||
assert(!conn->socks_request);
|
assert(!conn->socks_request);
|
||||||
}
|
}
|
||||||
if(conn->type != CONN_TYPE_DIR) {
|
if(conn->type != CONN_TYPE_DIR &&
|
||||||
assert(!conn->purpose); /* only used for dir types currently */
|
conn->type != CONN_TYPE_AP) {
|
||||||
|
assert(!conn->purpose); /* only used for dir and ap types currently */
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(conn->type)
|
switch(conn->type)
|
||||||
|
@ -817,8 +817,9 @@ int connection_ap_handshake_attach_circuit(connection_t *conn) {
|
|||||||
/* is one already on the way? */
|
/* is one already on the way? */
|
||||||
circ = circuit_launch_new(desired_circuit_purpose, NULL);
|
circ = circuit_launch_new(desired_circuit_purpose, NULL);
|
||||||
/* depending on purpose, store stuff into circ */
|
/* depending on purpose, store stuff into circ */
|
||||||
if (desired_circuit_purpose == CIRCUIT_PURPOSE_C_GENERAL ||
|
if(circ &&
|
||||||
desired_circuit_purpose == CIRCUIT_PURPOSE_C_ESTABLISH_REND) {
|
(desired_circuit_purpose == CIRCUIT_PURPOSE_C_GENERAL ||
|
||||||
|
desired_circuit_purpose == CIRCUIT_PURPOSE_C_ESTABLISH_REND)) {
|
||||||
/* then write the service_id into circ */
|
/* then write the service_id into circ */
|
||||||
strcpy(circ->rend_query, conn->rend_query);
|
strcpy(circ->rend_query, conn->rend_query);
|
||||||
}
|
}
|
||||||
@ -964,6 +965,7 @@ int connection_ap_make_bridge(char *address, uint16_t port) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
conn->state = AP_CONN_STATE_CIRCUIT_WAIT;
|
conn->state = AP_CONN_STATE_CIRCUIT_WAIT;
|
||||||
|
conn->purpose = AP_PURPOSE_GENERAL;
|
||||||
connection_start_reading(conn);
|
connection_start_reading(conn);
|
||||||
|
|
||||||
/* attaching to a dirty circuit is fine */
|
/* attaching to a dirty circuit is fine */
|
||||||
|
@ -176,7 +176,7 @@
|
|||||||
#define AP_PURPOSE_RENDDESC_WAIT 2
|
#define AP_PURPOSE_RENDDESC_WAIT 2
|
||||||
#define AP_PURPOSE_RENDPOINT_WAIT 3
|
#define AP_PURPOSE_RENDPOINT_WAIT 3
|
||||||
#define AP_PURPOSE_INTROPOINT_WAIT 4
|
#define AP_PURPOSE_INTROPOINT_WAIT 4
|
||||||
#define _AP_PURPOSE_MAX 3
|
#define _AP_PURPOSE_MAX 4
|
||||||
|
|
||||||
#define _DIR_CONN_STATE_MIN 1
|
#define _DIR_CONN_STATE_MIN 1
|
||||||
#define DIR_CONN_STATE_CONNECTING 1
|
#define DIR_CONN_STATE_CONNECTING 1
|
||||||
@ -699,7 +699,7 @@ circuit_t *circuit_get_by_conn(connection_t *conn);
|
|||||||
circuit_t *circuit_get_newest(connection_t *conn,
|
circuit_t *circuit_get_newest(connection_t *conn,
|
||||||
int must_be_open, uint8_t conn_purpose);
|
int must_be_open, uint8_t conn_purpose);
|
||||||
circuit_t *circuit_get_next_by_pk_and_purpose(circuit_t *circuit,
|
circuit_t *circuit_get_next_by_pk_and_purpose(circuit_t *circuit,
|
||||||
const char *servid, int purpose);
|
const char *servid, uint8_t purpose);
|
||||||
circuit_t *circuit_get_rendezvous(const char *cookie);
|
circuit_t *circuit_get_rendezvous(const char *cookie);
|
||||||
|
|
||||||
void circuit_expire_building(void);
|
void circuit_expire_building(void);
|
||||||
|
@ -9,7 +9,7 @@ void
|
|||||||
rend_client_introcirc_is_ready(connection_t *apconn, circuit_t *circ)
|
rend_client_introcirc_is_ready(connection_t *apconn, circuit_t *circ)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
log_fn(LOG_WARN,"introcirc is ready");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* send the rendezvous cell */
|
/* send the rendezvous cell */
|
||||||
@ -18,6 +18,7 @@ rend_client_rendcirc_is_ready(connection_t *apconn, circuit_t *circ)
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
log_fn(LOG_WARN,"rendcirc is ready");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* bob sent us a rendezvous cell, join the circs. */
|
/* bob sent us a rendezvous cell, join the circs. */
|
||||||
|
Loading…
Reference in New Issue
Block a user