diff --git a/platform/src/tcp_stream.cpp b/platform/src/tcp_stream.cpp index 94b2295..8d28c8a 100644 --- a/platform/src/tcp_stream.cpp +++ b/platform/src/tcp_stream.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #ifndef TFE_CONFIG_OUTPUT_LIMIT_DEFAULT #define TFE_CONFIG_OUTPUT_LIMIT_DEFAULT (1024 * 1024) @@ -265,8 +266,7 @@ static tfe_conn_private * __conn_private_create_by_bev(struct tfe_stream_private __conn_private->fd = bufferevent_getfd(bev); bufferevent_setcb(__conn_private->bev, __stream_bev_readcb, __stream_bev_writecb, __stream_bev_eventcb, stream); - bufferevent_enable(__conn_private->bev, EV_READ | EV_WRITE); - + bufferevent_disable(__conn_private->bev, EV_READ | EV_WRITE); return __conn_private; } @@ -691,6 +691,7 @@ static tfe_conn_private * __conn_private_create_by_fd(struct tfe_stream_private __conn_private->bev = bufferevent_socket_new(__ev_base, fd, BEV_OPT_DEFER_CALLBACKS); __conn_private->fd = fd; + struct bufferevent * __bev = __conn_private->bev; if (!__conn_private->bev) { TFE_LOG_ERROR(__STREAM_LOGGER(stream), "Failed at creating bufferevent for fd %d", fd); @@ -708,6 +709,7 @@ static tfe_conn_private * __conn_private_create_by_fd(struct tfe_stream_private __stream_bev_writecb, __stream_bev_eventcb, stream); } + bufferevent_disable(__conn_private->bev, EV_READ | EV_WRITE); return __conn_private; __errout: @@ -746,7 +748,8 @@ void ssl_downstream_create_on_fail(enum e_future_error err, const char * what, v struct tfe_stream_private * _stream = (struct tfe_stream_private *) user; assert(_stream != NULL && _stream->session_type == STREAM_PROTO_SSL); - TFE_STREAM_LOG_ERROR(_stream, "Failed to create SSL downstream, close the connection : %s. ", what); + TFE_STREAM_LOG_ERROR(_stream, "%s - Failed to create SSL downstream, close the connection : %s. ", + _stream->str_stream_addr, what); /* There is nothing we can do because upstream has been handshake, * Close the stream */ @@ -786,8 +789,10 @@ void ssl_upstream_create_on_fail(enum e_future_error err, const char * what, voi struct tfe_stream_private * _stream = (struct tfe_stream_private *) user; assert(_stream != NULL && _stream->session_type == STREAM_PROTO_SSL); - TFE_STREAM_LOG_ERROR(_stream, "Failed to create SSL upstream, pass-through the connection : %s. ", what); + TFE_STREAM_LOG_ERROR(_stream, "%s - Failed to create SSL upstream, pass-through the connection : %s. ", + _stream->str_stream_addr, what); + _stream->passthough = true; _stream->conn_downstream = __conn_private_create_by_fd(_stream, _stream->defer_fd_downstream); _stream->conn_upstream = __conn_private_create_by_fd(_stream, _stream->defer_fd_downstream);