THashDataUnlock(d);
}
+void DatajsonUnlockElt(DataJsonResultType *r)
+{
+ if (r->hashdata) {
+ DatajsonUnlockData(r->hashdata);
+ }
+}
+
/* return true if number is a float or an integer */
static bool IsFloat(const char *in, size_t ins)
{
StringType *found = rdata->data;
rrep.found = true;
rrep.json = found->json;
- DatajsonUnlockData(rdata);
+ rrep.hashdata = rdata;
return rrep;
}
return rrep;
Md5Type *found = rdata->data;
rrep.found = true;
rrep.json = found->json;
- DatajsonUnlockData(rdata);
+ rrep.hashdata = rdata;
return rrep;
}
return rrep;
Sha256Type *found = rdata->data;
rrep.found = true;
rrep.json = found->json;
- DatajsonUnlockData(rdata);
+ rrep.hashdata = rdata;
return rrep;
}
return rrep;
IPv4Type *found = rdata->data;
rrep.found = true;
rrep.json = found->json;
- DatajsonUnlockData(rdata);
+ rrep.hashdata = rdata;
return rrep;
}
return rrep;
IPv6Type *found = rdata->data;
rrep.found = true;
rrep.json = found->json;
- DatajsonUnlockData(rdata);
+ rrep.hashdata = rdata;
return rrep;
}
return rrep;
typedef struct DataJsonResultType {
bool found;
DataJsonType json;
+ THashData *hashdata;
} DataJsonResultType;
/* Common functions */
int DatajsonAddSerialized(Dataset *set, const char *value, const char *json);
+void DatajsonUnlockElt(DataJsonResultType *r);
+
#endif /* SURICATA_DATAJSON_H*/