dns: fix protocol yaml setting

UDP code would accidentally depend on 'tcp' setting.
http: per tx decoder events

Store HTTP decoder events per TX, so they can be inspected per TX.

Ticket: #839.
app-layer: fix AppLayerParserProtocolIsTxEventAware

AppLayerParserProtocolIsTxEventAware would check if a proto is tx
event aware by checking if it had registered a StateHasEvents function.
However, this is an optimization function. This patch changes it to
use the StateGetEvents function instead, which is a better indicator.
af-packet: get vlan id from header

Since kernel 3.8, the VLAN header are stripped from packet. So the
first VLAN id can only be fetched from the tpacket header at capture
time.
af-packet: handle vlan counter

This patch adds a vlan counter increment in decodeAFP. This
is needed to take into account vlan_id set by the packet
reading function.
af-packet: improve VLAN detection

Since commit in kernel
  commit a3bcc23e890a6d49d6763d9eb073d711de2e0469
  Author: Ben Greear <greearb@candelatech.com>
  Date:   Wed Jun 1 06:49:10 2011 +0000

      af-packet: Add flag to distinguish VID 0 from no-vlan.
a flag is set to indicate VLAN has been set in packet header.

As suggested in commit message, using a test of the flag followed
by a check on vci value ensure backward compatibility of the test.
Add new function to work on kernel version.

This patch adds a new file containing a function that can be used
to compare the version number of the running kernel with a specific
version.
af-packet: no VLAN id from msg header for old kernel

This patch uses the new function SCKernelVersionIsAtLeast to know
that we've got a old kernel that do not strip the VLAN header from
the message before sending it to userspace.
CUDA: Fix header file resolution issues.
Fix CUDA test warning.
Remove extra ] configure.ac for HAVE_DETECT_DISABLED

Saw a warning about unknow command ']' running distcheck and tracked it back
to this error.
Don't alert on valid ICMP6 solicit/advert messages.

Handles ND_ROUTER_SOLICIT, ND_ROUTER_ADVERT, ND_NEIGHBOUR_ADMIN,
ND_NEIGHBOUR_SOLICIT and ND_REDIRECT.  Don't set ICMPV6_UNKONWN_CODE
if code is the expected value of 0.
radix: don't modify node prefix on lookup

The radix tree stores user data. However, it had no function to return
this data to the consumers of the API. Instead, on lookup, it would
set a field "user_data_result" in the nodes prefix structure which
could then be read by the caller.

Apart for this not being a very nice design as it exposes API internals
to the caller, it is not thread safe. By updating the global data
structure without any form (or suggestion) of locking, threads could
overwrite the same field unexpectedly.

This patch modifies the lookup logic to get rid of this stored
user_data_result. Instead, all the lookup functions how take an
addition argument: void **user_data_result.

Through this pointer the user data is returned. It's allowed to be
NULL, in this case the user data is ignored.

This is a significant API change, that affects a lot of tests and
callers. These will be updated in follow up patches.

Bug #1073.
radix: update tests after API change

This patch updates all the radix tests to the new API. In most cases
it just passes a NULL user data return pointer.

It also removes the tests related to SC_RADIX_NODE_USERDATA, as this
macro is removed.

Bug #1073
radix: update HTP config lookup logic

The HTP config tree is a radix. The lookups are updated to the new API.
The return of user_data is treated as a succesful lookup, instead of
the node itself.
defrag: update radix usage

Update defrag timeout lookup to use the updated radix API.

The return of user_data is treated as a succesful lookup, instead of
the node.
unused reputation: radix update

Update the unused reputation code to compile after radix update.
host-os-info: update radix lookups

Update host OS lookups to use the new API.

The return of user_data is treated as a succesful lookup, instead of
the node.
detect ip-only: update radix usage

Update IP-only lookups to the changed radix API.

The return of user_data is treated as a succesful lookup, instead of
the node.
debug-validation: fix packet check

On fragments and invalid packets we can have p->proto set, while the
matching protocol header pointer is null.