]> ruderich.org/simon Gitweb - tlsproxy/tlsproxy.git/blobdiff - src/connection.c
Fix error handling for getaddrinfo().
[tlsproxy/tlsproxy.git] / src / connection.c
index 316339eb8cbbb6ce522b59bc570571bfe405438b..f608339f8014ba0427f515c36a14f1d29a51e894 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
@@ -311,17 +307,17 @@ void handle_connection(int client_socket) {
 out:
     /* Close TLS sessions if necessary. Use GNUTLS_SHUT_RDWR so the data is
      * reliable transmitted. */
-    if (server_session_started != 0) {
+    if (server_session_started) {
         gnutls_bye(server_session, GNUTLS_SHUT_RDWR);
     }
-    if (client_session_started != 0) {
+    if (client_session_started) {
         gnutls_bye(client_session, GNUTLS_SHUT_RDWR);
     }
-    if (server_session_init != 0) {
+    if (server_session_init) {
         gnutls_deinit(server_session);
         gnutls_certificate_free_credentials(server_x509_cred);
     }
-    if (client_session_init != 0) {
+    if (client_session_init) {
         gnutls_deinit(client_session);
         gnutls_certificate_free_cas(client_x509_cred);
         gnutls_certificate_free_keys(client_x509_cred);
@@ -774,7 +770,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;
     }