Add warning message when a managed proxy dies during configuration.

This commit is contained in:
George Kadianakis
2012-10-23 02:51:31 +03:00
committed by Nick Mathewson
parent 39a0a2c3ae
commit a9f786758d
4 changed files with 33 additions and 1 deletions
+4
View File
@@ -0,0 +1,4 @@
o Minor bugfixes:
- Add warning message when a managed proxy dies during
configuration. Fixes bug 7195; bugfix on 0.2.4.2-alpha.
+19
View File
@@ -4461,6 +4461,25 @@ tor_split_lines(smartlist_t *sl, char *buf, int len)
return smartlist_len(sl);
}
/** Return a string corresponding to <b>stream_status</b>. */
const char *
stream_status_to_string(enum stream_status stream_status)
{
switch (stream_status) {
case IO_STREAM_OKAY:
return "okay";
case IO_STREAM_EAGAIN:
return "temporarily unavailable";
case IO_STREAM_TERM:
return "terminated";
case IO_STREAM_CLOSED:
return "closed";
default:
tor_fragile_assert();
return "unknown";
}
}
#ifdef _WIN32
/** Return a smartlist containing lines outputted from
+2
View File
@@ -307,6 +307,8 @@ enum stream_status {
IO_STREAM_CLOSED
};
const char *stream_status_to_string(enum stream_status stream_status);
enum stream_status get_string_from_pipe(FILE *stream, char *buf, size_t count);
/** Return values from file_status(); see that function's documentation
+8 -1
View File
@@ -614,8 +614,15 @@ configure_proxy(managed_proxy_t *mp)
tor_get_lines_from_handle(tor_process_get_stdout_pipe(mp->process_handle),
&stream_status);
if (!proxy_output) { /* failed to get input from proxy */
if (stream_status != IO_STREAM_EAGAIN)
if (stream_status != IO_STREAM_EAGAIN) { /* bad stream status! */
mp->conf_state = PT_PROTO_BROKEN;
log_warn(LD_GENERAL, "The communication stream of managed proxy '%s' "
"is '%s'. Most probably the managed proxy stopped running. "
"This might be a bug of the managed proxy, a bug of Tor, or "
"a misconfiguration. Please enable logging on your managed "
"proxy and check the logs for errors.",
mp->argv[0], stream_status_to_string(stream_status));
}
goto done;
}