]> git.ipfire.org Git - thirdparty/suricata.git/log
thirdparty/suricata.git
8 years agobypass: add explicit flag in stream engine 2779/head
Eric Leblond [Tue, 13 Jun 2017 20:32:50 +0000 (22:32 +0200)] 
bypass: add explicit flag in stream engine

TCP reassembly is now deactivated more frequently and triggering a
bypass on it is resulting in missing some alerts due forgetting
about packet based signature.

So this patch is introducing a dedicated flag that can be set in
the app layer and transmitted in the streaming to trigger bypass.

It is currently used by the SSL app layer to trigger bypass when
the stream becomes encrypted.

8 years agorust/dns: support gaps in TCP DNS 2776/head
Jason Ish [Fri, 9 Jun 2017 17:12:19 +0000 (11:12 -0600)] 
rust/dns: support gaps in TCP DNS

8 years agotravis: add rust 1.7.0 build
Jason Ish [Thu, 8 Jun 2017 19:32:40 +0000 (13:32 -0600)] 
travis: add rust 1.7.0 build

One build with Rust 1.7.0, our oldest that we'll support as its
whats bundled with Ubuntu 16.04. Create another build that will use
the latest stable.

8 years agorust/dns: fix unit tests on Rust 1.7.0
Jason Ish [Thu, 8 Jun 2017 19:59:09 +0000 (13:59 -0600)] 
rust/dns: fix unit tests on Rust 1.7.0

8 years agorust/dns: support txt records
Jason Ish [Thu, 8 Jun 2017 19:26:37 +0000 (13:26 -0600)] 
rust/dns: support txt records

8 years agorust/dns: copy over dns unit tests
Jason Ish [Wed, 7 Jun 2017 20:06:44 +0000 (14:06 -0600)] 
rust/dns: copy over dns unit tests

Only the tests that make sense were copied over, those testing
correlation of responses to requests were not.

Also, remove compiler warning when not built with
unit tests.

8 years agorust: don't fail distcheck if cargo-vendor not found
Jason Ish [Wed, 7 Jun 2017 19:25:16 +0000 (13:25 -0600)] 
rust: don't fail distcheck if cargo-vendor not found

Allow distcheck to pass if cargo vendor is not found by not
failing out. It is not required to successfully build a dist
tarball, the Rust sources will just not be vendored in.

Also don't fail out make dist if Python is not installed. A build
will still be successful is Python is available on the end
build system.

8 years agooutput-json-alert: don't decref used object
Eric Leblond [Mon, 12 Jun 2017 12:04:38 +0000 (14:04 +0200)] 
output-json-alert: don't decref used object

In the unlikely case of a allocation error we will still use the
existing object so it should not be decref and freed.

8 years agodoc: some more info about alert format
Eric Leblond [Tue, 6 Jun 2017 16:45:52 +0000 (18:45 +0200)] 
doc: some more info about alert format

8 years agodoc: document target keyword
Eric Leblond [Tue, 6 Jun 2017 16:35:48 +0000 (18:35 +0200)] 
doc: document target keyword

8 years agoalert-prelude: correctly set Source and Target
Eric Leblond [Sun, 25 Dec 2016 22:04:31 +0000 (23:04 +0100)] 
alert-prelude: correctly set Source and Target

IDMEF alert contains two entities named Source and Target that are
defined using common language:
* "The Source class contains information about the possible source(s) of
   the event(s) that generated an alert."
* "The Target class contains information about the possible target(s) of
   the event(s) that generated an alert."

Previous alerts event were not following that so we can updated the code
when we know the direction thanks to the metadata field.

8 years agoalert-prelude: fix warnings on callback type
Eric Leblond [Sun, 23 Apr 2017 08:24:05 +0000 (10:24 +0200)] 
alert-prelude: fix warnings on callback type

8 years agooutput-json-alert: output source and target
Eric Leblond [Sat, 17 Dec 2016 09:40:11 +0000 (10:40 +0100)] 
output-json-alert: output source and target

Use metadata provided information to output the Source and Target
in the definition of IDMEF.

