actually receive multiple different kinds of events
Nick Mathewson
nickm at freehaven.net
Fri Mar 25 05:50:51 UTC 2005
On Thu, Mar 24, 2005 at 09:03:22PM -0500, Geoffrey Goodell wrote:
> see attached
This patch is incorrect. It will break in two ways:
> --- control.c.orig 2005-03-24 20:58:17.000000000 -0500
> +++ control.c 2005-03-24 20:59:16.000000000 -0500
> @@ -174,7 +174,6 @@
> connection_t **conns;
> int n_conns, i;
>
> - global_event_mask = 0;
> get_connection_array(&conns, &n_conns);
> for (i = 0; i < n_conns; ++i) {
> if (conns[i]->type == CONN_TYPE_CONTROL &&
This will make global_event_mask contain every event that every
controller was ever interested in: no good!
> @@ -267,7 +266,7 @@
> 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)) {
> + global_event_mask & (1<<event)) {
This will make every controller receive every event that any
controller is interested in.
I think you might be confused about the semantics of SETEVENTS: it
takes a list of all the events that the controller is currently
interested in: events not listed are cleared. I've updated
control-spec.txt to reflect this.
yrs,
--
Nick Mathewson
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 652 bytes
Desc: not available
URL: <http://lists.torproject.org/pipermail/tor-dev/attachments/20050325/913200cb/attachment.pgp>
More information about the tor-dev
mailing list