OP was hanging on first try if connect finishes too quickly

svn:r105
This commit is contained in:
Roger Dingledine 2002-09-20 19:33:13 +00:00
parent 5449fc86db
commit 8019f2250c
2 changed files with 3 additions and 5 deletions

View File

@ -27,7 +27,6 @@ int connection_op_process_inbuf(connection_t *conn) {
} }
return 0; return 0;
} }
int op_handshake_process_keys(connection_t *conn) { int op_handshake_process_keys(connection_t *conn) {
@ -90,7 +89,7 @@ int op_handshake_process_keys(connection_t *conn) {
connection_init_timeval(conn); connection_init_timeval(conn);
connection_watch_events(conn, POLLIN); connection_watch_events(conn, POLLIN);
return 0; return connection_process_inbuf(conn); /* in case they sent some cells along with the keys */
} }
int connection_op_finished_flushing(connection_t *conn) { int connection_op_finished_flushing(connection_t *conn) {

View File

@ -89,7 +89,7 @@ int connection_or_finished_flushing(connection_t *conn) {
conn->state = OR_CONN_STATE_OPEN; conn->state = OR_CONN_STATE_OPEN;
connection_init_timeval(conn); connection_init_timeval(conn);
connection_watch_events(conn, POLLIN); connection_watch_events(conn, POLLIN);
return 0; return connection_process_inbuf(conn); /* in case there's anything waiting on it */
case OR_CONN_STATE_SERVER_SENDING_AUTH: case OR_CONN_STATE_SERVER_SENDING_AUTH:
log(LOG_DEBUG,"connection_or_finished_flushing(): server finished sending auth."); log(LOG_DEBUG,"connection_or_finished_flushing(): server finished sending auth.");
conn->state = OR_CONN_STATE_SERVER_NONCE_WAIT; conn->state = OR_CONN_STATE_SERVER_NONCE_WAIT;
@ -331,8 +331,7 @@ int or_handshake_op_finished_sending_keys(connection_t *conn) {
conn->state = OR_CONN_STATE_OPEN; conn->state = OR_CONN_STATE_OPEN;
connection_init_timeval(conn); connection_init_timeval(conn);
connection_watch_events(conn, POLLIN); /* give it a default, tho the ap_handshake call may change it */ connection_watch_events(conn, POLLIN); /* give it a default, tho the ap_handshake call may change it */
ap_handshake_n_conn_open(conn); /* send the pending onion */ return ap_handshake_n_conn_open(conn); /* send the pending onion */
return 0;
} }