summaryrefslogtreecommitdiff
path: root/src/SSL_Analyze.c
diff options
context:
space:
mode:
author刘学利 <[email protected]>2023-07-04 02:14:03 +0000
committer刘学利 <[email protected]>2023-07-04 02:14:03 +0000
commita52514a151f7f71f2630533ed7ea6c2ffbc85faa (patch)
tree25f91fd1174eefa1e7d0c4e9b233abe42f71a6ca /src/SSL_Analyze.c
parent21950877e691e1b52038d6cffa3914b944c9dfe9 (diff)
CLOSE状态时携带负载v3.0.0
Diffstat (limited to 'src/SSL_Analyze.c')
-rw-r--r--src/SSL_Analyze.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/SSL_Analyze.c b/src/SSL_Analyze.c
index 0fd703f..f555b9a 100644
--- a/src/SSL_Analyze.c
+++ b/src/SSL_Analyze.c
@@ -161,10 +161,6 @@ extern "C" char SSL_ENTRY(const struct streaminfo *a_tcp, void**pme, int thread_
ssl_context=(struct ssl_runtime_context *)(*pme);
case OP_STATE_DATA:
return_val=ssl_parse_stream(a_tcp, ssl_context ,thread_seq, a_packet);
- if(SSL_FLASE==return_val || ssl_context->business.return_value&PROT_STATE_DROPME)
- {
- state=APP_STATE_DROPME;
- }
break;
case OP_STATE_CLOSE:
if(ssl_context->version!=UNKNOWN_VERSION)
@@ -173,12 +169,18 @@ extern "C" char SSL_ENTRY(const struct streaminfo *a_tcp, void**pme, int thread_
}
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);
break;
default:
break;
}
+ if(SSL_FLASE==return_val || ssl_context->business.return_value&PROT_STATE_DROPME)
+ {
+ state=APP_STATE_DROPME;
+ }
+
if(ssl_context->business.return_value&PROT_STATE_DROPPKT)
{
state|=APP_STATE_DROPPKT;
@@ -189,6 +191,10 @@ extern "C" char SSL_ENTRY(const struct streaminfo *a_tcp, void**pme, int thread_
ssl_release_context(ssl_context, thread_seq);
*pme=NULL;
}
+ else
+ {
+ ssl_context->business.return_value=0;
+ }
return state;
}