Move the "stop writing when the buffer is empty" logic to cnnection_finished_flushing

This commit is contained in:
Nick Mathewson 2009-08-05 09:59:11 -07:00
parent 63079efb87
commit ec10c044fb
7 changed files with 7 additions and 7 deletions

View File

@ -3430,6 +3430,9 @@ connection_finished_flushing(connection_t *conn)
// log_fn(LOG_DEBUG,"entered. Socket %u.", conn->s); // log_fn(LOG_DEBUG,"entered. Socket %u.", conn->s);
IF_HAS_NO_BUFFEREVENT(conn)
connection_stop_writing(conn);
switch (conn->type) { switch (conn->type) {
case CONN_TYPE_OR: case CONN_TYPE_OR:
return connection_or_finished_flushing(TO_OR_CONN(conn)); return connection_or_finished_flushing(TO_OR_CONN(conn));

View File

@ -319,7 +319,6 @@ connection_edge_finished_flushing(edge_connection_t *conn)
switch (conn->_base.state) { switch (conn->_base.state) {
case AP_CONN_STATE_OPEN: case AP_CONN_STATE_OPEN:
case EXIT_CONN_STATE_OPEN: case EXIT_CONN_STATE_OPEN:
connection_stop_writing(TO_CONN(conn));
connection_edge_consider_sending_sendme(conn); connection_edge_consider_sending_sendme(conn);
return 0; return 0;
case AP_CONN_STATE_SOCKS_WAIT: case AP_CONN_STATE_SOCKS_WAIT:
@ -328,7 +327,6 @@ connection_edge_finished_flushing(edge_connection_t *conn)
case AP_CONN_STATE_CIRCUIT_WAIT: case AP_CONN_STATE_CIRCUIT_WAIT:
case AP_CONN_STATE_CONNECT_WAIT: case AP_CONN_STATE_CONNECT_WAIT:
case AP_CONN_STATE_CONTROLLER_WAIT: case AP_CONN_STATE_CONTROLLER_WAIT:
connection_stop_writing(TO_CONN(conn));
return 0; return 0;
default: default:
log_warn(LD_BUG, "Called in unexpected state %d.",conn->_base.state); log_warn(LD_BUG, "Called in unexpected state %d.",conn->_base.state);

View File

@ -281,7 +281,6 @@ connection_or_finished_flushing(or_connection_t *conn)
case OR_CONN_STATE_PROXY_HANDSHAKING: case OR_CONN_STATE_PROXY_HANDSHAKING:
case OR_CONN_STATE_OPEN: case OR_CONN_STATE_OPEN:
case OR_CONN_STATE_OR_HANDSHAKING: case OR_CONN_STATE_OR_HANDSHAKING:
connection_stop_writing(TO_CONN(conn));
break; break;
default: default:
log_err(LD_BUG,"Called in unexpected state %d.", conn->_base.state); log_err(LD_BUG,"Called in unexpected state %d.", conn->_base.state);

View File

@ -2719,8 +2719,6 @@ int
connection_control_finished_flushing(control_connection_t *conn) connection_control_finished_flushing(control_connection_t *conn)
{ {
tor_assert(conn); tor_assert(conn);
connection_stop_writing(TO_CONN(conn));
return 0; return 0;
} }

View File

@ -62,7 +62,6 @@ connection_cpu_finished_flushing(connection_t *conn)
{ {
tor_assert(conn); tor_assert(conn);
tor_assert(conn->type == CONN_TYPE_CPUWORKER); tor_assert(conn->type == CONN_TYPE_CPUWORKER);
connection_stop_writing(conn);
return 0; return 0;
} }

View File

@ -3355,7 +3355,6 @@ connection_dir_finished_flushing(dir_connection_t *conn)
case DIR_CONN_STATE_CLIENT_SENDING: case DIR_CONN_STATE_CLIENT_SENDING:
log_debug(LD_DIR,"client finished sending command."); log_debug(LD_DIR,"client finished sending command.");
conn->_base.state = DIR_CONN_STATE_CLIENT_READING; conn->_base.state = DIR_CONN_STATE_CLIENT_READING;
connection_stop_writing(TO_CONN(conn));
return 0; return 0;
case DIR_CONN_STATE_SERVER_WRITING: case DIR_CONN_STATE_SERVER_WRITING:
log_debug(LD_DIRSERV,"Finished writing server response. Closing."); log_debug(LD_DIRSERV,"Finished writing server response. Closing.");

View File

@ -1312,10 +1312,14 @@ static INLINE control_connection_t *TO_CONTROL_CONN(connection_t *c)
stmt ; \ stmt ; \
} while (0) } while (0)
#define ELSE_IF_NO_BUFFEREVENT ; else #define ELSE_IF_NO_BUFFEREVENT ; else
#define IF_HAS_NO_BUFFEREVENT(c) \
if (NULL == (c)->bufev)
#else #else
#define HAS_BUFFEREVENT(c) (0) #define HAS_BUFFEREVENT(c) (0)
#define IF_HAS_BUFFEREVENT(c, stmt) (void)0 #define IF_HAS_BUFFEREVENT(c, stmt) (void)0
#define ELSE_IF_NO_BUFFEREVENT ; #define ELSE_IF_NO_BUFFEREVENT ;
#define IF_HAS_NO_BUFFEREVENT(c) \
if (1)
#endif #endif
/** What action type does an address policy indicate: accept or reject? */ /** What action type does an address policy indicate: accept or reject? */