#166 修正tcp_stream_destroy命中assert的问题

* 原实现在TCP连接为PASSTHROUGH的情况下,没有清空defer_upstream_fd和defer_downstream_fd,导致连接销毁时命中assert;
* 现修正,在设置连接为PASSTHROUGH时,清空defer_upstream_fd和defer_downstream_fd。
This commit is contained in:
luqiuwen
2019-09-12 11:46:08 +08:00
parent d94c397776
commit 8baa823231

View File

@@ -994,15 +994,17 @@ void ssl_downstream_create_on_fail(enum e_future_error err, const char * what, v
void ssl_upstream_create_on_success(future_result_t * result, void * user)
{
struct tfe_stream_private * _stream = (struct tfe_stream_private *) user;
evutil_socket_t fd = -1;
enum ssl_stream_action ssl_action = ssl_upstream_create_result_release_action(result);
if (SSL_ACTION_PASSTHROUGH == ssl_action)
{
_stream->tcp_passthough = 1;
_stream->conn_upstream = __conn_private_create_by_fd(_stream, _stream->defer_fd_upstream);
_stream->conn_downstream = __conn_private_create_by_fd(_stream, _stream->defer_fd_downstream);
__conn_private_enable(_stream->conn_downstream);
__conn_private_enable(_stream->conn_upstream);
_stream->tcp_passthough = 1;
_stream->defer_fd_downstream = 0;
_stream->defer_fd_upstream = 0;
}
else if (SSL_ACTION_SHUTDOWN == ssl_action)
{