Add log_ssl() and some cleanups

This commit is contained in:
2016-08-09 00:31:49 +03:00
parent 94e0e140b4
commit 5f67602e8e
4 changed files with 22 additions and 26 deletions

View File

@@ -50,14 +50,13 @@ static void* servlet(void *args) /* Serve the connection -- threadable */
ret = SSL_accept(agent->ssl);
/* We check for unclean (ret < 0) and clean (ret == 0) failures */
if (ret <= 0) {
char ret_str[1024];
ERR_error_string_n(SSL_get_error(agent->ssl, ret), ret_str, sizeof(ret_str));
log_trace(WARNING, "SSL_accept() failed. Reason below:\n%s", ret_str);
log_trace(WARNING, "SSL_accept() failed. Reason below:");
log_ssl();
} else {
show_certs(agent->ssl);
do {
buf.meta.type = GET_MEMORY;
sleep(1);
//sleep(1);
SSL_write(agent->ssl, &buf, sizeof(buf));
bytes = SSL_read(agent->ssl, &buf, sizeof(buf));
if (bytes > 0) {
@@ -76,15 +75,11 @@ static void* servlet(void *args) /* Serve the connection -- threadable */
if (SSL_get_shutdown(agent->ssl) == SSL_RECEIVED_SHUTDOWN)
log_trace(VERBOSE, "SSL_RECEIVED_SHUTDOWN from agent [%s]", agent->ip);
else {
char ssl_errstr[2048];
long ssl_errnum = ERR_get_error();
ERR_error_string_n(ssl_errnum, ssl_errstr, sizeof(ssl_errstr));
ERR_print_errors_fp(stderr);
log_trace( VERBOSE,
"Client didn't send data! SSL error below:\n%s",
ssl_errstr);
log_trace(VERBOSE, "Client didn't send data! SSL error below:");
log_ssl();
sprintf(reply, "%s", "Where's the data, m8?");
SSL_write(agent->ssl, reply, strlen(reply));
/* TODO: We crash here if we Ctrl + C the client, check why */
//SSL_write(agent->ssl, reply, strlen(reply));
}
log_trace(INFO, "Agent [%s] disconnected.", agent->ip);
} while (bytes);
@@ -123,7 +118,7 @@ void ssl_pt_mutex(int srv, SSL_CTX *ctx, int poolsize)
socklen_t len = sizeof(addr);
SSL *ssl;
int agent = accept(srv, (struct sockaddr*)&addr, &len);
log_trace( VERBOSE,
log_trace( INFO,
"Connection: %s:%d",
inet_ntop(AF_INET, &addr.sin_addr, address, sizeof(address)),
ntohs(addr.sin_port)