suricata
|
#include "suricata-common.h"
#include "decode.h"
#include "detect.h"
#include "flow-var.h"
#include "util-cidr.h"
#include "util-unittest.h"
#include "detect-engine-address.h"
#include "detect-engine-address-ipv4.h"
#include "detect-engine-siggroup.h"
#include "detect-engine-port.h"
#include "util-error.h"
#include "util-debug.h"
Go to the source code of this file.
Functions | |
int | DetectAddressCmpIPv4 (DetectAddress *a, DetectAddress *b) |
Compares 2 addresses(address ranges) and returns the relationship between the 2 addresses. More... | |
int | DetectAddressCutIPv4 (DetectEngineCtx *de_ctx, DetectAddress *a, DetectAddress *b, DetectAddress **c) |
Cut groups and merge sigs. More... | |
int | DetectAddressIsCompleteIPSpaceIPv4 (DetectAddress *ag) |
Check if the address group list covers the complete IPv4 IP space. More... | |
int | DetectAddressCutNotIPv4 (DetectAddress *a, DetectAddress **b) |
Cuts and returns an address range, which is the complement of the address range that is supplied as the argument. More... | |
void | DetectAddressIPv4Tests (void) |
IPV4 Address part of the detection engine.
Definition in file detect-engine-address-ipv4.c.
int DetectAddressCmpIPv4 | ( | DetectAddress * | a, |
DetectAddress * | b | ||
) |
Compares 2 addresses(address ranges) and returns the relationship between the 2 addresses.
a | Pointer to the first address instance to be compared. |
b | Pointer to the second address instance to be compared. |
ADDRESS_EQ | If the 2 address ranges a and b, are equal. |
ADDRESS_ES | b encapsulates a. b_ip1[...a_ip1...a_ip2...]b_ip2. |
ADDRESS_EB | a encapsulates b. a_ip1[...b_ip1....b_ip2...]a_ip2. |
ADDRESS_LE | a_ip1(...b_ip1==a_ip2...)b_ip2 |
ADDRESS_LT | a_ip1(...b_ip1...a_ip2...)b_ip2 |
ADDRESS_GE | b_ip1(...a_ip1==b_ip2...)a_ip2 |
ADDRESS_GT | a_ip1 > b_ip2, i.e. the address range for 'a' starts only after the end of the address range for 'b' |
Definition at line 59 of file detect-engine-address-ipv4.c.
References ADDRESS_EB, ADDRESS_EQ, ADDRESS_ER, ADDRESS_ES, ADDRESS_GE, ADDRESS_GT, ADDRESS_LE, ADDRESS_LT, DetectAddress_::ip, DetectAddress_::ip2, SCLogDebug, and SCNtohl.
Referenced by DetectAddressCmp(), and DetectAddressCutIPv4().
int DetectAddressCutIPv4 | ( | DetectEngineCtx * | de_ctx, |
DetectAddress * | a, | ||
DetectAddress * | b, | ||
DetectAddress ** | c | ||
) |
Cut groups and merge sigs.
a = 1.2.3.4, b = 1.2.3.4-1.2.3.5 must result in: a == 1.2.3.4, b == 1.2.3.5, c == NULL a = 1.2.3.4, b = 1.2.3.3-1.2.3.5 must result in: a == 1.2.3.3, b == 1.2.3.4, c == 1.2.3.5 a = 1.2.3.0/24 b = 1.2.3.128-1.2.4.10 must result in: a == 1.2.3.0/24, b == 1.2.4.0-1.2.4.10, c == NULL a = 1.2.3.4, b = 1.2.3.0/24 must result in: a == 1.2.3.0-1.2.3.3, b == 1.2.3.4, c == 1.2.3.5-1.2.3.255
0 | On success. |
-1 | On failure. |
Definition at line 113 of file detect-engine-address-ipv4.c.
References ADDRESS_EB, ADDRESS_ES, ADDRESS_GE, ADDRESS_LE, DetectAddressCmpIPv4(), DetectAddressFree(), DetectAddressInit(), Address_::family, DetectAddress_::ip, DetectAddress_::ip2, SCLogDebug, and SCNtohl.
int DetectAddressCutNotIPv4 | ( | DetectAddress * | a, |
DetectAddress ** | b | ||
) |
Cuts and returns an address range, which is the complement of the address range that is supplied as the argument.
For example:
If a = 0.0.0.0-1.2.3.4, then a = 1.2.3.4-255.255.255.255 and b = NULL If a = 1.2.3.4-255.255.255.255, then a = 0.0.0.0-1.2.3.4 and b = NULL If a = 1.2.3.4-192.168.1.1, then a = 0.0.0.0-1.2.3.3 and b = 192.168.1.2-255.255.255.255
a | Pointer to an address range (DetectAddress) instance whose complement has to be returned in a and b. |
b | Pointer to DetectAddress pointer, that will be supplied back with a new DetectAddress instance, if the complement demands so. |
0 | On success. |
-1 | On failure. |
Definition at line 368 of file detect-engine-address-ipv4.c.
References DetectAddressInit(), Address_::family, DetectAddress_::ip, DetectAddress_::ip2, and SCNtohl.
void DetectAddressIPv4Tests | ( | void | ) |
Definition at line 1008 of file detect-engine-address-ipv4.c.
References UtRegisterTest().
int DetectAddressIsCompleteIPSpaceIPv4 | ( | DetectAddress * | ag | ) |
Check if the address group list covers the complete IPv4 IP space.
ag | Pointer to a DetectAddress list head, which has to be checked to see if the address ranges in it, cover the entire IPv4 IP space. |
1 | Yes, it covers the entire IPv4 address range. |
0 | No, it doesn't cover the entire IPv4 address range. |
Definition at line 314 of file detect-engine-address-ipv4.c.
References DetectAddress_::ip, DetectAddress_::ip2, DetectAddress_::next, and SCNtohl.