[PATCH] Fix send_control_event()
Andre Eisenbach
andre at eisenbach.com
Thu Nov 11 00:38:04 UTC 2004
Hi!
According to the new control spec document, the "EVENT" message sent to a
UI client contains the 2-byte event code followed by event-dependent
information.
However, according to the source code, that is not the case :D.
Attached (hopefully) is a patch against TOR 0.0.9pre5 which fixes this.
Briefly tested with my PHP test client.
This is my first patch submission for TOR, so please let me know if this
is ok.
Cheers,
Andre Eisenbach <andre at eisenbach.com>
-------------- next part --------------
--- control.c.orig 2004-11-10 18:07:24.000000000 -0600
+++ control.c 2004-11-10 18:25:13.000000000 -0600
@@ -184,15 +184,24 @@ send_control_event(uint16_t event, uint1
{
connection_t **conns;
int n_conns, i;
+ size_t buflen;
+ char *buf;
+
+ buflen = len + 2;
+ buf = tor_malloc_zero(buflen);
+ set_uint16(buf, htons(event));
+ memcpy(buf+2, body, len);
get_connection_array(&conns, &n_conns);
for (i = 0; i < n_conns; ++i) {
if (conns[i]->type == CONN_TYPE_CONTROL &&
conns[i]->state == CONTROL_CONN_STATE_OPEN &&
conns[i]->event_mask & (1<<event)) {
- send_control_message(conns[i], CONTROL_CMD_EVENT, len, body);
+ send_control_message(conns[i], CONTROL_CMD_EVENT, (uint16_t)(buflen), buf);
}
}
+
+ tor_free(buf);
}
/** Called when we receive a SETCONF message: parse the body and try
More information about the tor-dev
mailing list