The output is now the following:

  "alert": {
    "action": "allowed",
    "gid": 1,
    "signature_id": 1,
    "rev": 1,
    "signature": "connection to home",
    "category": "",
    "severity": 3,
    "source": {
      "ip": "2001:31d0:000a:f68a:0000:0000:0000:0001",
      "port": 80
    },
    "target": {
      "ip": "2a01:0e34:ee97:b130:c685:08ff:dab3:c9c8",
      "port": 48390
    }

8 years agodetect-target: introduce new keyword
Eric Leblond [Fri, 16 Dec 2016 18:26:58 +0000 (19:26 +0100)] 
detect-target: introduce new keyword

The target keyword allows rules writer to specify information about
target of the attack. Using this keyword in a signature causes
some fields to be added in the EVE output. It also fixes ambiguity
in the Prelude output.

8 years agogithub: add pull request template 2775/head
Victor Julien [Mon, 12 Jun 2017 16:45:36 +0000 (18:45 +0200)] 
github: add pull request template

8 years agogithub: add contributing doc
Victor Julien [Mon, 12 Jun 2017 16:38:42 +0000 (18:38 +0200)] 
github: add contributing doc

8 years agocommon: sync PROG_VER version with configure.ac suricata-4.0.0-beta1
Victor Julien [Wed, 7 Jun 2017 15:01:44 +0000 (17:01 +0200)] 
common: sync PROG_VER version with configure.ac

8 years agochangelog: update for 4.0.0-beta1
Victor Julien [Wed, 7 Jun 2017 14:43:27 +0000 (16:43 +0200)] 
changelog: update for 4.0.0-beta1

8 years agorust dns: fixup for nom 3.0 2756/head
Jason Ish [Tue, 6 Jun 2017 23:02:14 +0000 (17:02 -0600)] 
rust dns: fixup for nom 3.0

8 years agorust: build fixes and nom update
Jason Ish [Tue, 6 Jun 2017 23:19:02 +0000 (17:19 -0600)] 
rust: build fixes and nom update

Update nom to ~3.0.

Prefix dependencies with ~, which will allow for newer patch
versions only. Minor version updates should get a test before
using.

Remove Cargo.lock from the repo, but still generate as part
of the vendoring process for release builds. This will ensure
that all users of a particular distribution tarball will be
linking against the same Rust dependencies.

8 years agorust: add to features
Victor Julien [Tue, 6 Jun 2017 19:31:23 +0000 (21:31 +0200)] 
rust: add to features

8 years agorust: make clear it's experimental
Victor Julien [Tue, 6 Jun 2017 19:29:57 +0000 (21:29 +0200)] 
rust: make clear it's experimental

8 years agolog: fix mem leak in error path (CID1404888) 2753/head
Victor Julien [Tue, 6 Jun 2017 17:09:18 +0000 (19:09 +0200)] 
log: fix mem leak in error path (CID1404888)

8 years agodoc: document drop-invalid option. 2752/head
Eric Leblond [Mon, 5 Jun 2017 14:41:47 +0000 (16:41 +0200)] 
doc: document drop-invalid option.

8 years agoqa: update struct-flags coccinelle test
Eric Leblond [Mon, 5 Jun 2017 11:46:08 +0000 (13:46 +0200)] 
qa: update struct-flags coccinelle test

8 years agostream-tcp: use flags field to store inline info
Eric Leblond [Fri, 12 May 2017 18:22:35 +0000 (20:22 +0200)] 
stream-tcp: use flags field to store inline info

8 years agostream-tcp: use flags field to store bypass info
Eric Leblond [Fri, 12 May 2017 17:53:49 +0000 (19:53 +0200)] 
stream-tcp: use flags field to store bypass info

8 years agoaf-packet: warn when tpacket_v3 is used in IPS
Eric Leblond [Tue, 9 May 2017 21:35:03 +0000 (23:35 +0200)] 
af-packet: warn when tpacket_v3 is used in IPS

Update yaml and add an error message.

8 years agostream-tcp: add option to accept invalid packets
Eric Leblond [Mon, 24 Apr 2017 13:00:20 +0000 (15:00 +0200)] 
stream-tcp: add option to accept invalid packets

Suricata was inconditionaly dropping packets that are invalid with
respect to the streaming engine. In some corner case like asymetric
trafic capture, this was leading to dropping some legitimate trafic.

The async-oneside option did help but this was not perfect in some
real life case. So this patch introduces an option that allow the
user to tell Suricata not to drop packet that are invalid with
respect to streaming.

8 years agodoc: document filestore update
Eric Leblond [Mon, 5 Jun 2017 14:06:04 +0000 (16:06 +0200)] 
doc: document filestore update

8 years agofilestore: avoid open write close sequence
Eric Leblond [Wed, 31 May 2017 16:14:29 +0000 (18:14 +0200)] 
filestore: avoid open write close sequence

Current file storing approach is using a open file, write data,
close file logic. If this technic is fixing the problem of getting
too much open files in Suricata it is not optimal.

Test on a loop shows that open, write, close on a single file is
two time slower than a single open, loop of write, close.

This patch updates the logic by storing the fd in the File structure.
This is done for a certain number of files. If this amount is exceeded
then the previous logic is used.

This patch also adds two counters. First is the number of
currently open files. The second one is the number of time
the open, write, close sequence has been used due to too much
open files.

In EVE, the entries are:
 stats {file_store: {"open_files_max_hit":0,"open_files":5}}

8 years agofilestore: add option to disable meta file writing
Eric Leblond [Thu, 1 Jun 2017 11:21:13 +0000 (13:21 +0200)] 
filestore: add option to disable meta file writing

As the fileinfo entry is containing the file_id it is enough to
have this entry to link the extracted file with metadata.

8 years agorust/nfs/files: no longer Option/Box 2747/head
Victor Julien [Tue, 23 May 2017 09:26:56 +0000 (11:26 +0200)] 
rust/nfs/files: no longer Option/Box

8 years agorust/nfs: move files into tx type data
Victor Julien [Tue, 23 May 2017 09:20:16 +0000 (11:20 +0200)] 
rust/nfs: move files into tx type data

8 years agorust/nfs: add more record types
Victor Julien [Tue, 23 May 2017 08:10:57 +0000 (10:10 +0200)] 
rust/nfs: add more record types

8 years agorust/nfs: NFSv3 parser, logger and detection
Victor Julien [Mon, 22 May 2017 20:10:20 +0000 (22:10 +0200)] 
rust/nfs: NFSv3 parser, logger and detection

8 years agorust: bindings: improve generator script
Victor Julien [Mon, 22 May 2017 19:55:32 +0000 (21:55 +0200)] 
rust: bindings: improve generator script

8 years agorust/core: add file tx API call
Victor Julien [Mon, 22 May 2017 19:56:14 +0000 (21:56 +0200)] 
rust/core: add file tx API call

8 years agorust: filetracker API
Victor Julien [Thu, 11 May 2017 15:47:43 +0000 (17:47 +0200)] 
rust: filetracker API

Initial version of a filetracker API that depends on the filecontainer
and wraps around the Suricata File API in C.

The API expects chunk based transfers where chunks can be out of order.

8 years agorust: filecontainer API
Victor Julien [Thu, 11 May 2017 14:58:55 +0000 (16:58 +0200)] 
rust: filecontainer API

Wrapper around Suricata's File and FileContainer API. Built around
assumption that a rust owned structure will have a
'SuricataFileContainer' member that is managed by the C-side of
things.

8 years agorust/json: expose json_boolean
Victor Julien [Mon, 15 May 2017 11:06:54 +0000 (13:06 +0200)] 
rust/json: expose json_boolean

8 years agorust: dns: add log filtering on rrtype
Jason Ish [Wed, 10 May 2017 13:24:02 +0000 (07:24 -0600)] 
rust: dns: add log filtering on rrtype

While the filtering is still configured in C, the filtering
flags are passed into Rust so it can determine if a record
should be logged or not.

8 years agorust: use LoggerFlags type to track logged state
Jason Ish [Tue, 9 May 2017 17:08:14 +0000 (11:08 -0600)] 
rust: use LoggerFlags type to track logged state

8 years agorust: lua support for DNS based Rust
Jason Ish [Mon, 1 May 2017 23:14:08 +0000 (17:14 -0600)] 
rust: lua support for DNS based Rust

Uses Rust wrappers around Lua to populate Lua
data structures.

8 years agorust: lua wrapper
Jason Ish [Mon, 1 May 2017 23:13:20 +0000 (17:13 -0600)] 
rust: lua wrapper

Rust wrapper for working with lua state.

8 years agorust: DNS app-layer.
Jason Ish [Wed, 26 Apr 2017 22:35:10 +0000 (16:35 -0600)] 
rust: DNS app-layer.

A DNS application layer in Rust. This is different than the
C based one, as it is partially stateless by not matching
up responses to replies.

8 years agorust: dns: nom DNS parsers
Jason Ish [Thu, 20 Apr 2017 22:46:34 +0000 (16:46 -0600)] 
rust: dns: nom DNS parsers

8 years agorust: wrapper around C logging, and "context"
Jason Ish [Wed, 26 Apr 2017 22:33:47 +0000 (16:33 -0600)] 
rust: wrapper around C logging, and "context"

Where the context is a struct passed from C with pointers
to all the functions that may be called.

Instead of referencing C functions directly, wrap them
in function pointers so pure Rust unit tests can still run.

8 years agorust: generate headers as part of build
Jason Ish [Thu, 11 May 2017 19:30:27 +0000 (13:30 -0600)] 
rust: generate headers as part of build

8 years agorust: c header generator
Jason Ish [Wed, 26 Apr 2017 22:24:06 +0000 (16:24 -0600)] 
rust: c header generator

8 years agorust: add libjansson wrapper for rust
Jason Ish [Wed, 26 Apr 2017 22:12:51 +0000 (16:12 -0600)] 
rust: add libjansson wrapper for rust

8 years agorust: example of how an app-layer may be initialized
Jason Ish [Mon, 3 Apr 2017 21:33:14 +0000 (15:33 -0600)] 
rust: example of how an app-layer may be initialized

Also shows basic usage of the configuration API from Rust.

8 years agorust: stub out configuration access functions
Jason Ish [Mon, 3 Apr 2017 21:31:49 +0000 (15:31 -0600)] 
rust: stub out configuration access functions

8 years agorust: stub out logging from rust
Jason Ish [Mon, 3 Apr 2017 21:30:17 +0000 (15:30 -0600)] 
rust: stub out logging from rust

8 years agotravis: enable a rust build
Jason Ish [Thu, 16 Mar 2017 21:38:14 +0000 (15:38 -0600)] 
travis: enable a rust build

8 years agorust: hook rust into the build
Jason Ish [Thu, 16 Mar 2017 21:32:46 +0000 (15:32 -0600)] 
rust: hook rust into the build

Rust is currently optional, use the --enable-rust configure
argument to enable Rust.

By default Rust will be built in release mode. If debug is enabled
then it will be built in debug mode.

On make dist, "cargo vendor" will be run to make a local copy
of Rust dependencies for the distribution archive file.

Add autoconf checks to test for the vendored source, and if it
exists setup the build to use the vendored code instead of
fetching it from the network.

Also, as Cargo requires semantic versioning, the Suricata version
had to change from 4.0dev to 4.0.0-dev.

8 years agorust: add rust skeleton tree
Jason Ish [Thu, 16 Mar 2017 20:44:21 +0000 (14:44 -0600)] 
rust: add rust skeleton tree

8 years agostream: suppress GAP notice message 2739/head
Victor Julien [Mon, 5 Jun 2017 08:14:12 +0000 (10:14 +0200)] 
stream: suppress GAP notice message

8 years agonetmap: minor output cleanup
Victor Julien [Mon, 5 Jun 2017 08:10:57 +0000 (10:10 +0200)] 
netmap: minor output cleanup

8 years agostream: minor output cleanup
Victor Julien [Mon, 5 Jun 2017 08:10:44 +0000 (10:10 +0200)] 
stream: minor output cleanup

8 years agoflow-hash: optimize to avoid branch misses 2737/head
Victor Julien [Fri, 7 Apr 2017 20:00:21 +0000 (22:00 +0200)] 
flow-hash: optimize to avoid branch misses

Profiling showed a lot of branch misses in flow hashing. Restructure
code to avoid branching.

8 years agodns: accept gaps in TCP DNS
Jason Ish [Mon, 8 May 2017 19:46:00 +0000 (13:46 -0600)] 
dns: accept gaps in TCP DNS

On gap notification a flag is set, on the next call the input
data is reprobed to make sure it can be processed.

8 years agoapp-layer: notify parsers of gaps if enabled
Jason Ish [Mon, 8 May 2017 19:43:42 +0000 (13:43 -0600)] 
app-layer: notify parsers of gaps if enabled

A parser can now set a flag that will tell the application
layer that it is capable of handling gaps. If enabled, and a
gap occurs, the app-layer needs to be prepared to accept
input that is NULL with a length, where the length is the
number of bytes lost. It is up to the app-layer to
determine if it can sync up with the input data again.

8 years agostream/async: more liberal RST acceptance
Victor Julien [Thu, 1 Jun 2017 13:20:17 +0000 (15:20 +0200)] 
stream/async: more liberal RST acceptance

8 years agostream/async: improvements for IPS
Victor Julien [Tue, 30 May 2017 09:26:38 +0000 (11:26 +0200)] 
stream/async: improvements for IPS

Initialize midstream with async if enabled. Unset async on seeing
bidirectional traffic.

If only async-oneside is enabled, set ASYNC flag on session creation
when receiving a SYN packet.

Let last_ack stay in sync with next_seq so that various checks work
better.

8 years agooutput/streaming: fixes and redo tcp logging
Victor Julien [Fri, 2 Jun 2017 15:43:22 +0000 (17:43 +0200)] 
output/streaming: fixes and redo tcp logging

Fix HTTP body logging.

Redo TCP data logging based on the streaming API.

8 years agostream: introduce optional 'log' progress tracker
Victor Julien [Fri, 2 Jun 2017 15:15:37 +0000 (17:15 +0200)] 
stream: introduce optional 'log' progress tracker

For logging streaming TCP data so far the individual segments where
used. However since the last big stream changes, the segments are
no longer the proper place for this. Segments can now have overlaps
etc.

This patch introduces a new tracker. Next to the existing 'app' and
'raw' trackers, the new tracker is 'log'. When the TCP logging is
used, a flag in the config is set and the log tracker is used to
determine how much of the stream window can be moved.

8 years agostreaming/lua: add direction indication to streamer
Victor Julien [Fri, 2 Jun 2017 08:01:47 +0000 (10:01 +0200)] 
streaming/lua: add direction indication to streamer

Call SCStreamingBuffer as follows:

    data, sb_open, sb_close, sb_ts, sb_tc = SCStreamingBuffer()

sb_ts and sb_tc are bools indicating the direction of the data.

8 years agoluajit: cleanup states before return to pool
Victor Julien [Thu, 1 Jun 2017 21:49:28 +0000 (23:49 +0200)] 
luajit: cleanup states before return to pool

8 years agostreaming: small code cleanup
Victor Julien [Thu, 1 Jun 2017 21:16:39 +0000 (23:16 +0200)] 
streaming: small code cleanup

8 years agolua/streaming: fix http body logging
Victor Julien [Thu, 1 Jun 2017 21:15:43 +0000 (23:15 +0200)] 
lua/streaming: fix http body logging

8 years agoflow-worker: improve no-flow case
Victor Julien [Thu, 1 Jun 2017 13:26:55 +0000 (15:26 +0200)] 
flow-worker: improve no-flow case

8 years agodetect-dns-query: use unit test macros 2732/head
Jason Ish [Fri, 28 Apr 2017 20:55:14 +0000 (14:55 -0600)] 
detect-dns-query: use unit test macros

8 years agodetect/file: cleanups
Victor Julien [Mon, 22 May 2017 20:38:52 +0000 (22:38 +0200)] 
detect/file: cleanups

TX id is enfored in the engine, so the keywords don't need to.

Unify detect file engines.

8 years agorules: add missing classtypes for event.rules
Andreas Herz [Wed, 31 May 2017 21:15:41 +0000 (23:15 +0200)] 
rules: add missing classtypes for event.rules

8 years agooutput-tx: small cleanups and scan-build suppression
Victor Julien [Wed, 31 May 2017 11:33:27 +0000 (13:33 +0200)] 
output-tx: small cleanups and scan-build suppression

8 years agoprofiling: fix const compiler warnings
Jason Ish [Wed, 31 May 2017 12:04:07 +0000 (06:04 -0600)] 
profiling: fix const compiler warnings

8 years agounix socket: improve runmode handling 2729/head
Victor Julien [Wed, 24 May 2017 19:30:48 +0000 (21:30 +0200)] 
unix socket: improve runmode handling

Improve output of unix mode in --list-runmodes

Honor the runmode commandline setting. Supported are 'single'
and 'autofp', with the latter still the default.

8 years agounix-socket: fix minor memleak
Victor Julien [Wed, 31 May 2017 09:28:50 +0000 (11:28 +0200)] 
unix-socket: fix minor memleak

8 years agolog-tlsstore: fix error handling
Eric Leblond [Fri, 19 May 2017 09:34:38 +0000 (11:34 +0200)] 
log-tlsstore: fix error handling

In case of realloc error, the length of the encoding buffer was not
reset and this could result in trying to write to NULL pointer.

8 years agodoc: rephrase nocase placement explanation
Andreas Herz [Tue, 30 May 2017 20:46:47 +0000 (22:46 +0200)] 
doc: rephrase nocase placement explanation

8 years agoflow: enforce 51 bits id globally
Victor Julien [Wed, 31 May 2017 08:19:49 +0000 (10:19 +0200)] 
flow: enforce 51 bits id globally

8 years agolua: add SCFlowId for getting the flow id 2718/head
Victor Julien [Fri, 19 May 2017 18:40:05 +0000 (20:40 +0200)] 
lua: add SCFlowId for getting the flow id

8 years agobug 2113: fix live modes 2716/head
Victor Julien [Tue, 16 May 2017 17:00:32 +0000 (19:00 +0200)] 
bug 2113: fix live modes

8 years agodns: fix log filtering
Jason Ish [Tue, 9 May 2017 23:40:56 +0000 (17:40 -0600)] 
dns: fix log filtering

Previously only a subset of the records could be selected
in custom. Now allow any to be selected.

8 years agostream: single GAP check
Victor Julien [Mon, 8 May 2017 17:46:33 +0000 (19:46 +0200)] 
stream: single GAP check

Move all GAP checks into CheckGap. Remove seg_list based check.
Also remove seg_list == NULL check to make sure the Gap check is
done on an empty list as well.

Improve next_seq < last_ack check, but add data beyond gap check.

8 years agodoc: fix doc links for http keywords 2715/head
Victor Julien [Wed, 10 May 2017 08:24:57 +0000 (10:24 +0200)] 
doc: fix doc links for http keywords

8 years agodoc: flowints formatting cleanup
Victor Julien [Wed, 10 May 2017 07:55:46 +0000 (09:55 +0200)] 
doc: flowints formatting cleanup

8 years agodoc: move parts out of snort difference doc
Victor Julien [Wed, 10 May 2017 07:04:17 +0000 (09:04 +0200)] 
doc: move parts out of snort difference doc

Move generic keyword descriptions to the keyword documentation.

8 years agodoc: removing (replaced) snort-compatibility.rst
David Wharton [Fri, 3 Mar 2017 20:51:54 +0000 (15:51 -0500)] 
doc: removing (replaced) snort-compatibility.rst

snort-compatibility.rst replaced by differences-from-snort.rst

8 years agodoc: replacing snort-compatibility link
David Wharton [Fri, 3 Mar 2017 20:49:27 +0000 (15:49 -0500)] 
doc: replacing snort-compatibility link

The snort-compatibility.rst document is being replaced by
differences-from-snort.rst. This commit updates the link.

8 years agodoc: overhaul of the snort-compatibility document
David Wharton [Fri, 3 Mar 2017 20:43:01 +0000 (15:43 -0500)] 
doc: overhaul of the snort-compatibility document

This is intended to replace the existing 'snort-compatibility.rst'
document.
Based on "The Suricata Rule Writing Guide for The Snort Expert"
2016 SuriCon talk.

8 years agobug 2113: unix-socket start up race 2714/head
Victor Julien [Tue, 16 May 2017 07:39:02 +0000 (09:39 +0200)] 
bug 2113: unix-socket start up race

8 years agoapp-layer: optimize many-tx case 2712/head
Victor Julien [Fri, 12 May 2017 23:10:20 +0000 (01:10 +0200)] 
app-layer: optimize many-tx case

8 years agooutput: tx logging optimizations
Victor Julien [Sat, 11 Feb 2017 20:43:30 +0000 (21:43 +0100)] 
output: tx logging optimizations

8 years agotests: update tests for app-layer changes
Victor Julien [Sat, 11 Feb 2017 18:08:58 +0000 (19:08 +0100)] 
tests: update tests for app-layer changes

8 years agoapp-layer API optimizations and cleanups
Victor Julien [Sat, 11 Feb 2017 12:02:53 +0000 (13:02 +0100)] 
app-layer API optimizations and cleanups

8 years agofile: fix pruning for parallel files
Victor Julien [Sun, 14 May 2017 08:00:35 +0000 (10:00 +0200)] 
file: fix pruning for parallel files

Allow pruning of random files, not just list head.

8 years agofile: fix storing parallel files
Victor Julien [Fri, 12 May 2017 11:00:27 +0000 (13:00 +0200)] 
file: fix storing parallel files

When looping available files 'flags' misuse would lead to all files
being closed after the first close.

This patch separates per file and per call flags.

8 years agofile: update loops to account for parallel files 2705/head
Victor Julien [Mon, 6 Feb 2017 08:46:08 +0000 (09:46 +0100)] 
file: update loops to account for parallel files