From: Nick Mathewson Date: Tue, 11 Nov 2008 15:59:24 +0000 (+0000) Subject: Add PURPOSE= field to getinfo circuit-status. With luck, controllers are ignoring... X-Git-Tag: tor-0.2.1.8-alpha~80 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e08cbe2029e366bfbd7cf9a3bf9d0ec0088ab1cf;p=thirdparty%2Ftor.git Add PURPOSE= field to getinfo circuit-status. With luck, controllers are ignoring extra fields (like they are supposed to) and this will not break any controllers. svn:r17245 --- diff --git a/ChangeLog b/ChangeLog index 116ad1c7c1..9556c678c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,9 @@ Changes in version 0.2.1.8-alpha - 2008-??-?? - Get file locking working on win32. Bugfix on 0.2.1.6-alpha. Fixes bug 859. + o Minor features (controller): + - Return circuit purposes in response to GETINFO circuit-status. Fixes + bug 858. Changes in version 0.2.1.7-alpha - 2008-11-08 o Security fixes: diff --git a/src/or/control.c b/src/or/control.c index 31468831a0..6ec244612a 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -1631,6 +1631,7 @@ getinfo_helper_events(control_connection_t *control_conn, char *s, *path; size_t slen; const char *state; + const char *purpose; if (! CIRCUIT_IS_ORIGIN(circ) || circ->marked_for_close) continue; if (control_conn->use_long_names) @@ -1644,11 +1645,12 @@ getinfo_helper_events(control_connection_t *control_conn, else state = "LAUNCHED"; - slen = strlen(path)+strlen(state)+20; + purpose = circuit_purpose_to_controller_string(circ->purpose); + slen = strlen(path)+strlen(state)+strlen(purpose)+30; s = tor_malloc(slen+1); - tor_snprintf(s, slen, "%lu %s%s%s", + tor_snprintf(s, slen, "%lu %s%s%s PURPOSE=%s", (unsigned long)TO_ORIGIN_CIRCUIT(circ)->global_identifier, - state, *path ? " " : "", path); + state, *path ? " " : "", path, purpose); smartlist_add(status, s); tor_free(path); }