diff options
Diffstat (limited to 'src/or/control.c')
-rw-r--r-- | src/or/control.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/or/control.c b/src/or/control.c index 9470e49e0d..76724be0d7 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -86,7 +86,8 @@ const char control_c_id[] = #define EVENT_STATUS_CLIENT 0x0010 #define EVENT_STATUS_SERVER 0x0011 #define EVENT_STATUS_GENERAL 0x0012 -#define _EVENT_MAX 0x0012 +#define EVENT_TESTSTREAM 0x0013 +#define _EVENT_MAX 0x0013 /* If _EVENT_MAX ever hits 0x0020, we need to make the mask wider. */ /** Array mapping from message type codes to human-readable message @@ -1063,6 +1064,8 @@ handle_control_setevents(control_connection_t *conn, uint32_t len, event_code = EVENT_STATUS_CLIENT; else if (!strcasecmp(ev, "STATUS_SERVER")) event_code = EVENT_STATUS_SERVER; + else if (!strcasecmp(ev, "TESTSTREAM")) + event_code = EVENT_TESTSTREAM; else { connection_printf_to_buf(conn, "552 Unrecognized event \"%s\"\r\n", ev); @@ -3544,6 +3547,17 @@ control_event_server_status(int severity, const char *format, ...) return r; } +/** Called when a request is made for a hostname ending in .test + */ +int +control_event_teststream(edge_connection_t *conn) +{ + send_control1_event(EVENT_TESTSTREAM, ALL_NAMES|ALL_FORMATS, + "650 TESTSTREAM %s\r\n", + conn->socks_request->address); + return 0; +} + /** Choose a random authentication cookie and write it to disk. * Anybody who can read the cookie from disk will be considered * authorized to use the control connection. */ |