]> git.ipfire.org Git - thirdparty/suricata.git/log
thirdparty/suricata.git
6 years agoflow-hash: new function to get flow from flowkey
Eric Leblond [Sun, 3 Mar 2019 23:10:54 +0000 (00:10 +0100)] 
flow-hash: new function to get flow from flowkey

6 years agoebpf: make table iterator generic
Eric Leblond [Sun, 3 Mar 2019 20:06:53 +0000 (21:06 +0100)] 
ebpf: make table iterator generic

Also adds a basic skeleton for flow creation loop.

6 years agoaf-packet: bypass with init function
Eric Leblond [Sun, 3 Mar 2019 19:42:06 +0000 (20:42 +0100)] 
af-packet: bypass with init function

6 years agoebpf: fix indentation in xdp_filter
Eric Leblond [Sat, 2 Mar 2019 22:21:05 +0000 (23:21 +0100)] 
ebpf: fix indentation in xdp_filter

6 years agoutil-ebpf: fix iteration in flow timeout
Eric Leblond [Sat, 2 Mar 2019 21:26:12 +0000 (22:26 +0100)] 
util-ebpf: fix iteration in flow timeout

We were not setting the key using the correct item in map. Result
was deletion of wrong flow.

6 years agoebpf: set number of RSS queues to a power of 2
Eric Leblond [Mon, 25 Feb 2019 22:54:11 +0000 (23:54 +0100)] 
ebpf: set number of RSS queues to a power of 2

