]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
FileData: add stream_offset field
authorGiuseppe Longo <giuseppelng@gmail.com>
Tue, 20 Jan 2015 16:20:57 +0000 (17:20 +0100)
committerVictor Julien <victor@inliniac.net>
Fri, 8 May 2015 08:13:39 +0000 (10:13 +0200)
This is required to store the offset for reassembling chunks.

src/util-file.c
src/util-file.h

index 56be73eee65f426432c0b82b18988cc5f565c129..de24261dad75ef64d304d1200108fa9dbdf8c174 100644 (file)
@@ -492,6 +492,11 @@ int FileAppendData(FileContainer *ffc, uint8_t *data, uint32_t data_len)
         SCReturnInt(-1);
     }
 
+    if (ffc->tail->chunks_head == NULL)
+        ffd->stream_offset = 0;
+    else
+        ffd->stream_offset = ffc->tail->size;
+
     /* append the data */
     if (FileAppendFileData(ffc, ffd) < 0) {
         ffc->tail->state = FILE_STATE_ERROR;
index 36419ffbf3f6fa813e5d758456605d447b899ad9..18c137843456db05af92a2fba29037c4c6b04acc 100644 (file)
@@ -53,6 +53,7 @@ typedef enum FileState_ {
 typedef struct FileData_ {
     uint8_t *data;
     uint32_t len;
+    uint64_t stream_offset;
     int stored;     /* true if this chunk has been stored already
                      * false otherwise */
     struct FileData_ *next;