mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
66 lines
2.1 KiB
Diff
66 lines
2.1 KiB
Diff
diff -urN bro-1.2.1-orig/src/pac_paramtype.cc bro-1.2.1-ssl-binpac/src/pac_paramtype.cc
|
|
--- bro-1.2.1-orig/src/pac_paramtype.cc 2006-07-26 15:02:40.000000000 -0700
|
|
+++ bro-1.2.1-ssl-binpac/src/pac_paramtype.cc 2007-05-10 15:09:47.470104000 -0700
|
|
@@ -208,7 +208,13 @@
|
|
const char *parse_func;
|
|
string parse_params;
|
|
|
|
- if ( ref_type->incremental_input() )
|
|
+ if ( buffer_mode() == BUFFER_NOTHING )
|
|
+ {
|
|
+ ASSERT(!ref_type->incremental_input());
|
|
+ parse_func = kParseFuncWithoutBuffer;
|
|
+ parse_params = "0, 0";
|
|
+ }
|
|
+ else if ( ref_type->incremental_input() )
|
|
{
|
|
parse_func = kParseFuncWithBuffer;
|
|
parse_params = env->RValue(flow_buffer_id);
|
|
@@ -239,15 +245,24 @@
|
|
|
|
if ( incremental_input() )
|
|
{
|
|
- ASSERT(parsing_complete_var());
|
|
- out_cc->println("%s = %s;",
|
|
- env->LValue(parsing_complete_var()),
|
|
- call_parse_func.c_str());
|
|
-
|
|
- // parsing_complete_var might have been already
|
|
- // evaluated when set to false
|
|
- if ( ! env->Evaluated(parsing_complete_var()) )
|
|
- env->SetEvaluated(parsing_complete_var());
|
|
+ if ( buffer_mode() == BUFFER_NOTHING )
|
|
+ {
|
|
+ out_cc->println("%s;", call_parse_func.c_str());
|
|
+ out_cc->println("%s = true;",
|
|
+ env->LValue(parsing_complete_var()));
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ ASSERT(parsing_complete_var());
|
|
+ out_cc->println("%s = %s;",
|
|
+ env->LValue(parsing_complete_var()),
|
|
+ call_parse_func.c_str());
|
|
+
|
|
+ // parsing_complete_var might have been already
|
|
+ // evaluated when set to false
|
|
+ if ( ! env->Evaluated(parsing_complete_var()) )
|
|
+ env->SetEvaluated(parsing_complete_var());
|
|
+ }
|
|
}
|
|
else
|
|
{
|
|
diff -urN bro-1.2.1-orig/src/pac_type.cc bro-1.2.1-ssl-binpac/src/pac_type.cc
|
|
--- bro-1.2.1-orig/src/pac_type.cc 2006-07-26 15:02:40.000000000 -0700
|
|
+++ bro-1.2.1-ssl-binpac/src/pac_type.cc 2007-05-24 10:56:42.140658000 -0700
|
|
@@ -501,8 +501,8 @@
|
|
|
|
if ( buffer_mode() == BUFFER_NOTHING )
|
|
{
|
|
- out_cc->println("%s = true;",
|
|
- env->LValue(parsing_complete_var()));
|
|
+ // this is the empty type
|
|
+ DoGenParseCode(out_cc, env, data, flags);
|
|
}
|
|
else if ( buffer_input() )
|
|
{
|