]> ruderich.org/simon Gitweb - tlsproxy/tlsproxy.git/blobdiff - src/connection.c
Minor code cleanup.
[tlsproxy/tlsproxy.git] / src / connection.c
index 3f361a03effdd8cbd54a5bbe17d068b98f714ac2..365eaab2e6de30c361f92d07c5130eaf9c4ff3cc 100644 (file)
 #include "connection.h"
 #include "verify.h"
 
-/* close() */
-#include <unistd.h>
-/* getaddrinfo() */
+#include <errno.h>
 #include <netdb.h>
-/* poll() */
 #include <poll.h>
-/* errno */
-#include <errno.h>
+#include <unistd.h>
 
 
 /* Maximum length of a HTTP request line. Longer request lines are aborted
@@ -89,7 +85,7 @@ void handle_connection(int client_socket) {
     char host[MAX_REQUEST_LINE];
     char port[5 + 1];
 
-    int version_minor; /* HTTP/1.x */
+    int version_minor; /* x in HTTP/1.x */
     int result;
 
     /* client_x509_cred is used when talking to the client (acting as a TSL
@@ -126,11 +122,9 @@ void handle_connection(int client_socket) {
     /* Read request line (CONNECT ..) and headers (they are discarded). */
     result = read_http_request(client_fd, buffer, sizeof(buffer));
     if (result == -1) {
-        /* Read error. */
         LOG(LOG_WARNING, "read_http_request(): client read error");
         goto out;
     } else if (result == -2) {
-        /* EOF */
         LOG(LOG_WARNING, "read_http_request(): client EOF");
         send_bad_request(client_fd);
         goto out;
@@ -174,12 +168,10 @@ void handle_connection(int client_socket) {
         /* Read response line from proxy server. */
         result = read_http_request(server_fd, buffer, sizeof(buffer));
         if (result == -1) {
-            /* Read error. */
             LOG(LOG_WARNING, "read_http_request(): proxy read error");
             send_forwarding_failure(client_fd);
             goto out;
         } else if (result == -2) {
-            /* EOF */
             LOG(LOG_WARNING, "read_http_request(): proxy EOF");
             send_forwarding_failure(client_fd);
             goto out;
@@ -251,7 +243,7 @@ void handle_connection(int client_socket) {
     /* Make sure the server certificate is valid and known. */
     if (verify_tls_connection(server_session, host) != 0) {
         LOG(LOG_ERROR, "server certificate validation failed!");
-        /* We send the error message over our TLS connection to the client,
+        /* We'll send the error message over our TLS connection to the client,
          * but with an invalid certificate. No data is transfered from/to the
          * target server. */
         validation_failed = 1;
@@ -508,7 +500,7 @@ static int read_http_request(FILE *client_fd, char *request, size_t length) {
             LOG_PERROR(LOG_WARNING, "read_http_request(): fgets()");
             return -1;
         }
-
+        /* EOF */
         return -2;
     }
 
@@ -588,7 +580,7 @@ static void transfer_data(int client, int server) {
     fds[1].revents = 0;
 
     for (;;) {
-        int result = poll(fds, 2, -1 /* no timeout */);
+        int result = poll(fds, 2 /* fd count */, -1 /* no timeout */);
         if (result < 0) {
             LOG_PERROR(LOG_ERROR, "transfer_data(): poll()");
             return;
@@ -633,9 +625,8 @@ static int read_from_write_to(int from, int to) {
     if (size_read < 0) {
         LOG_PERROR(LOG_WARNING, "read_from_write_to(): read()");
         return -1;
-    }
     /* EOF */
-    if (size_read == 0) {
+    } else if (size_read == 0) {
         return -1;
     }
 
@@ -677,7 +668,7 @@ static void transfer_data_tls(int client, int server,
                    (long int)buffer_size);
 
     for (;;) {
-        int result = poll(fds, 2, -1 /* no timeout */);
+        int result = poll(fds, 2 /* fd count */, -1 /* no timeout */);
         if (result < 0) {
             LOG_PERROR(LOG_ERROR, "transfer_data(): poll()");
             return;
@@ -730,9 +721,8 @@ static int read_from_write_to_tls(gnutls_session_t from,
         LOG(LOG_WARNING, "read_from_write_to_tls(): gnutls_record_recv(): %s",
                          gnutls_strerror((int)size_read));
         return -1;
-    }
     /* EOF */
-    if (size_read == 0) {
+    } else if (size_read == 0) {
         return -1;
     }
 
@@ -774,7 +764,12 @@ static int connect_to_host(const char *hostname, const char *port) {
                           | AI_V4MAPPED;   /* support IPv4 through IPv6 */
     gai_return = getaddrinfo(hostname, port, &gai_hints, &gai_result);
     if (gai_return != 0) {
-        LOG_PERROR(LOG_WARNING, "connect_to_host(): getaddrinfo()");
+        if (gai_return == EAI_SYSTEM) {
+            LOG_PERROR(LOG_WARNING, "connect_to_host(): getaddrinfo()");
+        } else {
+            LOG(LOG_WARNING, "connect_to_host(): getaddrinfo(): %s",
+                             gai_strerror(gai_return));
+        }
         return -1;
     }