|
|
|
@ -808,6 +808,55 @@ TmEcode UnixSocketDatasetClear(json_t *cmd, json_t *answer, void *data)
|
|
|
|
|
return TM_ECODE_OK;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TmEcode UnixSocketDatasetLookup(json_t *cmd, json_t *answer, void *data)
|
|
|
|
|
{
|
|
|
|
|
/* 1 get dataset name */
|
|
|
|
|
json_t *narg = json_object_get(cmd, "setname");
|
|
|
|
|
if (!json_is_string(narg)) {
|
|
|
|
|
json_object_set_new(answer, "message", json_string("setname is not a string"));
|
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
|
}
|
|
|
|
|
const char *set_name = json_string_value(narg);
|
|
|
|
|
|
|
|
|
|
/* 2 get the data type */
|
|
|
|
|
json_t *targ = json_object_get(cmd, "settype");
|
|
|
|
|
if (!json_is_string(targ)) {
|
|
|
|
|
json_object_set_new(answer, "message", json_string("settype is not a string"));
|
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
|
}
|
|
|
|
|
const char *type = json_string_value(targ);
|
|
|
|
|
|
|
|
|
|
/* 3 get value */
|
|
|
|
|
json_t *varg = json_object_get(cmd, "datavalue");
|
|
|
|
|
if (!json_is_string(varg)) {
|
|
|
|
|
json_object_set_new(answer, "message", json_string("datavalue is not string"));
|
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
|
}
|
|
|
|
|
const char *value = json_string_value(varg);
|
|
|
|
|
|
|
|
|
|
SCLogDebug("dataset-exist: %s type %s value %s", set_name, type, value);
|
|
|
|
|
|
|
|
|
|
enum DatasetTypes t = DatasetGetTypeFromString(type);
|
|
|
|
|
if (t == DATASET_TYPE_NOTSET) {
|
|
|
|
|
json_object_set_new(answer, "message", json_string("unknown settype"));
|
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Dataset *set = DatasetFind(set_name, t);
|
|
|
|
|
if (set == NULL) {
|
|
|
|
|
json_object_set_new(answer, "message", json_string("set not found or wrong type"));
|
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (DatasetLookupSerialized(set, value) > 0) {
|
|
|
|
|
json_object_set_new(answer, "message", json_string("item found in set"));
|
|
|
|
|
return TM_ECODE_OK;
|
|
|
|
|
} else {
|
|
|
|
|
json_object_set_new(answer, "message", json_string("item not found in set"));
|
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* \brief Command to add a tenant handler
|
|
|
|
|
*
|
|
|
|
|