summaryrefslogtreecommitdiff
path: root/src/SSL_Analyze.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/SSL_Analyze.c')
-rw-r--r--src/SSL_Analyze.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/SSL_Analyze.c b/src/SSL_Analyze.c
index 2809c00..7c6d89a 100644
--- a/src/SSL_Analyze.c
+++ b/src/SSL_Analyze.c
@@ -168,15 +168,13 @@ extern "C" char SSL_ENTRY(const struct streaminfo *a_tcp, void**pme, int thread_
ssl_add_proto_tag( a_tcp, "SSL", strlen("SSL"));
}
- ssl_context->over_flag=SSL_TRUE;
- return_val=ssl_parse_stream(a_tcp, ssl_context ,thread_seq, a_packet);
- ssl_call_plugins(a_tcp, ssl_context, NULL, 0, SSL_INTEREST_KEY_MASK, thread_seq, a_packet);
+ return_val=ssl_parse_stream(a_tcp, ssl_context ,thread_seq, a_packet);
break;
default:
break;
}
- if(SSL_FLASE==return_val || ssl_context->business.return_value&PROT_STATE_DROPME)
+ if(SSL_FLASE==return_val)
{
state=APP_STATE_DROPME;
}
@@ -188,6 +186,12 @@ extern "C" char SSL_ENTRY(const struct streaminfo *a_tcp, void**pme, int thread_
if(state&APP_STATE_DROPME || a_tcp->opstate==OP_STATE_CLOSE)
{
+ if(ssl_context->is_call_business==1)
+ {
+ ssl_context->over_flag=1;
+ ssl_call_plugins(a_tcp, ssl_context, NULL, 0, SSL_INTEREST_KEY_MASK, thread_seq, a_packet);
+ }
+
ssl_release_context(ssl_context, thread_seq);
*pme=NULL;
}