|
@@ -925,7 +925,7 @@ static void
|
|
|
connection_consider_empty_buckets(connection_t *conn)
|
|
|
{
|
|
|
if (global_read_bucket <= 0) {
|
|
|
- log_fn(LOG_DEBUG,"global bucket exhausted. Pausing.");
|
|
|
+ LOG_FN_CONN(conn, (LOG_DEBUG,"global bucket exhausted. Pausing."));
|
|
|
conn->wants_to_read = 1;
|
|
|
connection_stop_reading(conn);
|
|
|
return;
|
|
@@ -933,7 +933,7 @@ connection_consider_empty_buckets(connection_t *conn)
|
|
|
if (connection_speaks_cells(conn) &&
|
|
|
conn->state == OR_CONN_STATE_OPEN &&
|
|
|
conn->receiver_bucket <= 0) {
|
|
|
- log_fn(LOG_DEBUG,"receiver bucket exhausted. Pausing.");
|
|
|
+ LOG_FN_CONN(conn, (LOG_DEBUG,"receiver bucket exhausted. Pausing."));
|
|
|
conn->wants_to_read = 1;
|
|
|
connection_stop_reading(conn);
|
|
|
}
|
|
@@ -986,7 +986,7 @@ connection_bucket_refill(struct timeval *now)
|
|
|
conn->state != OR_CONN_STATE_OPEN ||
|
|
|
conn->receiver_bucket > 0)) {
|
|
|
/* and either a non-cell conn or a cell conn with non-empty bucket */
|
|
|
- log_fn(LOG_DEBUG,"waking up conn (fd %d)",conn->s);
|
|
|
+ LOG_FN_CONN(conn, (LOG_DEBUG,"waking up conn (fd %d)",conn->s));
|
|
|
conn->wants_to_read = 0;
|
|
|
connection_start_reading(conn);
|
|
|
if (conn->wants_to_write == 1) {
|
|
@@ -1165,8 +1165,9 @@ connection_read_to_buf(connection_t *conn, int *max_to_read)
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
- result = read_to_buf(conn->s, at_most, conn->inbuf,
|
|
|
- &conn->inbuf_reached_eof);
|
|
|
+ CONN_LOG_PROTECT(conn,
|
|
|
+ result = read_to_buf(conn->s, at_most, conn->inbuf,
|
|
|
+ &conn->inbuf_reached_eof));
|
|
|
|
|
|
// log_fn(LOG_DEBUG,"read_to_buf returned %d.",read_result);
|
|
|
|
|
@@ -1328,7 +1329,8 @@ connection_handle_write(connection_t *conn)
|
|
|
*/
|
|
|
}
|
|
|
} else {
|
|
|
- result = flush_buf(conn->s, conn->outbuf, &conn->outbuf_flushlen);
|
|
|
+ CONN_LOG_PROTECT(conn,
|
|
|
+ result = flush_buf(conn->s, conn->outbuf, &conn->outbuf_flushlen));
|
|
|
if (result < 0) {
|
|
|
if (CONN_IS_EDGE(conn))
|
|
|
connection_edge_end_errno(conn, conn->cpath_layer);
|
|
@@ -1369,7 +1371,8 @@ _connection_controller_force_write(connection_t *conn)
|
|
|
if (conn->marked_for_close || conn->s < 0)
|
|
|
return;
|
|
|
|
|
|
- result = flush_buf(conn->s, conn->outbuf, &conn->outbuf_flushlen);
|
|
|
+ CONN_LOG_PROTECT(conn,
|
|
|
+ result = flush_buf(conn->s, conn->outbuf, &conn->outbuf_flushlen));
|
|
|
if (result < 0) {
|
|
|
connection_close_immediate(conn); /* Don't flush; connection is dead. */
|
|
|
connection_mark_for_close(conn);
|
|
@@ -1395,13 +1398,15 @@ _connection_controller_force_write(connection_t *conn)
|
|
|
void
|
|
|
connection_write_to_buf(const char *string, size_t len, connection_t *conn)
|
|
|
{
|
|
|
+ int r;
|
|
|
if (!len)
|
|
|
return;
|
|
|
/* if it's marked for close, only allow write if we mean to flush it */
|
|
|
if (conn->marked_for_close && !conn->hold_open_until_flushed)
|
|
|
return;
|
|
|
|
|
|
- if (write_to_buf(string, len, conn->outbuf) < 0) {
|
|
|
+ CONN_LOG_PROTECT(conn, r = write_to_buf(string, len, conn->outbuf));
|
|
|
+ if (r < 0) {
|
|
|
if (CONN_IS_EDGE(conn)) {
|
|
|
/* if it failed, it means we have our package/delivery windows set
|
|
|
wrong compared to our max outbuf size. close the whole circuit. */
|