]> ruderich.org/simon Gitweb - tlsproxy/tlsproxy.git/blobdiff - tests/client.c
Update copyright year.
[tlsproxy/tlsproxy.git] / tests / client.c
index 23dca4b3c580dbac340c42be38f4b0d18118b19d..7ed4f05a1519de553a18ef46d381ec5c763d9951 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Simple GnuTLS client used for testing.
  *
- * Copyright (C) 2011-2013  Simon Ruderich
+ * Copyright (C) 2011-2014  Simon Ruderich
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,7 +20,9 @@
 #include <config.h>
 
 #include <arpa/inet.h>
+#include <assert.h>
 #include <errno.h>
+#include <limits.h>
 #include <netdb.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -98,7 +100,7 @@ int main (int argc, char *argv[]) {
     }
     fprintf(fd_write, "\r\n");
     fflush(fd_write);
-    if (read_http_request(fd_read, buffer, sizeof(buffer)) == -1) {
+    if (read_http_request(fd_read, buffer, sizeof(buffer)) != 0) {
         fprintf(stderr, "invalid proxy response\n");
         return EXIT_FAILURE;
     }
@@ -224,7 +226,9 @@ static int connect_to_host(const char *hostname, const char *port) {
     gai_hints.ai_socktype = SOCK_STREAM;
     gai_hints.ai_protocol = 0;
     gai_hints.ai_flags    = AI_NUMERICSERV /* given port is numeric */
+#ifdef AI_ADDRCONFIG
                           | AI_ADDRCONFIG  /* supported by this computer */
+#endif
                           ;
     gai_return = getaddrinfo(hostname, port, &gai_hints, &gai_result);
     if (gai_return != 0) {
@@ -269,6 +273,7 @@ static int connect_to_host(const char *hostname, const char *port) {
 static int read_http_request(FILE *client_fd, char *request, size_t length) {
     char buffer[MAX_REQUEST_LINE];
 
+    assert(length <= INT_MAX);
     if (fgets(request, (int)length, client_fd) == NULL) {
         if (ferror(client_fd)) {
             perror("read_http_request(): fgets()");
@@ -287,6 +292,8 @@ static int read_http_request(FILE *client_fd, char *request, size_t length) {
     if (ferror(client_fd)) {
         perror("read_http_request(): fgets()");
         return -1;
+    } else if (feof(client_fd)) {
+        return -2;
     }
 
     return 0;