aboutsummaryrefslogtreecommitdiff
path: root/analyzer/parser
diff options
context:
space:
mode:
Diffstat (limited to 'analyzer/parser')
-rw-r--r--analyzer/parser/find_parse_functions.h2
-rw-r--r--analyzer/parser/parser.c4
-rw-r--r--analyzer/parser/parser_defs.h1
3 files changed, 6 insertions, 1 deletions
diff --git a/analyzer/parser/find_parse_functions.h b/analyzer/parser/find_parse_functions.h
index e2c2acb..ffe6ef0 100644
--- a/analyzer/parser/find_parse_functions.h
+++ b/analyzer/parser/find_parse_functions.h
@@ -3,4 +3,4 @@
#include "parser/fight_results/fight_results.h"
-FindParseFunctions all_find_parse_functions[] = {{find_fight_results, parse_fight_results}};
+FindParseFunctions all_find_parse_functions[] = {{find_fight_results, parse_fight_results, SERVER}};
diff --git a/analyzer/parser/parser.c b/analyzer/parser/parser.c
index d00cd97..07980e5 100644
--- a/analyzer/parser/parser.c
+++ b/analyzer/parser/parser.c
@@ -9,6 +9,10 @@
byte_t *find_earliest_data(TCPStream *stream, int stream_offset, int *earliest_length, parse_function_t **earliest_parse_fun) {
byte_t *earliest_data = NULL;
for (size_t i = 0; i < ARR_LEN(all_find_parse_functions); i++) {
+ // ignore if not correct stream
+ if (stream->src != all_find_parse_functions[i].stream_src)
+ continue;
+
int length;
byte_t *data = all_find_parse_functions[i].find_fn(stream, stream_offset, &length);
// if it's the first found or earlier than earliest - save it
diff --git a/analyzer/parser/parser_defs.h b/analyzer/parser/parser_defs.h
index 75b0366..c64e138 100644
--- a/analyzer/parser/parser_defs.h
+++ b/analyzer/parser/parser_defs.h
@@ -37,6 +37,7 @@ typedef ParsedData parse_function_t(byte_t *data, size_t length);
typedef struct {
find_function_t *find_fn;
parse_function_t *parse_fn;
+ ConnectionSource stream_src; // which stream to look for the data
} FindParseFunctions;
#endif