From adcd1640bf6ba738864691de0d077c1f8c04fa85 Mon Sep 17 00:00:00 2001 From: Lu Qiuwen Date: Sun, 4 Nov 2018 16:51:09 +0800 Subject: [PATCH] =?UTF-8?q?Close=20#66=20=E4=BF=AE=E6=AD=A3POP/IMAP?= =?UTF-8?q?=E7=AD=89=E6=9C=8D=E5=8A=A1=E7=AB=AF=E9=A6=96=E5=85=88=E5=8F=91?= =?UTF-8?q?=E9=80=81=E6=95=B0=E6=8D=AE=E7=9A=84=E5=8D=8F=E8=AE=AE=E5=A4=84?= =?UTF-8?q?=E7=90=86=E5=BC=82=E5=B8=B8=E7=9A=84=E9=97=AE=E9=A2=98=20*=20?= =?UTF-8?q?=E5=8E=9F=E5=AE=9E=E7=8E=B0=E5=9C=A8upstream=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E6=97=B6=EF=BC=8C=E7=AB=8B=E5=8D=B3=E4=BD=BF?= =?UTF-8?q?=E8=83=BD=E4=BA=86EV=5FREAD=E4=BA=8B=E4=BB=B6=E3=80=82=E5=9C=A8?= =?UTF-8?q?downstream=E5=88=9B=E5=BB=BA=E6=88=90=E5=8A=9F=E4=BB=A5?= =?UTF-8?q?=E5=89=8D=EF=BC=8C=E6=97=A0=E6=B3=95=E6=AD=A3=E7=A1=AE=E8=BD=AC?= =?UTF-8?q?=E5=8F=91upstream=E5=8F=91=E6=9D=A5=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=EF=BC=9B=20*=20=E7=8E=B0=E4=BF=AE=E6=AD=A3=E4=B8=BA=EF=BC=8C?= =?UTF-8?q?=E5=9C=A8upstream,=20downstream=E9=83=BD=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E6=97=B6=EF=BC=8C=E5=86=8D=E4=BD=BF=E8=83=BD?= =?UTF-8?q?upstream,=20downstream=E7=9A=84EV=5FREAD=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platform/src/tcp_stream.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) 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);