#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:
@@ -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)
|
void ssl_upstream_create_on_success(future_result_t * result, void * user)
|
||||||
{
|
{
|
||||||
struct tfe_stream_private * _stream = (struct tfe_stream_private *) 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);
|
enum ssl_stream_action ssl_action = ssl_upstream_create_result_release_action(result);
|
||||||
if (SSL_ACTION_PASSTHROUGH == ssl_action)
|
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_upstream = __conn_private_create_by_fd(_stream, _stream->defer_fd_upstream);
|
||||||
_stream->conn_downstream = __conn_private_create_by_fd(_stream, _stream->defer_fd_downstream);
|
_stream->conn_downstream = __conn_private_create_by_fd(_stream, _stream->defer_fd_downstream);
|
||||||
__conn_private_enable(_stream->conn_downstream);
|
__conn_private_enable(_stream->conn_downstream);
|
||||||
__conn_private_enable(_stream->conn_upstream);
|
__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)
|
else if (SSL_ACTION_SHUTDOWN == ssl_action)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user