aboutsummaryrefslogtreecommitdiff
path: root/analyzer/parser/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'analyzer/parser/parser.c')
-rw-r--r--analyzer/parser/parser.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/analyzer/parser/parser.c b/analyzer/parser/parser.c
index b551d8e..7fb155f 100644
--- a/analyzer/parser/parser.c
+++ b/analyzer/parser/parser.c
@@ -2,14 +2,19 @@
#include <stdlib.h>
-ParsedData *parse_stream(char *stream, int stream_len, int *parsed_len) {
+ParsedData *parse_stream(TCPStream *stream, size_t *parsed_len, size_t *n_parsed_data) {
// TODO: Need to do parsing of the entire thing (loop) and return all of the parsed data
- if (stream_len > 0) {
- int length;
- char *start = find_fight_results(stream, stream_len, &length);
- if (start != NULL) {
- parse_fight_results(start, length);
- }
+ int length;
+ byte_t *start = find_fight_results(stream, &length);
+ if (start == NULL) {
+ *parsed_len = stream->len;
+ }
+ else if (length == -1) {
+ *parsed_len = 0;
+ }
+ else {
+ parse_fight_results(start, length);
+ *parsed_len = start - stream->data + length;
}
return NULL;
}