]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
multi-detect: fix and simplify config 1760/head
authorVictor Julien <victor@inliniac.net>
Mon, 23 Nov 2015 16:18:57 +0000 (17:18 +0100)
committerVictor Julien <victor@inliniac.net>
Mon, 23 Nov 2015 16:18:57 +0000 (17:18 +0100)
instead

mappings:
  - vlan:
    vlan-id: 1
    tenant-id: 2

we'll now use:

mappings:
  - vlan-id: 1
    tenant-id: 2

For YAML it pretty much means the same thing.

Ticket: 1517

src/detect-engine.c

index f5b2edf0da6f9de8527277dfc8ca9594b9f63a51..cba76ca3698d14f0e3d4cd9eac364207c6a4e003 100644 (file)
@@ -2099,46 +2099,41 @@ int DetectEngineMultiTenantSetup(void)
         int mapping_cnt = 0;
         if (mappings_root_node != NULL) {
             TAILQ_FOREACH(mapping_node, &mappings_root_node->head, next) {
-                if (strcmp(mapping_node->val, "vlan") == 0) {
-                    ConfNode *tenant_id_node = ConfNodeLookupChild(mapping_node, "tenant-id");
-                    if (tenant_id_node == NULL)
-                        goto bad_mapping;
-                    ConfNode *vlan_id_node = ConfNodeLookupChild(mapping_node, "vlan-id");
-                    if (vlan_id_node == NULL)
-                        goto bad_mapping;
-
-                    uint32_t tenant_id = 0;
-                    if (ByteExtractStringUint32(&tenant_id, 10, strlen(tenant_id_node->val),
-                                tenant_id_node->val) == -1)
-                    {
-                        SCLogError(SC_ERR_INVALID_ARGUMENT, "tenant-id  "
-                                "of %s is invalid", tenant_id_node->val);
-                        goto bad_mapping;
-                    }
+                ConfNode *tenant_id_node = ConfNodeLookupChild(mapping_node, "tenant-id");
+                if (tenant_id_node == NULL)
+                    goto bad_mapping;
+                ConfNode *vlan_id_node = ConfNodeLookupChild(mapping_node, "vlan-id");
+                if (vlan_id_node == NULL)
+                    goto bad_mapping;
 
-                    uint16_t vlan_id = 0;
-                    if (ByteExtractStringUint16(&vlan_id, 10, strlen(vlan_id_node->val),
-                                vlan_id_node->val) == -1)
-                    {
-                        SCLogError(SC_ERR_INVALID_ARGUMENT, "vlan-id  "
-                                "of %s is invalid", vlan_id_node->val);
-                        goto bad_mapping;
-                    }
-                    if (vlan_id == 0 || vlan_id >= 4095) {
-                        SCLogError(SC_ERR_INVALID_ARGUMENT, "vlan-id  "
-                                "of %s is invalid. Valid range 1-4094.", vlan_id_node->val);
-                        goto bad_mapping;
-                    }
+                uint32_t tenant_id = 0;
+                if (ByteExtractStringUint32(&tenant_id, 10, strlen(tenant_id_node->val),
+                            tenant_id_node->val) == -1)
+                {
+                    SCLogError(SC_ERR_INVALID_ARGUMENT, "tenant-id  "
+                            "of %s is invalid", tenant_id_node->val);
+                    goto bad_mapping;
+                }
 
-                    if (DetectEngineTentantRegisterVlanId(tenant_id, (uint32_t)vlan_id) != 0) {
-                        goto error;
-                    }
-                    SCLogInfo("vlan %u connected to tenant-id %u", vlan_id, tenant_id);
-                    mapping_cnt++;
-                } else {
-                    SCLogWarning(SC_ERR_INVALID_VALUE, "multi-detect.mappings expects a list of 'vlan's. Not %s", mapping_node->val);
+                uint16_t vlan_id = 0;
+                if (ByteExtractStringUint16(&vlan_id, 10, strlen(vlan_id_node->val),
+                            vlan_id_node->val) == -1)
+                {
+                    SCLogError(SC_ERR_INVALID_ARGUMENT, "vlan-id  "
+                            "of %s is invalid", vlan_id_node->val);
                     goto bad_mapping;
                 }
+                if (vlan_id == 0 || vlan_id >= 4095) {
+                    SCLogError(SC_ERR_INVALID_ARGUMENT, "vlan-id  "
+                            "of %s is invalid. Valid range 1-4094.", vlan_id_node->val);
+                    goto bad_mapping;
+                }
+
+                if (DetectEngineTentantRegisterVlanId(tenant_id, (uint32_t)vlan_id) != 0) {
+                    goto error;
+                }
+                SCLogInfo("vlan %u connected to tenant-id %u", vlan_id, tenant_id);
+                mapping_cnt++;
                 continue;
 
             bad_mapping:
@@ -2171,10 +2166,6 @@ int DetectEngineMultiTenantSetup(void)
 
         if (tenants_root_node != NULL) {
             TAILQ_FOREACH(tenant_node, &tenants_root_node->head, next) {
-                if (strcmp(tenant_node->val, "tenant") != 0) {
-                    SCLogWarning(SC_ERR_INVALID_VALUE, "multi-detect.tenants expects a list of 'tenant's. Not %s", tenant_node->val);
-                    goto bad_tenant;
-                }
                 ConfNode *id_node = ConfNodeLookupChild(tenant_node, "id");
                 if (id_node == NULL) {
                     goto bad_tenant;