summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--platform/include/internal/ssl_stream_core.h2
-rw-r--r--platform/src/ssl_stream.cpp14
-rw-r--r--platform/src/tcp_stream.cpp2
3 files changed, 8 insertions, 10 deletions
diff --git a/platform/include/internal/ssl_stream_core.h b/platform/include/internal/ssl_stream_core.h
index e2d1601..ed8afcc 100644
--- a/platform/include/internal/ssl_stream_core.h
+++ b/platform/include/internal/ssl_stream_core.h
@@ -23,7 +23,7 @@ struct ssl_mgr * ssl_manager_init(const char * ini_profile, const char * section
struct key_keeper * key_keeper, void * logger);
void ssl_manager_set_new_upstream_cb(struct ssl_mgr * mgr, ssl_stream_new_hook* new_upstream_cb, void* u_para);
void ssl_manager_destroy(struct ssl_mgr * mgr);
-unsigned long ssl_stream_log_error(struct bufferevent * bev, enum tfe_conn_dir dir, struct ssl_mgr* mgr);
+unsigned long ssl_stream_log_error(struct bufferevent * bev, enum tfe_conn_dir dir, struct ssl_mgr* mgr, const char *addr);
void ssl_stream_process_error(struct ssl_stream * s_stream, unsigned long sslerr, struct ssl_mgr* mgr);
const char* ssl_stream_get_error_string(enum ssl_stream_error error);
void ssl_stream_set_cmsg_string(struct ssl_stream *stream, enum tfe_cmsg_tlv_type type, const char *value_str);
diff --git a/platform/src/ssl_stream.cpp b/platform/src/ssl_stream.cpp
index 865e623..55f3924 100644
--- a/platform/src/ssl_stream.cpp
+++ b/platform/src/ssl_stream.cpp
@@ -1083,11 +1083,10 @@ static void ssl_stream_set_cmsg_integer(struct ssl_stream* stream, enum tfe_cmsg
return;
}
-unsigned long ssl_stream_log_error(struct bufferevent * bev, enum tfe_conn_dir dir, struct ssl_mgr* mgr)
+unsigned long ssl_stream_log_error(struct bufferevent * bev, enum tfe_conn_dir dir, struct ssl_mgr* mgr, const char *addr)
{
unsigned long sslerr=0, ret_sslerr=0;
int fd=bufferevent_getfd(bev);
- char* addr_string=tfe_string_addr_create_by_fd(fd, dir);
void* logger=mgr->logger;
int fs_id=-1;
@@ -1134,7 +1133,7 @@ unsigned long ssl_stream_log_error(struct bufferevent * bev, enum tfe_conn_dir d
TFE_LOG_ERROR(logger,"Handshake Error from bufferevent of ssl %s %s: "
"%i:%s %lu:%i:%s:%i:%s:%i:%s",
tfe_stream_conn_dir_to_str(dir),
- addr_string,
+ addr,
errno,
errno ? strerror(errno) : "-",
sslerr,
@@ -1168,7 +1167,7 @@ unsigned long ssl_stream_log_error(struct bufferevent * bev, enum tfe_conn_dir d
TFE_LOG_ERROR(logger,"Error from bufferevent of ssl %s %s: "
"%i:%s %lu:%i:%s:%i:%s:%i:%s",
tfe_stream_conn_dir_to_str(dir),
- addr_string,
+ addr,
errno,
errno ? strerror(errno) : "-",
sslerr,
@@ -1196,7 +1195,6 @@ unsigned long ssl_stream_log_error(struct bufferevent * bev, enum tfe_conn_dir d
ERR_func_error_string(sslerr));
}
}
- free(addr_string);
return ret_sslerr;
}
void ssl_stream_process_error(struct ssl_stream * s_stream, unsigned long sslerr, struct ssl_mgr* mgr)
@@ -1283,7 +1281,7 @@ static void ssl_server_connected_eventcb(struct bufferevent * bev, short events,
if (events & BEV_EVENT_ERROR)
{
ATOMIC_INC(&(ctx->mgr->stat_val[SSL_UP_ERR]));
- sslerr=ssl_stream_log_error(bev, CONN_DIR_UPSTREAM, ctx->mgr);
+ sslerr=ssl_stream_log_error(bev, CONN_DIR_UPSTREAM, ctx->mgr, s_stream->tcp_stream->str_stream_info);
if(sslerr)
{
ssl_stream_process_error(s_stream, sslerr, mgr);
@@ -1898,7 +1896,7 @@ static void ssl_client_connected_eventcb(struct bufferevent * bev, short events,
if (events & BEV_EVENT_ERROR)
{
ATOMIC_INC(&(mgr->stat_val[SSL_DOWN_ERR]));
- sslerr=ssl_stream_log_error(bev, CONN_DIR_DOWNSTREAM, mgr);
+ sslerr=ssl_stream_log_error(bev, CONN_DIR_DOWNSTREAM, mgr, s_stream->tcp_stream->str_stream_info);
if(sslerr)
{
ssl_stream_process_error(s_stream, sslerr, mgr);
@@ -2046,7 +2044,7 @@ void ssl_stream_free(struct ssl_stream * s_stream, struct event_base * evbase, s
if(errno)
{
- sslerr=ssl_stream_log_error(bev, s_stream->dir, s_stream->mgr);
+ sslerr=ssl_stream_log_error(bev, s_stream->dir, s_stream->mgr, s_stream->tcp_stream->str_stream_info);
if(sslerr)
{
ssl_stream_process_error(s_stream, sslerr, s_stream->mgr);
diff --git a/platform/src/tcp_stream.cpp b/platform/src/tcp_stream.cpp
index 92bae92..9335ab1 100644
--- a/platform/src/tcp_stream.cpp
+++ b/platform/src/tcp_stream.cpp
@@ -826,7 +826,7 @@ static void __stream_bev_eventcb(struct bufferevent * bev, short events, void *
{
if (_stream->session_type == STREAM_PROTO_SSL)
{
- unsigned long sslerr = ssl_stream_log_error(bev, __bev_dir(_stream, bev), _stream->ssl_mgr);
+ unsigned long sslerr = ssl_stream_log_error(bev, __bev_dir(_stream, bev), _stream->ssl_mgr, _stream->str_stream_addr);
if (sslerr)
{
TFE_LOG_ERROR(g_default_logger, "%s %s connection error at tcp layer, ssl layer is unavailable", _stream->str_stream_addr, str_conn_dir);