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,
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
}
}
}
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,
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,
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);