#include <assert.h>
#include <errno.h>
+#include <limits.h>
#include <netdb.h>
#include <poll.h>
#include <unistd.h>
/* Connect to proxy server or directly to server. */
if (global_proxy_host != NULL && global_proxy_port != NULL) {
LOG(DEBUG, "connecting to %s:%s", global_proxy_host,
- global_proxy_port);
+ global_proxy_port);
server_socket = connect_to_host(global_proxy_host, global_proxy_port);
} else {
LOG(DEBUG, "connecting to %s:%s", host, port);
server_socket = connect_to_host(host, port);
}
- if (server_socket == -1) {
+ if (server_socket < 0) {
LOG(WARNING, "failed to connect to server");
send_forwarding_failure(client_fd_write);
goto out;
result = gnutls_handshake(server_session);
if (result != GNUTLS_E_SUCCESS) {
LOG(WARNING, "server TLS handshake failed: %s",
- gnutls_strerror(result));
+ gnutls_strerror(result));
send_forwarding_failure(client_fd_write);
goto out;
}
result = gnutls_handshake(client_session);
if (result != GNUTLS_E_SUCCESS) {
LOG(WARNING, "client TLS handshake failed: %s",
- gnutls_strerror(result));
+ gnutls_strerror(result));
send_forwarding_failure(client_fd_write);
goto out;
}
if (proxy_certificate_path(hostname, path, sizeof(path)) != 0) {
LOG(ERROR,
- "initialize_tls_session_client(): \
-failed to get proxy certificate path");
+ "initialize_tls_session_client(): "
+ "failed to get proxy certificate path");
return -1;
}
result = gnutls_certificate_allocate_credentials(x509_cred);
if (result != GNUTLS_E_SUCCESS) {
LOG(ERROR,
- "initialize_tls_session_client(): \
-gnutls_certificate_allocate_credentials(): %s",
+ "initialize_tls_session_client(): "
+ "gnutls_certificate_allocate_credentials(): %s",
gnutls_strerror(result));
return -1;
}
}
if (result != GNUTLS_E_SUCCESS) {
LOG(ERROR,
- "initialize_tls_session_client(): \
-can't read server certificate ('%s') or key file ('%s'): %s",
+ "initialize_tls_session_client(): "
+ "can't read server certificate ('%s') or key file ('%s'): %s",
path, PROXY_KEY_FILE, gnutls_strerror(result));
gnutls_certificate_free_credentials(*x509_cred);
/* Could be a missing certificate. */
result = gnutls_certificate_allocate_credentials(x509_cred);
if (result != GNUTLS_E_SUCCESS) {
LOG(ERROR,
- "initialize_tls_session_server(): \
-gnutls_certificate_allocate_credentials(): %s",
+ "initialize_tls_session_server(): "
+ "gnutls_certificate_allocate_credentials(): %s",
gnutls_strerror(result));
return -1;
}
char buffer[MAX_REQUEST_LINE];
int found_proxy_authorization;
+ assert(length <= INT_MAX);
if (fgets(request, (int)length, client_fd) == NULL) {
if (ferror(client_fd)) {
LOG_PERROR(WARNING, "read_http_request(): fgets()");
}
if (size_read != size_written) {
LOG(ERROR, "read_from_write_to(): only written %ld of %ld bytes!",
- (long int)size_written, (long int)size_read);
+ (long int)size_written, (long int)size_read);
return -1;
}
buffer_size = gnutls_record_get_max_size(server_session);
}
LOG(DEBUG, "transfer_data_tls(): suggested buffer size: %ld",
- (long int)buffer_size);
+ (long int)buffer_size);
for (;;) {
int result = poll(fds, 2 /* fd count */, -1 /* no timeout */);
buffer_size = sizeof(buffer);
}
LOG(DEBUG, "read_from_write_to_tls(): used buffer size: %ld",
- (long int)buffer_size);
+ (long int)buffer_size);
size_read = gnutls_record_recv(from, buffer, buffer_size);
if (size_read < 0) {
LOG(WARNING, "read_from_write_to_tls(): gnutls_record_recv(): %s",
- gnutls_strerror((int)size_read));
+ gnutls_strerror((int)size_read));
return -1;
/* EOF */
} else if (size_read == 0) {
size_written = gnutls_record_send(to, buffer, (size_t)size_read);
if (size_written < 0) {
LOG(WARNING, "read_from_write_to_tls(): gnutls_record_send(): %s",
- gnutls_strerror((int)size_written));
+ gnutls_strerror((int)size_written));
return -1;
}
if (size_read != size_written) {
LOG(ERROR, "read_from_write_to_tls(): only written %ld of %ld bytes!",
- (long int)size_written, (long int)size_read);
+ (long int)size_written, (long int)size_read);
return -1;
}
LOG_PERROR(WARNING, "connect_to_host(): getaddrinfo()");
} else {
LOG(WARNING, "connect_to_host(): getaddrinfo(): %s",
- gai_strerror(gai_return));
+ gai_strerror(gai_return));
}
return -1;
}
server_socket = socket(server->ai_family,
server->ai_socktype,
server->ai_protocol);
- if (server_socket == -1) {
+ if (server_socket < 0) {
LOG_PERROR(DEBUG, "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;
}
LOG_PERROR(DEBUG, "connect_to_host(): connect(), trying next");