Browse Source

Give more useful log messages when the tor process closes dns/cpuworker connections. "Error: Success!" makes us seem like crazy people."

svn:r3373
Nick Mathewson 21 years ago
parent
commit
e0bf597665
2 changed files with 16 additions and 5 deletions
  1. 8 2
      src/or/cpuworker.c
  2. 8 3
      src/or/dns.c

+ 8 - 2
src/or/cpuworker.c

@@ -220,10 +220,16 @@ static int cpuworker_main(void *data) {
   dup_onion_keys(&onion_key, &last_onion_key);
 
   for (;;) {
+    int r;
 
-    if (recv(fd, &question_type, 1, 0) != 1) {
+    if ((r = recv(fd, &question_type, 1, 0)) != 1) {
 //      log_fn(LOG_ERR,"read type failed. Exiting.");
-      log_fn(LOG_INFO,"cpuworker exiting because tor process closed connection (either rotated keys or died).");
+      if (r == 0) {
+        log_fn(LOG_INFO,"CPU worker exiting because Tor process closed connection (either rotated keys or died).");
+      } else {
+        log_fn(LOG_INFO,"CPU worker editing because of error on connection To Tor process.");
+        log_fn(LOG_INFO,"(Error on %d was %s)", fd, tor_socket_strerror(tor_socket_errno(fd)));
+      }
       goto end;
     }
     tor_assert(question_type == CPUWORKER_TASK_ONION);

+ 8 - 3
src/or/dns.c

@@ -673,10 +673,15 @@ static int dnsworker_main(void *data) {
   tor_free(data);
 
   for (;;) {
+    int r;
 
-    if (recv(fd, &address_len, 1, 0) != 1) {
-      log_fn(LOG_INFO,"dnsworker exiting because tor process closed connection (either pruned idle dnsworker or died).");
-      log_fn(LOG_INFO,"Error on %d was %s", fd, tor_socket_strerror(tor_socket_errno(fd)));
+    if ((r = recv(fd, &address_len, 1, 0)) != 1) {
+      if (r == 0) {
+        log_fn(LOG_INFO,"DNS worker exiting because Tor process closed connection (either pruned idle dnsworker or died).");
+      } else {
+        log_fn(LOG_INFO,"DNS worker exiting because of error on connection to Tor process.");
+        log_fn(LOG_INFO,"(Error on %d was %s)", fd, tor_socket_strerror(tor_socket_errno(fd)));
+      }
       spawn_exit();
     }