This is needed as netronome can not do a division (so can't do a modulo)
in hardware.

6 years agodoc: use github mirror to setup libbpf
Eric Leblond [Mon, 25 Feb 2019 21:11:27 +0000 (22:11 +0100)] 
doc: use github mirror to setup libbpf

6 years agoebpf: implement RSS load balancing in hardware mode
Eric Leblond [Mon, 25 Feb 2019 13:18:02 +0000 (14:18 +0100)] 
ebpf: implement RSS load balancing in hardware mode

6 years agoebpf: use atomic for counter in hw offload case
Eric Leblond [Mon, 25 Feb 2019 12:27:20 +0000 (13:27 +0100)] 
ebpf: use atomic for counter in hw offload case

6 years agoaf-packet: correctly set up hardware offload
Eric Leblond [Sun, 24 Feb 2019 22:57:04 +0000 (23:57 +0100)] 
af-packet: correctly set up hardware offload

6 years agoebpf: more conditional code for netronome support
Eric Leblond [Sun, 24 Feb 2019 22:51:04 +0000 (23:51 +0100)] 
ebpf: more conditional code for netronome support

6 years agoebpf: remove BPF_LL_OFF in nhoff offset
Eric Leblond [Thu, 14 Feb 2019 11:54:32 +0000 (12:54 +0100)] 
ebpf: remove BPF_LL_OFF in nhoff offset

It fixes invalid parsing in with recent kernels and does
not affect older kernels.

6 years agoaf-packet: fix loading of ebpf filter
Eric Leblond [Wed, 13 Feb 2019 15:11:53 +0000 (16:11 +0100)] 
af-packet: fix loading of ebpf filter

6 years agoebpf: sync header with upstream
Eric Leblond [Wed, 13 Feb 2019 14:40:37 +0000 (15:40 +0100)] 
ebpf: sync header with upstream

6 years agodoc: typo fixes on ebpf doc
Eric Leblond [Wed, 13 Feb 2019 08:10:02 +0000 (09:10 +0100)] 
doc: typo fixes on ebpf doc

6 years agoaf-packet: fix the start when XDP is pinned
Eric Leblond [Sun, 10 Feb 2019 22:31:32 +0000 (23:31 +0100)] 
af-packet: fix the start when XDP is pinned

6 years agoutil-ebpf: change return of pinned maps loading
Eric Leblond [Sun, 10 Feb 2019 22:30:00 +0000 (23:30 +0100)] 
util-ebpf: change return of pinned maps loading

The calling function needs to be able to see when this is a success
and XDP do not need to be reloaded.

6 years agodoc: document externally managed global switch
Eric Leblond [Sun, 20 Jan 2019 21:29:18 +0000 (22:29 +0100)] 
doc: document externally managed global switch

This is currently implemented as an exposed map and it seems
a good way to do it.

6 years agoutil-ebpf: conditional flow table loading
Eric Leblond [Sun, 20 Jan 2019 20:49:11 +0000 (21:49 +0100)] 
util-ebpf: conditional flow table loading

6 years agoebpf: implement global switch bypass
Eric Leblond [Sun, 20 Jan 2019 19:29:46 +0000 (20:29 +0100)] 
ebpf: implement global switch bypass

Add a switch to allow to bypass all traffic if the switch is on.
Concept is to use a persistant script and pinned maps, so an
external tool can be used to trigger global bypass in case Suricata
is dead.

6 years agoaf-packet: implement pinned-maps-name
Eric Leblond [Sun, 20 Jan 2019 18:53:09 +0000 (19:53 +0100)] 
af-packet: implement pinned-maps-name

6 years agoaf-packet: fix build when eBPF not built-in
Eric Leblond [Sat, 19 Jan 2019 16:33:46 +0000 (17:33 +0100)] 
af-packet: fix build when eBPF not built-in

6 years agoutil-ebpf: implement pinned maps loading
Eric Leblond [Sun, 9 Dec 2018 22:22:08 +0000 (23:22 +0100)] 
util-ebpf: implement pinned maps loading

Load flow tables at start if asked to.

6 years agoutil-ebpf: only unlink pinned maps in eBPF filter
Eric Leblond [Sun, 9 Dec 2018 20:11:27 +0000 (21:11 +0100)] 
util-ebpf: only unlink pinned maps in eBPF filter

6 years agoaf-packet: conditionaly remove XDP filter
Eric Leblond [Sun, 9 Dec 2018 19:34:28 +0000 (20:34 +0100)] 
af-packet: conditionaly remove XDP filter

Only remove the XDP filter if we are in XDP mode and not using the
pinned maps.

6 years agodoc: white space and typo fix
Eric Leblond [Sun, 9 Dec 2018 19:24:36 +0000 (20:24 +0100)] 
doc: white space and typo fix

6 years agoutil-ebpf: conditional pinning of maps
Eric Leblond [Sun, 9 Dec 2018 19:03:31 +0000 (20:03 +0100)] 
util-ebpf: conditional pinning of maps

Only pin maps if `pinned-maps` is set in the configuration. This
ensure backward compatibility.

6 years agodoc: more eBPF and XDP capabilities
Eric Leblond [Sun, 9 Dec 2018 12:08:53 +0000 (13:08 +0100)] 
doc: more eBPF and XDP capabilities

6 years agoutil-ebpf: fix loop on maps
Eric Leblond [Sat, 8 Dec 2018 07:21:44 +0000 (08:21 +0100)] 
util-ebpf: fix loop on maps

We were missing the last element of the map by working on previous
key instead of current key.

6 years agoutil-ebpf: suppress spaces at end of line
Eric Leblond [Fri, 7 Dec 2018 15:41:31 +0000 (16:41 +0100)] 
util-ebpf: suppress spaces at end of line

6 years agoebpf: add filter by maps on example filter
Eric Leblond [Thu, 29 Nov 2018 17:18:52 +0000 (18:18 +0100)] 
ebpf: add filter by maps on example filter

6 years agoutil-ebpf: pin the maps
Eric Leblond [Wed, 14 Nov 2018 21:14:49 +0000 (22:14 +0100)] 
util-ebpf: pin the maps

By pinning the maps we are creating a file in /sys/fs/bpf that can
be used by external program to access the map. This has multiple
benefits such as handling list from an external program.

The pinned maps could be persistent accross Suricata reload but
this can be complicated in term of handling everything in the life
of Suricata.

6 years agoebpf: document XDP iface redirect
Eric Leblond [Sun, 7 Oct 2018 18:46:45 +0000 (20:46 +0200)] 
ebpf: document XDP iface redirect

6 years agoebpf: reduce counter size to allow netronome offload
Eric Leblond [Sun, 7 Oct 2018 18:07:56 +0000 (20:07 +0200)] 
ebpf: reduce counter size to allow netronome offload

6 years agoebpf: add VLAN support to loadbalancing
Eric Leblond [Tue, 25 Sep 2018 11:13:36 +0000 (13:13 +0200)] 
ebpf: add VLAN support to loadbalancing

This patchs adds VLAN support to eBPF load balancing by doing a
parsing of VLAN headers.

6 years agoebpf: change the logic to avoid ktime usage
Eric Leblond [Fri, 25 May 2018 15:05:17 +0000 (17:05 +0200)] 
ebpf: change the logic to avoid ktime usage

Kernel time is not available (and/or costly) on NIC such as
Netronome so we update the logic to detect dead flows based on a
lack of update of packets counters. This way, the XDP filter will
be usable by network card.

This patch also updates the ebpf code to support per CPU and
regular mapping. Netronome is not supporting it and the structure
is using atomic for counter so the cost of simultaneous update
is really low.

This patch also updates the xdp_filter to be able to select if the
flow table is per CPU on shared. Second option will be used for
hardward offload. To deactivate the per cpu hash, you need to set
USE_PERCPU_HASH to 0.

This patch also adds an new option to af-packet named no-percpu-hash
If this option is set to yes then the Flow bypassed manager thread
will use one CPU instead of the number of cores. By doing that
we are able to handle the case where USE_PERCPU_HASH is unset (so
hardware offload for Netronome).

This patch also remove aligment indications in the eBPF filter. This
was not really needed and it seems it is causing problem with
some recent version of LLVM toolchain.

6 years agoflow-manager: no force reassembly on bypassed flow
Eric Leblond [Sat, 14 Jul 2018 20:37:03 +0000 (22:37 +0200)] 
flow-manager: no force reassembly on bypassed flow

When a bypassed flow is created we are forcing the reassembly so
we don't need to do it again when it timeout.

6 years agosuricata.yaml: fix path to ebpf and xdp doc
Eric Leblond [Thu, 12 Jul 2018 19:13:00 +0000 (21:13 +0200)] 
suricata.yaml: fix path to ebpf and xdp doc

6 years agodetect/content: Message for escaping backslash
Shivani Bhardwaj [Fri, 7 Jun 2019 14:12:58 +0000 (19:42 +0530)] 
detect/content: Message for escaping backslash

So far, if the rule loaded had a backslash character ("\") in its
content field, the rule will fail to load but without giving a
descriptive error message. This patch tells the user to escape the
troubling character.

Before
```
9409] 7/6/2019 -- 16:12:22 - (detect-engine-loader.c:184) <Error> (DetectLoadSigFile) -- [ERRCODE: SC_ERR_INVALID_SIGNATURE(39)] - error parsing signature "alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"Backslash needs escaping msg"; flow:established,to_server; content:"MyBackslash\here"; sid:86; rev:1; )" from file /var/lib/suricata/rules/myrule.rules at line 1
```

After
```
[9409] 7/6/2019 -- 16:12:22 - (detect-content.c:155) <Error> (DetectContentDataParse) -- [ERRCODE: SC_ERR_INVALID_SIGNATURE(39)] - '\' has to be escaped
[9409] 7/6/2019 -- 16:12:22 - (detect-engine-loader.c:184) <Error> (DetectLoadSigFile) -- [ERRCODE: SC_ERR_INVALID_SIGNATURE(39)] - error parsing signature "alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"Backslash needs escaping msg"; flow:established,to_server; content:"MyBackslash\here"; sid:86; rev:1; )" from file /var/lib/suricata/rules/myrule.rules at line 1
```

Closes redmine ticket #2626

6 years agodoc: convert fancy quotes to straight quotes
Andreas Herz [Fri, 31 May 2019 21:02:24 +0000 (23:02 +0200)] 
doc: convert fancy quotes to straight quotes

6 years agothreads: minor code cleanups
Victor Julien [Wed, 12 Jun 2019 07:57:02 +0000 (09:57 +0200)] 
threads: minor code cleanups

6 years agothreads: improve flow timeout loop
Victor Julien [Wed, 12 Jun 2019 07:56:26 +0000 (09:56 +0200)] 
threads: improve flow timeout loop

Improve thread safety and remove BUG_ON

6 years agostats: walk tv_root under lock
Victor Julien [Wed, 12 Jun 2019 05:45:38 +0000 (07:45 +0200)] 
stats: walk tv_root under lock

6 years agostats: more accurate time handling for wakeup thread
Victor Julien [Wed, 12 Jun 2019 05:34:21 +0000 (07:34 +0200)] 
stats: more accurate time handling for wakeup thread

6 years agostats: minor code cleanups
Victor Julien [Wed, 12 Jun 2019 05:33:17 +0000 (07:33 +0200)] 
stats: minor code cleanups

6 years agomake: Remove rust generated headers during clean 3947/head
Jeff Lucovsky [Sat, 15 Jun 2019 17:57:15 +0000 (13:57 -0400)] 
make: Remove rust generated headers during clean

6 years agoNew app layer event for invalid http request line 3935/head
Philippe Antoine [Tue, 5 Mar 2019 13:08:01 +0000 (14:08 +0100)] 
New app layer event for invalid http request line

Handles logs from libhtp even if case of error

6 years agosignature: error for rules with illegal port
Philippe Antoine [Thu, 6 Jun 2019 13:42:47 +0000 (15:42 +0200)] 
signature: error for rules with illegal port

Fixes #2080

6 years agowarnings: fixes integer sizes in format strings
Philippe Antoine [Tue, 4 Jun 2019 09:27:04 +0000 (11:27 +0200)] 
warnings: fixes integer sizes in format strings

Fixes #3009

6 years agohttp: adds unit tests for HTPParseContentRange
Philippe Antoine [Mon, 3 Jun 2019 07:22:07 +0000 (09:22 +0200)] 
http: adds unit tests for HTPParseContentRange

6 years agohttp: fix overflow in HTPParseContentRange
Philippe Antoine [Wed, 29 May 2019 19:21:03 +0000 (21:21 +0200)] 
http: fix overflow in HTPParseContentRange

6 years agorust/snmp: fix libc deprecation warnings for int types 3926/head
Pierre Chifflier [Thu, 6 Jun 2019 08:24:20 +0000 (10:24 +0200)] 
rust/snmp: fix libc deprecation warnings for int types

6 years agorust/snmp: use snake_case when logging PDU types
Pierre Chifflier [Thu, 6 Jun 2019 08:06:03 +0000 (10:06 +0200)] 
rust/snmp: use snake_case when logging PDU types

6 years agosnmp: fix 'defined but not used' warning
Victor Julien [Thu, 23 May 2019 04:49:23 +0000 (06:49 +0200)] 
snmp: fix 'defined but not used' warning

Remove HAVE_RUST guards as well.

6 years agosnmp.version: move unittests to tests/
Pierre Chifflier [Wed, 22 May 2019 14:59:55 +0000 (16:59 +0200)] 
snmp.version: move unittests to tests/

6 years agosnmp.pdu_type: move unittests to tests/
Pierre Chifflier [Wed, 22 May 2019 14:55:59 +0000 (16:55 +0200)] 
snmp.pdu_type: move unittests to tests/

6 years agosnmp.community: move unittests to tests/
Pierre Chifflier [Wed, 22 May 2019 12:45:21 +0000 (14:45 +0200)] 
snmp.community: move unittests to tests/

6 years agodetect/snmp: convert snmp.community keyword to v2, and MPM
Pierre Chifflier [Wed, 22 May 2019 12:38:34 +0000 (14:38 +0200)] 
detect/snmp: convert snmp.community keyword to v2, and MPM

6 years agorust/snmp: fix missing IPPROTO_* declarations (use core)
Pierre Chifflier [Tue, 21 May 2019 19:10:02 +0000 (21:10 +0200)] 
rust/snmp: fix missing IPPROTO_* declarations (use core)

6 years agodetect/snmp: rename keywords to snmp.<name>, and make rust mandatory
Pierre Chifflier [Mon, 13 May 2019 12:14:48 +0000 (14:14 +0200)] 
detect/snmp: rename keywords to snmp.<name>, and make rust mandatory

6 years agorust/snmp: fix selection of v1/v2c parser
Pierre Chifflier [Thu, 14 Feb 2019 16:11:50 +0000 (17:11 +0100)] 
rust/snmp: fix selection of v1/v2c parser

6 years agoSNMP: add the "snmp.pdu_type" detection keyword
Pierre Chifflier [Tue, 11 Dec 2018 16:21:44 +0000 (17:21 +0100)] 
SNMP: add the "snmp.pdu_type" detection keyword

6 years agoSNMP: add the "snmp.community" detection keyword
Pierre Chifflier [Tue, 11 Dec 2018 07:54:17 +0000 (08:54 +0100)] 
SNMP: add the "snmp.community" detection keyword

6 years agoSNMP: add the "snmp.version" detection keyword
Pierre Chifflier [Mon, 10 Dec 2018 12:48:00 +0000 (13:48 +0100)] 
SNMP: add the "snmp.version" detection keyword

6 years agoSNMP: add missing case for profiling enum
Pierre Chifflier [Wed, 5 Dec 2018 08:46:16 +0000 (09:46 +0100)] 
SNMP: add missing case for profiling enum

6 years agoSNMP: use explicit references to support build with old rust compiler
Pierre Chifflier [Tue, 4 Dec 2018 16:40:28 +0000 (17:40 +0100)] 
SNMP: use explicit references to support build with old rust compiler

6 years agoSNMP: start looking for transactions from end of list
Pierre Chifflier [Mon, 8 Oct 2018 08:37:01 +0000 (10:37 +0200)] 
SNMP: start looking for transactions from end of list

6 years agoSNMP: add logger
Pierre Chifflier [Mon, 8 Oct 2018 08:36:39 +0000 (10:36 +0200)] 
SNMP: add logger

6 years agoAdd SNMP (v1/v2c/v3) application layer
Pierre Chifflier [Wed, 8 Aug 2018 13:35:31 +0000 (15:35 +0200)] 
Add SNMP (v1/v2c/v3) application layer

6 years agoRust: expose function AppLayerParserRegisterGetTxIterator
Pierre Chifflier [Sat, 21 Apr 2018 14:05:33 +0000 (16:05 +0200)] 
Rust: expose function AppLayerParserRegisterGetTxIterator

6 years agorust: fix warnings about wrong type of comments 3906/head
Victor Julien [Mon, 3 Jun 2019 07:47:23 +0000 (09:47 +0200)] 
rust: fix warnings about wrong type of comments

"rustdoc does not generate documentation for macro expansions"

6 years agorust: fix libc deprecation warnings for int types
Victor Julien [Mon, 3 Jun 2019 07:40:57 +0000 (09:40 +0200)] 
rust: fix libc deprecation warnings for int types

6 years agoikev2: clean up c glue code
Victor Julien [Fri, 31 May 2019 12:10:46 +0000 (14:10 +0200)] 
ikev2: clean up c glue code

6 years agotftp: c glue code cleanup
Victor Julien [Thu, 30 May 2019 19:54:28 +0000 (21:54 +0200)] 
tftp: c glue code cleanup

6 years agoikev2: remove excess new lines
Victor Julien [Thu, 30 May 2019 18:21:01 +0000 (20:21 +0200)] 
ikev2: remove excess new lines

6 years agotftp: properly implement tx handling
Victor Julien [Thu, 30 May 2019 18:20:33 +0000 (20:20 +0200)] 
tftp: properly implement tx handling

6 years agooutput: get rid of BUG_ONs
Victor Julien [Thu, 30 May 2019 08:24:10 +0000 (10:24 +0200)] 
output: get rid of BUG_ONs

6 years agopool: don't call Cleanup after failed Init 3898/head
Victor Julien [Tue, 28 May 2019 13:45:37 +0000 (15:45 +0200)] 
pool: don't call Cleanup after failed Init

Stream reassembly memcap is regulated by the Init and Cleanup
callbacks. If Init fails due to memcap reached, Cleanup had no
way of knowing and it would decrease the memcap even if it hadn't
been increased by Init. This could lead to too much memory use and
memcap counter underflow.

This patch fixes the issue by not calling Cleanup in this case. It's
fair to see a failed Init the responsibility of Init.

6 years agopool/thread: clean up tests
Victor Julien [Tue, 28 May 2019 13:32:27 +0000 (15:32 +0200)] 
pool/thread: clean up tests

6 years agopool/thread: remove old grow function
Victor Julien [Tue, 28 May 2019 13:21:25 +0000 (15:21 +0200)] 
pool/thread: remove old grow function

6 years agostream: simplify segment and ssn pool inits
Victor Julien [Tue, 28 May 2019 13:16:50 +0000 (15:16 +0200)] 
stream: simplify segment and ssn pool inits

6 years agopool/thread: introduce simpler way to grow thread pool
Victor Julien [Tue, 28 May 2019 13:14:20 +0000 (15:14 +0200)] 
pool/thread: introduce simpler way to grow thread pool

6 years agopool/thread: minor code cleanups
Victor Julien [Tue, 28 May 2019 13:01:41 +0000 (15:01 +0200)] 
pool/thread: minor code cleanups

6 years agoapp-layer: minor cleanups
Victor Julien [Mon, 27 May 2019 19:47:04 +0000 (21:47 +0200)] 
app-layer: minor cleanups

6 years agocapture: check for flow packets on capture timeout
Victor Julien [Mon, 27 May 2019 13:46:18 +0000 (15:46 +0200)] 
capture: check for flow packets on capture timeout

The capture threads can receive packets from the flow manager in their
Threadvars::stream_pq packet queue. This mechanism makes sure the packets
the flow manager injects into the engine are processed by the correct
worker thread.

If the capture thread(s) would not receive packets for a long time, the
Threadvars::stream_pq would not be checked and processed. This could
lead to packet pool depletion in the flow manager. It would also lead
to flows not being timed out/logged until either packets started flowing
again or until the engine was shut down.

The scenario is more likely to happen in a test (e.g. replay) but could
also delay logging on low traffic sensors.

6 years agoapp-layer: mandatory tx registration checks
Victor Julien [Sun, 26 May 2019 19:09:05 +0000 (21:09 +0200)] 
app-layer: mandatory tx registration checks

All protocols now implement the TX API, so the runtime checks for
whether or not a protocol supports the TX API can be removed.

6 years agoapp-layer: make tests tx aware
Victor Julien [Mon, 27 May 2019 07:46:41 +0000 (09:46 +0200)] 
app-layer: make tests tx aware

Make tests minimally TX-aware so we can asume all parsers use
the tx API.

6 years agossh: test cleanup
Victor Julien [Mon, 27 May 2019 07:38:55 +0000 (09:38 +0200)] 
ssh: test cleanup

Remove explicit locks. Set ALPROTO_SSH in all tests.

6 years agopacketpool: move return stack to pool earlier
Victor Julien [Sat, 25 May 2019 18:56:27 +0000 (20:56 +0200)] 
packetpool: move return stack to pool earlier

If waiting for N packets move the return stack to the main
stack every time we take the return stack lock.

Make sure we consider enough packets when setting the pending pool
flush logic. This should at least make sure to have the 9 packets
the flow manager requires per run.

6 years agodetect/content: clean up logging output 3896/head
jason taylor [Wed, 15 May 2019 18:03:29 +0000 (14:03 -0400)] 
detect/content: clean up logging output

Signed-off-by: jason taylor <jtfas90@gmail.com>
6 years agosuricatasc: fix reconnect
Eric Leblond [Mon, 27 May 2019 09:12:10 +0000 (11:12 +0200)] 
suricatasc: fix reconnect

6 years agodoc: http keyword update
Jeff Lucovsky [Wed, 22 May 2019 23:34:32 +0000 (16:34 -0700)] 
doc: http keyword update

This changeset updates the keyword type for http.location and http.server

6 years agodetect/analyzer Add missing HTTP values
Jeff Lucovsky [Tue, 21 May 2019 23:52:41 +0000 (16:52 -0700)] 
detect/analyzer Add missing HTTP values

This changeset adds recognition of missing HTTP values
- Raw host
- Header names
- Server body
- User agent

6 years agosignature: fix memory leak in DetectBytejumpSetup
Philippe Antoine [Mon, 20 May 2019 08:06:25 +0000 (10:06 +0200)] 
signature: fix memory leak in DetectBytejumpSetup

6 years agohttp: adds an event for double encoded uri
Philippe Antoine [Fri, 17 May 2019 11:16:27 +0000 (13:16 +0200)] 
http: adds an event for double encoded uri

6 years agohttp: fixes double-encode configuration keywords
Philippe Antoine [Fri, 17 May 2019 11:08:26 +0000 (13:08 +0200)] 
http: fixes double-encode configuration keywords

6 years agotravis: move checks into script
Victor Julien [Tue, 21 May 2019 09:37:29 +0000 (11:37 +0200)] 
travis: move checks into script

This makes error handling easier and more robust:
https://docs.travis-ci.com/user/job-lifecycle#complex-build-commands

6 years agotravis: add sphinx to trigger doc build
Victor Julien [Tue, 21 May 2019 08:08:19 +0000 (10:08 +0200)] 
travis: add sphinx to trigger doc build

6 years agoja3s-string: move unittests to tests/ 3874/head
Mats Klepsland [Mon, 13 May 2019 11:32:11 +0000 (13:32 +0200)] 
ja3s-string: move unittests to tests/

6 years agoja3s-hash: move unittests to tests/
Mats Klepsland [Mon, 13 May 2019 11:27:35 +0000 (13:27 +0200)] 
ja3s-hash: move unittests to tests/