mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Add warning message when a managed proxy dies during configuration.
This commit is contained in:
committed by
Nick Mathewson
parent
39a0a2c3ae
commit
a9f786758d
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user