]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust/file: change return type for FileOpenFileWithId
authorVictor Julien <victor@inliniac.net>
Thu, 25 Jan 2018 08:56:37 +0000 (09:56 +0100)
committerVictor Julien <victor@inliniac.net>
Mon, 12 Feb 2018 09:02:07 +0000 (10:02 +0100)
Make it int so we can easily check it in Rust. No consumer used the
File pointer that was returned before anyway.

rust/src/core.rs
rust/src/filecontainer.rs
src/rust.h
src/util-file.c
src/util-file.h

index ac24850cdf9fd9c6fd637683ceba493bb23336c5..d200b2f4ca4573756615902a4920d28f1e416cad 100644 (file)
@@ -70,7 +70,7 @@ pub type SCFileOpenFileWithId = extern "C" fn (
         track_id: u32,
         name: *const u8, name_len: u16,
         data: *const u8, data_len: u32,
-        flags: u16) -> File;
+        flags: u16) -> i32;
 pub type SCFileCloseFileById = extern "C" fn (
         file_container: &FileContainer,
         track_id: u32,
index a57e0184f0300bcf9bf7e8cbb084485785dec485..60340a5ba43522cc696718f915d05eff80bed680 100644 (file)
@@ -49,12 +49,11 @@ impl FileContainer {
             None => panic!("BUG no suricata_config"),
             Some(c) => {
                 SCLogDebug!("FILE {:p} OPEN flags {:04X}", &self, flags);
-                //let ref res =
 
-                (c.FileOpenFile)(&self, cfg.files_sbcfg, *track_id,
+                let res = (c.FileOpenFile)(&self, cfg.files_sbcfg, *track_id,
                         name.as_ptr(), name.len() as u16,
                         ptr::null(), 0u32, flags);
-                0
+                res
             }
         }
     }
index 848490e91624590be7d7018c2241edde954bfb2e..c016fd493be63e877666d959638e557ca21fcb33 100644 (file)
@@ -26,7 +26,7 @@ typedef struct SuricataContext_ {
             uint8_t);
     void (*AppLayerDecoderEventsFreeEvents)(AppLayerDecoderEvents **);
 
-    File *(*FileOpenFileWithId)(FileContainer *, const StreamingBufferConfig *,
+    int (*FileOpenFileWithId)(FileContainer *, const StreamingBufferConfig *,
         uint32_t track_id, const uint8_t *name, uint16_t name_len,
         const uint8_t *data, uint32_t data_len, uint16_t flags);
     int (*FileCloseFileById)(FileContainer *, uint32_t track_id,
index 56d9bd7a3202e6c1d17ff09b3b90513b64a933ce..af5ffae3ec3b61beda82cc2c0ef603dd0266fd7a 100644 (file)
@@ -826,17 +826,21 @@ File *FileOpenFile(FileContainer *ffc, const StreamingBufferConfig *sbcfg,
 
     SCReturnPtr(ff, "File");
 }
-File *FileOpenFileWithId(FileContainer *ffc, const StreamingBufferConfig *sbcfg,
+
+/**
+ *  \retval 0 ok
+ *  \retval -1 failed */
+int FileOpenFileWithId(FileContainer *ffc, const StreamingBufferConfig *sbcfg,
         uint32_t track_id, const uint8_t *name, uint16_t name_len,
         const uint8_t *data, uint32_t data_len, uint16_t flags)
 {
     File *ff = FileOpenFile(ffc, sbcfg, name, name_len, data, data_len, flags);
     if (ff == NULL)
-        return NULL;
+        return -1;
 
     ff->file_track_id = track_id;
     ff->flags |= FILE_USE_TRACKID;
-    return ff;
+    return 0;
 }
 
 static int FileCloseFilePtr(File *ff, const uint8_t *data,
index 0795177f3d3f39afb60cb52b8f7c1458e2039d50..9b578bc1f52006d6d2611a6d92d31eaec0a4b53a 100644 (file)
@@ -126,7 +126,7 @@ void FileContainerAdd(FileContainer *, File *);
 File *FileOpenFile(FileContainer *, const StreamingBufferConfig *,
         const uint8_t *name, uint16_t name_len,
         const uint8_t *data, uint32_t data_len, uint16_t flags);
-File *FileOpenFileWithId(FileContainer *, const StreamingBufferConfig *,
+int FileOpenFileWithId(FileContainer *, const StreamingBufferConfig *,
         uint32_t track_id, const uint8_t *name, uint16_t name_len,
         const uint8_t *data, uint32_t data_len, uint16_t flags);