mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 13:53:31 +01:00
Fix misreporting of stream bandwidths.
This commit is contained in:
parent
45171cd9e9
commit
29bf271ba2
@ -12,6 +12,7 @@ Changes in version 0.2.1.15??? - ????-??-??
|
||||
directory authority. Fixes part of bug 932.
|
||||
- When we change to or from being a bridge, reset our counts of
|
||||
client usage by country. Fixes bug 932.
|
||||
- Fix a bug that made stream bandwidth get misreported to the controller.
|
||||
|
||||
|
||||
Changes in version 0.2.1.14-rc - 2009-04-12
|
||||
|
@ -618,6 +618,7 @@ connection_about_to_close_connection(connection_t *conn)
|
||||
conn->marked_for_close_file, conn->marked_for_close);
|
||||
dnsserv_reject_request(edge_conn);
|
||||
}
|
||||
control_event_stream_bandwidth(edge_conn);
|
||||
control_event_stream_status(edge_conn, STREAM_EVENT_CLOSED,
|
||||
edge_conn->end_reason);
|
||||
circ = circuit_get_by_edge_conn(edge_conn);
|
||||
|
@ -160,6 +160,7 @@ connection_edge_destroy(circid_t circ_id, edge_connection_t *conn)
|
||||
"CircID %d: At an edge. Marking connection for close.", circ_id);
|
||||
if (conn->_base.type == CONN_TYPE_AP) {
|
||||
connection_mark_unattached_ap(conn, END_STREAM_REASON_DESTROY);
|
||||
control_event_stream_bandwidth(conn);
|
||||
control_event_stream_status(conn, STREAM_EVENT_CLOSED,
|
||||
END_STREAM_REASON_DESTROY);
|
||||
conn->end_reason |= END_STREAM_REASON_FLAG_ALREADY_SENT_CLOSED;
|
||||
|
@ -3275,6 +3275,28 @@ control_event_or_conn_status(or_connection_t *conn, or_conn_status_event_t tp,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Print out STREAM_BW event for a single conn
|
||||
*/
|
||||
int
|
||||
control_event_stream_bandwidth(edge_connection_t *edge_conn)
|
||||
{
|
||||
if (EVENT_IS_INTERESTING(EVENT_STREAM_BANDWIDTH_USED)) {
|
||||
if (!edge_conn->n_read && !edge_conn->n_written)
|
||||
return 0;
|
||||
|
||||
send_control_event(EVENT_STREAM_BANDWIDTH_USED, ALL_NAMES,
|
||||
"650 STREAM_BW "U64_FORMAT" %lu %lu\r\n",
|
||||
U64_PRINTF_ARG(edge_conn->_base.global_identifier),
|
||||
(unsigned long)edge_conn->n_read,
|
||||
(unsigned long)edge_conn->n_written);
|
||||
|
||||
edge_conn->n_written = edge_conn->n_read = 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/** A second or more has elapsed: tell any interested control
|
||||
* connections how much bandwidth streams have used. */
|
||||
int
|
||||
|
@ -3225,6 +3225,7 @@ int control_event_stream_status(edge_connection_t *conn,
|
||||
int control_event_or_conn_status(or_connection_t *conn,
|
||||
or_conn_status_event_t e, int reason);
|
||||
int control_event_bandwidth_used(uint32_t n_read, uint32_t n_written);
|
||||
int control_event_stream_bandwidth(edge_connection_t *edge_conn);
|
||||
int control_event_stream_bandwidth_used(void);
|
||||
void control_event_logmsg(int severity, unsigned int domain, const char *msg);
|
||||
int control_event_descriptors_changed(smartlist_t *routers);
|
||||
|
Loading…
Reference in New Issue
Block a user