diff --git a/ChangeLog b/ChangeLog index 090696e8b7..13de42e8f2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -28,6 +28,8 @@ Changes in version 0.1.2.3-alpha - 2006-10-?? like those for circuit events. - NS events to inform a controller when our opinion of a router's status has changed. + - Add a GETINFO events/names and GETINFO features/names so controllers + can tell which events and features are supported. o Security bugfixes: - When the user sends a NEWNYM signal, clear the client-side DNS diff --git a/doc/control-spec.txt b/doc/control-spec.txt index 04bfb42593..2231027699 100644 --- a/doc/control-spec.txt +++ b/doc/control-spec.txt @@ -194,8 +194,7 @@ $Id$ EventCode = "CIRC" / "STREAM" / "ORCONN" / "BW" / "DEBUG" / "INFO" / "NOTICE" / "WARN" / "ERR" / "NEWDESC" / "ADDRMAP" / "AUTHDIR_NEWDESCS" / "DESCCHANGED" / "STATUS_GENERAL" / - "STATUS_CLIENT" / "STATUS_SERVER" / "GUARDS" / "NS" / - "NS_FULL" + "STATUS_CLIENT" / "STATUS_SERVER" / "GUARDS" / "NS" Any events *not* listed in the SETEVENTS line are turned off; thus, sending SETEVENTS with an empty body turns off all event reporting. @@ -447,6 +446,14 @@ $Id$ OptionPrefix SP Documentation CRLF OptionPrefix = OptionName "/*" + "events/names" + A space-separated list of all the events supported by this version of + Tor's SETEVENTS. + + "features/names" + A space-separated list of all the events supported by this version of + Tor's USEFEATURE. + "dir/status/authority" "dir/status/fp/" "dir/status/fp/++" diff --git a/src/or/control.c b/src/or/control.c index 8d099ffc87..2317dff3c0 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -1482,6 +1482,12 @@ handle_getinfo_helper(control_connection_t *control_conn, return config_getinfo_helper(question, answer); } else if (!strcmp(question, "info/names")) { *answer = list_getinfo_options(); + } else if (!strcmp(question, "events/names")) { + *answer = tor_strdup("CIRC STREAM ORCONN BW DEBUG INFO NOTICE WARN ERR " + "NEWDESC ADDRMAP AUTHDIR_NEWDESCS DESCCHANGED " + "NS STATUS_GENERAL STATUS_CLIENT STATUS_SERVER"); + } else if (!strcmp(question, "features/names")) { + *answer = tor_strdup("VERBOSE_NAMES EXTENDED_EVENTS"); } else if (!strcmpstart(question, "desc/id/")) { routerinfo_t *ri = router_get_by_hexdigest(question+strlen("desc/id/")); if (ri) { @@ -2420,7 +2426,8 @@ handle_control_usefeature(control_connection_t *conn, /* remove this in 0.1.2.4; EXTENDED_FORMAT only ever worked for a * little while during 0.1.2.2-alpha-dev. */ log_warn(LD_GENERAL, - "EXTENDED_FORMAT is deprecated; use EXTENDED_EVENTS instead."); + "EXTENDED_FORMAT is deprecated; use EXTENDED_EVENTS " + "instead."); extended_events = 1; } else { connection_printf_to_buf(conn, "552 Unrecognized feature \"%s\"\r\n",