X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=tests%2Fclient.c;h=2b7fb07465c41c05bc12992e5a5a751d08cb0949;hb=19b4321866194060cfc28419d52531a924f1b986;hp=f98711fa02ffbf09afbafad2ed6a9577b152984c;hpb=058678e898268c214fa135a3f6fb7b049f912fc2;p=tlsproxy%2Ftlsproxy.git diff --git a/tests/client.c b/tests/client.c index f98711f..2b7fb07 100644 --- a/tests/client.c +++ b/tests/client.c @@ -53,9 +53,10 @@ int main (int argc, char *argv[]) { const gnutls_datum_t *cert_list; unsigned int cert_list_size; - if (argc != 5) { + if (argc != 5 && argc != 6) { fprintf(stderr, - "Usage: %s \n", + "Usage: %s " + "[]\n", argv[0]); return EXIT_FAILURE; } @@ -82,6 +83,9 @@ int main (int argc, char *argv[]) { /* Talk to tlsproxy. */ fprintf(fd, "CONNECT %s:%s HTTP/1.0\r\n", argv[2], argv[3]); + if (argc == 6) { + fprintf(fd, "Proxy-Authorization: Basic %s\r\n", argv[5]); + } fprintf(fd, "\r\n"); fflush(fd); if (read_http_request(fd, buffer, sizeof(buffer)) == -1) { @@ -185,7 +189,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) { - perror("connect_to_host(): getaddrinfo()"); + if (gai_return == EAI_SYSTEM) { + perror("connect_to_host(): getaddrinfo()"); + } else { + fprintf(stderr, "connect_to_host(): getaddrinfo(): %s", + gai_strerror(gai_return)); + } return -1; } @@ -195,12 +204,12 @@ static int connect_to_host(const char *hostname, const char *port) { server_socket = socket(server->ai_family, server->ai_socktype, server->ai_protocol); - if (server_socket == -1) { + if (server_socket < 0) { perror("connect_to_host(): socket(), trying next"); continue; } - if (connect(server_socket, server->ai_addr, server->ai_addrlen) != -1) { + if (connect(server_socket, server->ai_addr, server->ai_addrlen) == 0) { break; } perror("connect_to_host(): connect(), trying next"); @@ -226,11 +235,11 @@ static int read_http_request(FILE *client_fd, char *request, size_t length) { perror("read_http_request(): fgets()"); return -1; } - + /* EOF */ return -2; } - while (fgets(buffer, MAX_REQUEST_LINE, client_fd) != NULL) { + while (fgets(buffer, sizeof(buffer), client_fd) != NULL) { /* End of header. */ if (!strcmp(buffer, "\n") || !strcmp(buffer, "\r\n")) { break;