SCFree(ptr);
}
-static void EveCallback(ThreadVars *tv, const Packet *p, Flow *f, JsonBuilder *jb, void *data)
+static void EveCallback(ThreadVars *tv, const Packet *p, Flow *f, SCJsonBuilder *jb, void *data)
{
/* Adding ndpi info to EVE requires a flow. */
if (f == NULL) {
buffer = ndpi_serializer_get_buffer(&serializer, &buffer_len);
/* Inject the nDPI JSON to the JsonBuilder */
- jb_set_formatted(jb, buffer);
+ SCJbSetFormatted(jb, buffer);
ndpi_term_serializer(&serializer);
}
[export.rename]
"JsonT" = "json_t"
"CLuaState" = "lua_State"
+"JsonBuilder" = "SCJsonBuilder"
+"JsonBuilderMark" = "SCJsonBuilderMark"
#
# You get the following results:
}
#[no_mangle]
-pub extern "C" fn jb_new_object() -> *mut JsonBuilder {
+pub extern "C" fn SCJbNewObject() -> *mut JsonBuilder {
match JsonBuilder::try_new_object() {
Ok(js) => {
let boxed = Box::new(js);
}
#[no_mangle]
-pub extern "C" fn jb_new_array() -> *mut JsonBuilder {
+pub extern "C" fn SCJbNewArray() -> *mut JsonBuilder {
match JsonBuilder::try_new_array() {
Ok(js) => {
let boxed = Box::new(js);
}
#[no_mangle]
-pub extern "C" fn jb_clone(js: &mut JsonBuilder) -> *mut JsonBuilder {
+pub extern "C" fn SCJbClone(js: &mut JsonBuilder) -> *mut JsonBuilder {
let clone = Box::new(js.clone());
Box::into_raw(clone)
}
#[no_mangle]
-pub unsafe extern "C" fn jb_free(js: &mut JsonBuilder) {
+pub unsafe extern "C" fn SCJbFree(js: &mut JsonBuilder) {
let _ = Box::from_raw(js);
}
#[no_mangle]
-pub extern "C" fn jb_capacity(jb: &mut JsonBuilder) -> usize {
+pub extern "C" fn SCJbCapacity(jb: &mut JsonBuilder) -> usize {
jb.capacity()
}
#[no_mangle]
-pub extern "C" fn jb_reset(jb: &mut JsonBuilder) {
+pub extern "C" fn SCJbReset(jb: &mut JsonBuilder) {
jb.reset();
}
#[no_mangle]
-pub unsafe extern "C" fn jb_open_object(js: &mut JsonBuilder, key: *const c_char) -> bool {
+pub unsafe extern "C" fn SCJbOpenObject(js: &mut JsonBuilder, key: *const c_char) -> bool {
if let Ok(s) = CStr::from_ptr(key).to_str() {
js.open_object(s).is_ok()
} else {
}
#[no_mangle]
-pub unsafe extern "C" fn jb_start_object(js: &mut JsonBuilder) -> bool {
+pub unsafe extern "C" fn SCJbStartObject(js: &mut JsonBuilder) -> bool {
js.start_object().is_ok()
}
#[no_mangle]
-pub unsafe extern "C" fn jb_open_array(js: &mut JsonBuilder, key: *const c_char) -> bool {
+pub unsafe extern "C" fn SCJbOpenArray(js: &mut JsonBuilder, key: *const c_char) -> bool {
if let Ok(s) = CStr::from_ptr(key).to_str() {
js.open_array(s).is_ok()
} else {
}
#[no_mangle]
-pub unsafe extern "C" fn jb_set_string(
+pub unsafe extern "C" fn SCJbSetString(
js: &mut JsonBuilder, key: *const c_char, val: *const c_char,
) -> bool {
if val.is_null() {
}
#[no_mangle]
-pub unsafe extern "C" fn jb_set_string_from_bytes(
+pub unsafe extern "C" fn SCJbSetStringFromBytes(
js: &mut JsonBuilder, key: *const c_char, bytes: *const u8, len: u32,
) -> bool {
if bytes.is_null() || len == 0 {
}
#[no_mangle]
-pub unsafe extern "C" fn jb_set_base64(
+pub unsafe extern "C" fn SCJbSetBase64(
js: &mut JsonBuilder, key: *const c_char, bytes: *const u8, len: u32,
) -> bool {
if bytes.is_null() || len == 0 {
}
#[no_mangle]
-pub unsafe extern "C" fn jb_set_hex(
+pub unsafe extern "C" fn SCJbSetHex(
js: &mut JsonBuilder, key: *const c_char, bytes: *const u8, len: u32,
) -> bool {
if bytes.is_null() || len == 0 {
}
#[no_mangle]
-pub unsafe extern "C" fn jb_set_formatted(js: &mut JsonBuilder, formatted: *const c_char) -> bool {
+pub unsafe extern "C" fn SCJbSetFormatted(js: &mut JsonBuilder, formatted: *const c_char) -> bool {
if let Ok(formatted) = CStr::from_ptr(formatted).to_str() {
return js.set_formatted(formatted).is_ok();
}
}
#[no_mangle]
-pub unsafe extern "C" fn jb_append_object(jb: &mut JsonBuilder, obj: &JsonBuilder) -> bool {
+pub unsafe extern "C" fn SCJbAppendObject(jb: &mut JsonBuilder, obj: &JsonBuilder) -> bool {
jb.append_object(obj).is_ok()
}
#[no_mangle]
-pub unsafe extern "C" fn jb_set_object(
+pub unsafe extern "C" fn SCJbSetObject(
js: &mut JsonBuilder, key: *const c_char, val: &mut JsonBuilder,
) -> bool {
if let Ok(key) = CStr::from_ptr(key).to_str() {
}
#[no_mangle]
-pub unsafe extern "C" fn jb_append_string(js: &mut JsonBuilder, val: *const c_char) -> bool {
+pub unsafe extern "C" fn SCJbAppendString(js: &mut JsonBuilder, val: *const c_char) -> bool {
if val.is_null() {
return false;
}
}
#[no_mangle]
-pub unsafe extern "C" fn jb_append_string_from_bytes(
+pub unsafe extern "C" fn SCJbAppendStringFromBytes(
js: &mut JsonBuilder, bytes: *const u8, len: u32,
) -> bool {
if bytes.is_null() || len == 0 {
}
#[no_mangle]
-pub unsafe extern "C" fn jb_append_base64(
+pub unsafe extern "C" fn SCJbAppendBase64(
js: &mut JsonBuilder, bytes: *const u8, len: u32,
) -> bool {
if bytes.is_null() || len == 0 {
}
#[no_mangle]
-pub unsafe extern "C" fn jb_append_uint(js: &mut JsonBuilder, val: u64) -> bool {
+pub unsafe extern "C" fn SCJbAppendUint(js: &mut JsonBuilder, val: u64) -> bool {
return js.append_uint(val).is_ok();
}
#[no_mangle]
-pub unsafe extern "C" fn jb_append_float(js: &mut JsonBuilder, val: f64) -> bool {
+pub unsafe extern "C" fn SCJbAppendFloat(js: &mut JsonBuilder, val: f64) -> bool {
return js.append_float(val).is_ok();
}
#[no_mangle]
-pub unsafe extern "C" fn jb_set_uint(js: &mut JsonBuilder, key: *const c_char, val: u64) -> bool {
+pub unsafe extern "C" fn SCJbSetUint(js: &mut JsonBuilder, key: *const c_char, val: u64) -> bool {
if let Ok(key) = CStr::from_ptr(key).to_str() {
return js.set_uint(key, val).is_ok();
}
}
#[no_mangle]
-pub unsafe extern "C" fn jb_set_int(js: &mut JsonBuilder, key: *const c_char, val: i64) -> bool {
+pub unsafe extern "C" fn SCJbSetInt(js: &mut JsonBuilder, key: *const c_char, val: i64) -> bool {
if let Ok(key) = CStr::from_ptr(key).to_str() {
return js.set_int(key, val).is_ok();
}
}
#[no_mangle]
-pub unsafe extern "C" fn jb_set_float(js: &mut JsonBuilder, key: *const c_char, val: f64) -> bool {
+pub unsafe extern "C" fn SCJbSetFloat(js: &mut JsonBuilder, key: *const c_char, val: f64) -> bool {
if let Ok(key) = CStr::from_ptr(key).to_str() {
return js.set_float(key, val).is_ok();
}
}
#[no_mangle]
-pub unsafe extern "C" fn jb_set_bool(js: &mut JsonBuilder, key: *const c_char, val: bool) -> bool {
+pub unsafe extern "C" fn SCJbSetBool(js: &mut JsonBuilder, key: *const c_char, val: bool) -> bool {
if let Ok(key) = CStr::from_ptr(key).to_str() {
return js.set_bool(key, val).is_ok();
}
}
#[no_mangle]
-pub unsafe extern "C" fn jb_close(js: &mut JsonBuilder) -> bool {
+pub unsafe extern "C" fn SCJbClose(js: &mut JsonBuilder) -> bool {
js.close().is_ok()
}
#[no_mangle]
-pub unsafe extern "C" fn jb_len(js: &JsonBuilder) -> usize {
+pub unsafe extern "C" fn SCJbLen(js: &JsonBuilder) -> usize {
js.buf.len()
}
#[no_mangle]
-pub unsafe extern "C" fn jb_ptr(js: &mut JsonBuilder) -> *const u8 {
+pub unsafe extern "C" fn SCJbPtr(js: &mut JsonBuilder) -> *const u8 {
js.buf.as_ptr()
}
#[no_mangle]
-pub unsafe extern "C" fn jb_get_mark(js: &mut JsonBuilder, mark: &mut JsonBuilderMark) {
+pub unsafe extern "C" fn SCJbGetMark(js: &mut JsonBuilder, mark: &mut JsonBuilderMark) {
let m = js.get_mark();
mark.position = m.position;
mark.state_index = m.state_index;
}
#[no_mangle]
-pub unsafe extern "C" fn jb_restore_mark(js: &mut JsonBuilder, mark: &mut JsonBuilderMark) -> bool {
+pub unsafe extern "C" fn SCJbRestoreMark(js: &mut JsonBuilder, mark: &mut JsonBuilderMark) -> bool {
js.restore_mark(mark).is_ok()
}
DNP3ObjectG{{object.group}}V{{object.variation}} *data = point->data;
{% for field in object.fields %}
{% if is_integer_type(field.type) %}
- jb_set_uint(js, "{{field.name}}", data->{{field.name}});
+ SCJbSetUint(js, "{{field.name}}", data->{{field.name}});
{% elif field.type in ["flt32", "flt64"] %}
- jb_set_float(js, "{{field.name}}", data->{{field.name}});
+ SCJbSetFloat(js, "{{field.name}}", data->{{field.name}});
{% elif field.type == "bytearray" %}
- jb_set_base64(js, "data->{{field.name}}", data->{{field.name}}, data->{{field.len_field}});
+ SCJbSetBase64(js, "data->{{field.name}}", data->{{field.name}}, data->{{field.len_field}});
{% elif field.type == "vstr4" %}
- jb_set_string(js, "data->{{field.name}}", data->{{field.name}});
+ SCJbSetString(js, "data->{{field.name}}", data->{{field.name}});
{% elif field.type == "chararray" %}
if (data->{{field.len_field}} > 0) {
- jb_set_string_from_bytes(
+ SCJbSetStringFromBytes(
js, "{{field.name}}", (const uint8_t *)data->{{field.name}}, data->{{field.len_field}});
} else {
- jb_set_string(js, "{{field.name}}", "");
+ SCJbSetString(js, "{{field.name}}", "");
}
{% elif field.type == "bstr8" %}
{% for field in field.fields %}
- jb_set_uint(js, "{{field.name}}", data->{{field.name}});
+ SCJbSetUint(js, "{{field.name}}", data->{{field.name}});
{% endfor %}
{% else %}
{{ raise("Unhandled datatype: %s" % (field.type)) }}
return c == NULL ? len : (uint16_t)(c - buffer + 1);
}
-bool EveFTPDataAddMetadata(void *vtx, JsonBuilder *jb)
+bool EveFTPDataAddMetadata(void *vtx, SCJsonBuilder *jb)
{
const FtpDataState *ftp_state = (FtpDataState *)vtx;
- jb_open_object(jb, "ftp_data");
+ SCJbOpenObject(jb, "ftp_data");
if (ftp_state->file_name) {
- jb_set_string_from_bytes(jb, "filename", ftp_state->file_name, ftp_state->file_len);
+ SCJbSetStringFromBytes(jb, "filename", ftp_state->file_name, ftp_state->file_len);
}
switch (ftp_state->command) {
case FTP_COMMAND_STOR:
default:
break;
}
- jb_close(jb);
+ SCJbClose(jb);
return true;
}
uint64_t FTPMemcapGlobalCounter(void);
uint16_t JsonGetNextLineFromBuffer(const char *buffer, const uint16_t len);
-bool EveFTPDataAddMetadata(void *vtx, JsonBuilder *jb);
+bool EveFTPDataAddMetadata(void *vtx, SCJsonBuilder *jb);
#endif /* SURICATA_APP_LAYER_FTP_H */
}
typedef struct RuleAnalyzer {
- JsonBuilder *js; /* document root */
+ SCJsonBuilder *js; /* document root */
- JsonBuilder *js_warnings;
- JsonBuilder *js_notes;
+ SCJsonBuilder *js_warnings;
+ SCJsonBuilder *js_notes;
} RuleAnalyzer;
static void ATTR_FMT_PRINTF(2, 3) AnalyzerNote(RuleAnalyzer *ctx, char *fmt, ...)
va_end(ap);
if (!ctx->js_notes)
- ctx->js_notes = jb_new_array();
+ ctx->js_notes = SCJbNewArray();
if (ctx->js_notes)
- jb_append_string(ctx->js_notes, str);
+ SCJbAppendString(ctx->js_notes, str);
}
static void ATTR_FMT_PRINTF(2, 3) AnalyzerWarning(RuleAnalyzer *ctx, char *fmt, ...)
va_end(ap);
if (!ctx->js_warnings)
- ctx->js_warnings = jb_new_array();
+ ctx->js_warnings = SCJbNewArray();
if (ctx->js_warnings)
- jb_append_string(ctx->js_warnings, str);
+ SCJbAppendString(ctx->js_warnings, str);
}
#define CHECK(pat) if (strlen((pat)) <= len && memcmp((pat), buf, MIN(len, strlen((pat)))) == 0) return true;
return false;
}
-static void DumpContent(JsonBuilder *js, const DetectContentData *cd)
+static void DumpContent(SCJsonBuilder *js, const DetectContentData *cd)
{
char pattern_str[1024] = "";
DetectContentPatternPrettyPrint(cd, pattern_str, sizeof(pattern_str));
- jb_set_string(js, "pattern", pattern_str);
- jb_set_uint(js, "length", cd->content_len);
- jb_set_bool(js, "nocase", cd->flags & DETECT_CONTENT_NOCASE);
- jb_set_bool(js, "negated", cd->flags & DETECT_CONTENT_NEGATED);
- jb_set_bool(js, "starts_with", cd->flags & DETECT_CONTENT_STARTS_WITH);
- jb_set_bool(js, "ends_with", cd->flags & DETECT_CONTENT_ENDS_WITH);
- jb_set_bool(js, "is_mpm", cd->flags & DETECT_CONTENT_MPM);
- jb_set_bool(js, "no_double_inspect", cd->flags & DETECT_CONTENT_NO_DOUBLE_INSPECTION_REQUIRED);
+ SCJbSetString(js, "pattern", pattern_str);
+ SCJbSetUint(js, "length", cd->content_len);
+ SCJbSetBool(js, "nocase", cd->flags & DETECT_CONTENT_NOCASE);
+ SCJbSetBool(js, "negated", cd->flags & DETECT_CONTENT_NEGATED);
+ SCJbSetBool(js, "starts_with", cd->flags & DETECT_CONTENT_STARTS_WITH);
+ SCJbSetBool(js, "ends_with", cd->flags & DETECT_CONTENT_ENDS_WITH);
+ SCJbSetBool(js, "is_mpm", cd->flags & DETECT_CONTENT_MPM);
+ SCJbSetBool(js, "no_double_inspect", cd->flags & DETECT_CONTENT_NO_DOUBLE_INSPECTION_REQUIRED);
if (cd->flags & DETECT_CONTENT_OFFSET) {
- jb_set_uint(js, "offset", cd->offset);
+ SCJbSetUint(js, "offset", cd->offset);
}
if (cd->flags & DETECT_CONTENT_DEPTH) {
- jb_set_uint(js, "depth", cd->depth);
+ SCJbSetUint(js, "depth", cd->depth);
}
if (cd->flags & DETECT_CONTENT_DISTANCE) {
- jb_set_int(js, "distance", cd->distance);
+ SCJbSetInt(js, "distance", cd->distance);
}
if (cd->flags & DETECT_CONTENT_WITHIN) {
- jb_set_int(js, "within", cd->within);
+ SCJbSetInt(js, "within", cd->within);
}
- jb_set_bool(js, "fast_pattern", cd->flags & DETECT_CONTENT_FAST_PATTERN);
- jb_set_bool(js, "relative_next", cd->flags & DETECT_CONTENT_RELATIVE_NEXT);
+ SCJbSetBool(js, "fast_pattern", cd->flags & DETECT_CONTENT_FAST_PATTERN);
+ SCJbSetBool(js, "relative_next", cd->flags & DETECT_CONTENT_RELATIVE_NEXT);
}
-static void DumpPcre(JsonBuilder *js, const DetectPcreData *cd)
+static void DumpPcre(SCJsonBuilder *js, const DetectPcreData *cd)
{
- jb_set_bool(js, "relative", cd->flags & DETECT_PCRE_RELATIVE);
- jb_set_bool(js, "relative_next", cd->flags & DETECT_PCRE_RELATIVE_NEXT);
- jb_set_bool(js, "nocase", cd->flags & DETECT_PCRE_CASELESS);
- jb_set_bool(js, "negated", cd->flags & DETECT_PCRE_NEGATE);
+ SCJbSetBool(js, "relative", cd->flags & DETECT_PCRE_RELATIVE);
+ SCJbSetBool(js, "relative_next", cd->flags & DETECT_PCRE_RELATIVE_NEXT);
+ SCJbSetBool(js, "nocase", cd->flags & DETECT_PCRE_CASELESS);
+ SCJbSetBool(js, "negated", cd->flags & DETECT_PCRE_NEGATE);
}
-static void DumpMatches(RuleAnalyzer *ctx, JsonBuilder *js, const SigMatchData *smd)
+static void DumpMatches(RuleAnalyzer *ctx, SCJsonBuilder *js, const SigMatchData *smd)
{
if (smd == NULL)
return;
- jb_open_array(js, "matches");
+ SCJbOpenArray(js, "matches");
do {
- jb_start_object(js);
+ SCJbStartObject(js);
const char *mname = sigmatch_table[smd->type].name;
- jb_set_string(js, "name", mname);
+ SCJbSetString(js, "name", mname);
switch (smd->type) {
case DETECT_CONTENT: {
const DetectContentData *cd = (const DetectContentData *)smd->ctx;
- jb_open_object(js, "content");
+ SCJbOpenObject(js, "content");
DumpContent(js, cd);
if (cd->flags & DETECT_CONTENT_FAST_PATTERN_ONLY) {
AnalyzerNote(ctx, (char *)"'fast_pattern:only' option is silently ignored and "
AnalyzerNote(ctx, (char *)"'distance' option for pattern w/o previous content "
"was converted to 'offset'");
}
- jb_close(js);
+ SCJbClose(js);
break;
}
case DETECT_PCRE: {
const DetectPcreData *cd = (const DetectPcreData *)smd->ctx;
- jb_open_object(js, "pcre");
+ SCJbOpenObject(js, "pcre");
DumpPcre(js, cd);
- jb_close(js);
+ SCJbClose(js);
if (cd->flags & DETECT_PCRE_RAWBYTES) {
AnalyzerNote(ctx,
(char *)"'/B' (rawbytes) option is a no-op and is silently ignored");
case DETECT_BYTEJUMP: {
const DetectBytejumpData *cd = (const DetectBytejumpData *)smd->ctx;
- jb_open_object(js, "byte_jump");
- jb_set_uint(js, "nbytes", cd->nbytes);
- jb_set_int(js, "offset", cd->offset);
- jb_set_uint(js, "multiplier", cd->multiplier);
- jb_set_int(js, "post_offset", cd->post_offset);
+ SCJbOpenObject(js, "byte_jump");
+ SCJbSetUint(js, "nbytes", cd->nbytes);
+ SCJbSetInt(js, "offset", cd->offset);
+ SCJbSetUint(js, "multiplier", cd->multiplier);
+ SCJbSetInt(js, "post_offset", cd->post_offset);
switch (cd->base) {
case DETECT_BYTEJUMP_BASE_UNSET:
- jb_set_string(js, "base", "unset");
+ SCJbSetString(js, "base", "unset");
break;
case DETECT_BYTEJUMP_BASE_OCT:
- jb_set_string(js, "base", "oct");
+ SCJbSetString(js, "base", "oct");
break;
case DETECT_BYTEJUMP_BASE_DEC:
- jb_set_string(js, "base", "dec");
+ SCJbSetString(js, "base", "dec");
break;
case DETECT_BYTEJUMP_BASE_HEX:
- jb_set_string(js, "base", "hex");
+ SCJbSetString(js, "base", "hex");
break;
}
- jb_open_array(js, "flags");
+ SCJbOpenArray(js, "flags");
if (cd->flags & DETECT_BYTEJUMP_BEGIN)
- jb_append_string(js, "from_beginning");
+ SCJbAppendString(js, "from_beginning");
if (cd->flags & DETECT_BYTEJUMP_LITTLE)
- jb_append_string(js, "little_endian");
+ SCJbAppendString(js, "little_endian");
if (cd->flags & DETECT_BYTEJUMP_BIG)
- jb_append_string(js, "big_endian");
+ SCJbAppendString(js, "big_endian");
if (cd->flags & DETECT_BYTEJUMP_STRING)
- jb_append_string(js, "string");
+ SCJbAppendString(js, "string");
if (cd->flags & DETECT_BYTEJUMP_RELATIVE)
- jb_append_string(js, "relative");
+ SCJbAppendString(js, "relative");
if (cd->flags & DETECT_BYTEJUMP_ALIGN)
- jb_append_string(js, "align");
+ SCJbAppendString(js, "align");
if (cd->flags & DETECT_BYTEJUMP_DCE)
- jb_append_string(js, "dce");
+ SCJbAppendString(js, "dce");
if (cd->flags & DETECT_BYTEJUMP_OFFSET_BE)
- jb_append_string(js, "offset_be");
+ SCJbAppendString(js, "offset_be");
if (cd->flags & DETECT_BYTEJUMP_END)
- jb_append_string(js, "from_end");
- jb_close(js);
- jb_close(js);
+ SCJbAppendString(js, "from_end");
+ SCJbClose(js);
+ SCJbClose(js);
break;
}
case DETECT_BYTETEST: {
const DetectBytetestData *cd = (const DetectBytetestData *)smd->ctx;
- jb_open_object(js, "byte_test");
- jb_set_uint(js, "nbytes", cd->nbytes);
- jb_set_int(js, "offset", cd->offset);
+ SCJbOpenObject(js, "byte_test");
+ SCJbSetUint(js, "nbytes", cd->nbytes);
+ SCJbSetInt(js, "offset", cd->offset);
switch (cd->base) {
case DETECT_BYTETEST_BASE_UNSET:
- jb_set_string(js, "base", "unset");
+ SCJbSetString(js, "base", "unset");
break;
case DETECT_BYTETEST_BASE_OCT:
- jb_set_string(js, "base", "oct");
+ SCJbSetString(js, "base", "oct");
break;
case DETECT_BYTETEST_BASE_DEC:
- jb_set_string(js, "base", "dec");
+ SCJbSetString(js, "base", "dec");
break;
case DETECT_BYTETEST_BASE_HEX:
- jb_set_string(js, "base", "hex");
+ SCJbSetString(js, "base", "hex");
break;
}
- jb_open_array(js, "flags");
+ SCJbOpenArray(js, "flags");
if (cd->flags & DETECT_BYTETEST_LITTLE)
- jb_append_string(js, "little_endian");
+ SCJbAppendString(js, "little_endian");
if (cd->flags & DETECT_BYTETEST_BIG)
- jb_append_string(js, "big_endian");
+ SCJbAppendString(js, "big_endian");
if (cd->flags & DETECT_BYTETEST_STRING)
- jb_append_string(js, "string");
+ SCJbAppendString(js, "string");
if (cd->flags & DETECT_BYTETEST_RELATIVE)
- jb_append_string(js, "relative");
+ SCJbAppendString(js, "relative");
if (cd->flags & DETECT_BYTETEST_DCE)
- jb_append_string(js, "dce");
- jb_close(js);
- jb_close(js);
+ SCJbAppendString(js, "dce");
+ SCJbClose(js);
+ SCJbClose(js);
break;
}
case DETECT_ABSENT: {
const DetectAbsentData *dad = (const DetectAbsentData *)smd->ctx;
- jb_open_object(js, "absent");
- jb_set_bool(js, "or_else", dad->or_else);
- jb_close(js);
+ SCJbOpenObject(js, "absent");
+ SCJbSetBool(js, "or_else", dad->or_else);
+ SCJbClose(js);
break;
}
case DETECT_IPOPTS: {
const DetectIpOptsData *cd = (const DetectIpOptsData *)smd->ctx;
- jb_open_object(js, "ipopts");
+ SCJbOpenObject(js, "ipopts");
const char *flag = IpOptsFlagToString(cd->ipopt);
- jb_set_string(js, "option", flag);
- jb_close(js);
+ SCJbSetString(js, "option", flag);
+ SCJbClose(js);
break;
}
case DETECT_FLOWBITS: {
const DetectFlowbitsData *cd = (const DetectFlowbitsData *)smd->ctx;
- jb_open_object(js, "flowbits");
+ SCJbOpenObject(js, "flowbits");
switch (cd->cmd) {
case DETECT_FLOWBITS_CMD_ISSET:
- jb_set_string(js, "cmd", "isset");
+ SCJbSetString(js, "cmd", "isset");
break;
case DETECT_FLOWBITS_CMD_ISNOTSET:
- jb_set_string(js, "cmd", "isnotset");
+ SCJbSetString(js, "cmd", "isnotset");
break;
case DETECT_FLOWBITS_CMD_SET:
- jb_set_string(js, "cmd", "set");
+ SCJbSetString(js, "cmd", "set");
break;
case DETECT_FLOWBITS_CMD_UNSET:
- jb_set_string(js, "cmd", "unset");
+ SCJbSetString(js, "cmd", "unset");
break;
case DETECT_FLOWBITS_CMD_TOGGLE:
- jb_set_string(js, "cmd", "toggle");
+ SCJbSetString(js, "cmd", "toggle");
break;
}
bool is_or = false;
- jb_open_array(js, "names");
+ SCJbOpenArray(js, "names");
if (cd->or_list_size == 0) {
- jb_append_string(js, VarNameStoreSetupLookup(cd->idx, VAR_TYPE_FLOW_BIT));
+ SCJbAppendString(js, VarNameStoreSetupLookup(cd->idx, VAR_TYPE_FLOW_BIT));
} else if (cd->or_list_size > 0) {
is_or = true;
for (uint8_t i = 0; i < cd->or_list_size; i++) {
const char *varname =
VarNameStoreSetupLookup(cd->or_list[i], VAR_TYPE_FLOW_BIT);
- jb_append_string(js, varname);
+ SCJbAppendString(js, varname);
}
}
- jb_close(js); // array
+ SCJbClose(js); // array
if (is_or) {
- jb_set_string(js, "operator", "or");
+ SCJbSetString(js, "operator", "or");
}
- jb_close(js); // object
+ SCJbClose(js); // object
break;
}
case DETECT_ACK: {
const DetectAckData *cd = (const DetectAckData *)smd->ctx;
- jb_open_object(js, "ack");
- jb_set_uint(js, "number", cd->ack);
- jb_close(js);
+ SCJbOpenObject(js, "ack");
+ SCJbSetUint(js, "number", cd->ack);
+ SCJbClose(js);
break;
}
case DETECT_SEQ: {
const DetectSeqData *cd = (const DetectSeqData *)smd->ctx;
- jb_open_object(js, "seq");
- jb_set_uint(js, "number", cd->seq);
- jb_close(js);
+ SCJbOpenObject(js, "seq");
+ SCJbSetUint(js, "number", cd->seq);
+ SCJbClose(js);
break;
}
case DETECT_TCPMSS: {
const DetectU16Data *cd = (const DetectU16Data *)smd->ctx;
- jb_open_object(js, "tcp_mss");
+ SCJbOpenObject(js, "tcp_mss");
SCDetectU16ToJson(js, cd);
- jb_close(js);
+ SCJbClose(js);
break;
}
case DETECT_ICMP_ID: {
const DetectIcmpIdData *cd = (const DetectIcmpIdData *)smd->ctx;
- jb_open_object(js, "id");
- jb_set_uint(js, "number", SCNtohs(cd->id));
- jb_close(js);
+ SCJbOpenObject(js, "id");
+ SCJbSetUint(js, "number", SCNtohs(cd->id));
+ SCJbClose(js);
break;
}
case DETECT_WINDOW: {
const DetectWindowData *wd = (const DetectWindowData *)smd->ctx;
- jb_open_object(js, "window");
- jb_set_uint(js, "size", wd->size);
- jb_set_bool(js, "negated", wd->negated);
- jb_close(js);
+ SCJbOpenObject(js, "window");
+ SCJbSetUint(js, "size", wd->size);
+ SCJbSetBool(js, "negated", wd->negated);
+ SCJbClose(js);
break;
}
case DETECT_FLOW_AGE: {
const DetectU32Data *cd = (const DetectU32Data *)smd->ctx;
- jb_open_object(js, "flow_age");
+ SCJbOpenObject(js, "flow_age");
SCDetectU32ToJson(js, cd);
- jb_close(js);
+ SCJbClose(js);
break;
}
}
- jb_close(js);
+ SCJbClose(js);
if (smd->is_last)
break;
smd++;
} while (1);
- jb_close(js);
+ SCJbClose(js);
}
SCMutex g_rules_analyzer_write_m = SCMUTEX_INITIALIZER;
RuleAnalyzer ctx = { NULL, NULL, NULL };
- ctx.js = jb_new_object();
+ ctx.js = SCJbNewObject();
if (ctx.js == NULL)
SCReturn;
- jb_set_string(ctx.js, "raw", s->sig_str);
- jb_set_uint(ctx.js, "id", s->id);
- jb_set_uint(ctx.js, "gid", s->gid);
- jb_set_uint(ctx.js, "rev", s->rev);
- jb_set_string(ctx.js, "msg", s->msg);
+ SCJbSetString(ctx.js, "raw", s->sig_str);
+ SCJbSetUint(ctx.js, "id", s->id);
+ SCJbSetUint(ctx.js, "gid", s->gid);
+ SCJbSetUint(ctx.js, "rev", s->rev);
+ SCJbSetString(ctx.js, "msg", s->msg);
const char *alproto = AppProtoToString(s->alproto);
- jb_set_string(ctx.js, "app_proto", alproto);
+ SCJbSetString(ctx.js, "app_proto", alproto);
- jb_open_array(ctx.js, "requirements");
+ SCJbOpenArray(ctx.js, "requirements");
if (s->mask & SIG_MASK_REQUIRE_PAYLOAD) {
- jb_append_string(ctx.js, "payload");
+ SCJbAppendString(ctx.js, "payload");
}
if (s->mask & SIG_MASK_REQUIRE_NO_PAYLOAD) {
- jb_append_string(ctx.js, "no_payload");
+ SCJbAppendString(ctx.js, "no_payload");
}
if (s->mask & SIG_MASK_REQUIRE_FLOW) {
- jb_append_string(ctx.js, "flow");
+ SCJbAppendString(ctx.js, "flow");
}
if (s->mask & SIG_MASK_REQUIRE_FLAGS_INITDEINIT) {
- jb_append_string(ctx.js, "tcp_flags_init_deinit");
+ SCJbAppendString(ctx.js, "tcp_flags_init_deinit");
}
if (s->mask & SIG_MASK_REQUIRE_FLAGS_UNUSUAL) {
- jb_append_string(ctx.js, "tcp_flags_unusual");
+ SCJbAppendString(ctx.js, "tcp_flags_unusual");
}
if (s->mask & SIG_MASK_REQUIRE_ENGINE_EVENT) {
- jb_append_string(ctx.js, "engine_event");
+ SCJbAppendString(ctx.js, "engine_event");
}
if (s->mask & SIG_MASK_REQUIRE_REAL_PKT) {
- jb_append_string(ctx.js, "real_pkt");
+ SCJbAppendString(ctx.js, "real_pkt");
}
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
- jb_open_object(ctx.js, "match_policy");
- jb_open_array(ctx.js, "actions");
+ SCJbOpenObject(ctx.js, "match_policy");
+ SCJbOpenArray(ctx.js, "actions");
if (s->action & ACTION_ALERT) {
- jb_append_string(ctx.js, "alert");
+ SCJbAppendString(ctx.js, "alert");
}
if (s->action & ACTION_DROP) {
- jb_append_string(ctx.js, "drop");
+ SCJbAppendString(ctx.js, "drop");
}
if (s->action & ACTION_REJECT) {
- jb_append_string(ctx.js, "reject");
+ SCJbAppendString(ctx.js, "reject");
}
if (s->action & ACTION_REJECT_DST) {
- jb_append_string(ctx.js, "reject_dst");
+ SCJbAppendString(ctx.js, "reject_dst");
}
if (s->action & ACTION_REJECT_BOTH) {
- jb_append_string(ctx.js, "reject_both");
+ SCJbAppendString(ctx.js, "reject_both");
}
if (s->action & ACTION_CONFIG) {
- jb_append_string(ctx.js, "config");
+ SCJbAppendString(ctx.js, "config");
}
if (s->action & ACTION_PASS) {
- jb_append_string(ctx.js, "pass");
+ SCJbAppendString(ctx.js, "pass");
}
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
enum SignaturePropertyFlowAction flow_action = signature_properties[s->type].flow_action;
switch (flow_action) {
case SIG_PROP_FLOW_ACTION_PACKET:
- jb_set_string(ctx.js, "scope", "packet");
+ SCJbSetString(ctx.js, "scope", "packet");
break;
case SIG_PROP_FLOW_ACTION_FLOW:
- jb_set_string(ctx.js, "scope", "flow");
+ SCJbSetString(ctx.js, "scope", "flow");
break;
case SIG_PROP_FLOW_ACTION_FLOW_IF_STATEFUL:
- jb_set_string(ctx.js, "scope", "flow_if_stateful");
+ SCJbSetString(ctx.js, "scope", "flow_if_stateful");
break;
}
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
switch (s->type) {
case SIG_TYPE_NOT_SET:
- jb_set_string(ctx.js, "type", "unset");
+ SCJbSetString(ctx.js, "type", "unset");
break;
case SIG_TYPE_IPONLY:
- jb_set_string(ctx.js, "type", "ip_only");
+ SCJbSetString(ctx.js, "type", "ip_only");
break;
case SIG_TYPE_LIKE_IPONLY:
- jb_set_string(ctx.js, "type", "like_ip_only");
+ SCJbSetString(ctx.js, "type", "like_ip_only");
break;
case SIG_TYPE_PDONLY:
- jb_set_string(ctx.js, "type", "pd_only");
+ SCJbSetString(ctx.js, "type", "pd_only");
break;
case SIG_TYPE_DEONLY:
- jb_set_string(ctx.js, "type", "de_only");
+ SCJbSetString(ctx.js, "type", "de_only");
break;
case SIG_TYPE_PKT:
- jb_set_string(ctx.js, "type", "pkt");
+ SCJbSetString(ctx.js, "type", "pkt");
break;
case SIG_TYPE_PKT_STREAM:
- jb_set_string(ctx.js, "type", "pkt_stream");
+ SCJbSetString(ctx.js, "type", "pkt_stream");
break;
case SIG_TYPE_STREAM:
- jb_set_string(ctx.js, "type", "stream");
+ SCJbSetString(ctx.js, "type", "stream");
break;
case SIG_TYPE_APPLAYER:
- jb_set_string(ctx.js, "type", "app_layer");
+ SCJbSetString(ctx.js, "type", "app_layer");
break;
case SIG_TYPE_APP_TX:
- jb_set_string(ctx.js, "type", "app_tx");
+ SCJbSetString(ctx.js, "type", "app_tx");
break;
case SIG_TYPE_MAX:
- jb_set_string(ctx.js, "type", "error");
+ SCJbSetString(ctx.js, "type", "error");
break;
}
// dependencies object and its subfields only logged if we have values
if (s->init_data->is_rule_state_dependant) {
- jb_open_object(ctx.js, "dependencies");
- jb_open_object(ctx.js, "flowbits");
- jb_open_object(ctx.js, "upstream");
+ SCJbOpenObject(ctx.js, "dependencies");
+ SCJbOpenObject(ctx.js, "flowbits");
+ SCJbOpenObject(ctx.js, "upstream");
if (s->init_data->rule_state_dependant_sids_size > 0) {
- jb_open_object(ctx.js, "state_modifying_rules");
- jb_open_array(ctx.js, "sids");
+ SCJbOpenObject(ctx.js, "state_modifying_rules");
+ SCJbOpenArray(ctx.js, "sids");
for (uint32_t i = 0; i < s->init_data->rule_state_dependant_sids_idx; i++) {
- jb_append_uint(ctx.js, s->init_data->rule_state_dependant_sids_array[i]);
+ SCJbAppendUint(ctx.js, s->init_data->rule_state_dependant_sids_array[i]);
}
- jb_close(ctx.js); // sids
- jb_open_array(ctx.js, "names");
+ SCJbClose(ctx.js); // sids
+ SCJbOpenArray(ctx.js, "names");
for (uint32_t i = 0; i < s->init_data->rule_state_flowbits_ids_size - 1; i++) {
if (s->init_data->rule_state_flowbits_ids_array[i] != 0) {
- jb_append_string(ctx.js,
+ SCJbAppendString(ctx.js,
VarNameStoreSetupLookup(s->init_data->rule_state_flowbits_ids_array[i],
VAR_TYPE_FLOW_BIT));
}
}
- jb_close(ctx.js); // names
- jb_close(ctx.js); // state_modifying_rules
+ SCJbClose(ctx.js); // names
+ SCJbClose(ctx.js); // state_modifying_rules
}
- jb_close(ctx.js); // upstream
- jb_close(ctx.js); // flowbits
- jb_close(ctx.js); // dependencies
+ SCJbClose(ctx.js); // upstream
+ SCJbClose(ctx.js); // flowbits
+ SCJbClose(ctx.js); // dependencies
}
- jb_open_array(ctx.js, "flags");
+ SCJbOpenArray(ctx.js, "flags");
if (s->flags & SIG_FLAG_SRC_ANY) {
- jb_append_string(ctx.js, "src_any");
+ SCJbAppendString(ctx.js, "src_any");
}
if (s->flags & SIG_FLAG_DST_ANY) {
- jb_append_string(ctx.js, "dst_any");
+ SCJbAppendString(ctx.js, "dst_any");
}
if (s->flags & SIG_FLAG_SP_ANY) {
- jb_append_string(ctx.js, "sp_any");
+ SCJbAppendString(ctx.js, "sp_any");
}
if (s->flags & SIG_FLAG_DP_ANY) {
- jb_append_string(ctx.js, "dp_any");
+ SCJbAppendString(ctx.js, "dp_any");
}
if ((s->action & ACTION_ALERT) == 0) {
- jb_append_string(ctx.js, "noalert");
+ SCJbAppendString(ctx.js, "noalert");
}
if (s->flags & SIG_FLAG_DSIZE) {
- jb_append_string(ctx.js, "dsize");
+ SCJbAppendString(ctx.js, "dsize");
}
if (s->flags & SIG_FLAG_APPLAYER) {
- jb_append_string(ctx.js, "applayer");
+ SCJbAppendString(ctx.js, "applayer");
}
if (s->flags & SIG_FLAG_REQUIRE_PACKET) {
- jb_append_string(ctx.js, "need_packet");
+ SCJbAppendString(ctx.js, "need_packet");
}
if (s->flags & SIG_FLAG_REQUIRE_STREAM) {
- jb_append_string(ctx.js, "need_stream");
+ SCJbAppendString(ctx.js, "need_stream");
}
if (s->flags & SIG_FLAG_MPM_NEG) {
- jb_append_string(ctx.js, "negated_mpm");
+ SCJbAppendString(ctx.js, "negated_mpm");
}
if (s->flags & SIG_FLAG_FLUSH) {
- jb_append_string(ctx.js, "flush");
+ SCJbAppendString(ctx.js, "flush");
}
if (s->flags & SIG_FLAG_REQUIRE_FLOWVAR) {
- jb_append_string(ctx.js, "need_flowvar");
+ SCJbAppendString(ctx.js, "need_flowvar");
}
if (s->flags & SIG_FLAG_FILESTORE) {
- jb_append_string(ctx.js, "filestore");
+ SCJbAppendString(ctx.js, "filestore");
}
if (s->flags & SIG_FLAG_TOSERVER) {
- jb_append_string(ctx.js, "toserver");
+ SCJbAppendString(ctx.js, "toserver");
}
if (s->flags & SIG_FLAG_TOCLIENT) {
- jb_append_string(ctx.js, "toclient");
+ SCJbAppendString(ctx.js, "toclient");
}
if (s->flags & SIG_FLAG_TLSSTORE) {
- jb_append_string(ctx.js, "tlsstore");
+ SCJbAppendString(ctx.js, "tlsstore");
}
if (s->flags & SIG_FLAG_BYPASS) {
- jb_append_string(ctx.js, "bypass");
+ SCJbAppendString(ctx.js, "bypass");
}
if (s->flags & SIG_FLAG_PREFILTER) {
- jb_append_string(ctx.js, "prefilter");
+ SCJbAppendString(ctx.js, "prefilter");
}
if (s->flags & SIG_FLAG_SRC_IS_TARGET) {
- jb_append_string(ctx.js, "src_is_target");
+ SCJbAppendString(ctx.js, "src_is_target");
}
if (s->flags & SIG_FLAG_DEST_IS_TARGET) {
- jb_append_string(ctx.js, "dst_is_target");
+ SCJbAppendString(ctx.js, "dst_is_target");
}
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
const DetectEnginePktInspectionEngine *pkt_mpm = NULL;
const DetectEngineAppInspectionEngine *app_mpm = NULL;
- jb_open_array(ctx.js, "pkt_engines");
+ SCJbOpenArray(ctx.js, "pkt_engines");
const DetectEnginePktInspectionEngine *pkt = s->pkt_inspect;
for ( ; pkt != NULL; pkt = pkt->next) {
const char *name = DetectEngineBufferTypeGetNameById(de_ctx, pkt->sm_list);
break;
}
}
- jb_start_object(ctx.js);
- jb_set_string(ctx.js, "name", name);
- jb_set_bool(ctx.js, "is_mpm", pkt->mpm);
+ SCJbStartObject(ctx.js);
+ SCJbSetString(ctx.js, "name", name);
+ SCJbSetBool(ctx.js, "is_mpm", pkt->mpm);
if (pkt->v1.transforms != NULL) {
- jb_open_array(ctx.js, "transforms");
+ SCJbOpenArray(ctx.js, "transforms");
for (int t = 0; t < pkt->v1.transforms->cnt; t++) {
- jb_start_object(ctx.js);
- jb_set_string(ctx.js, "name",
+ SCJbStartObject(ctx.js);
+ SCJbSetString(ctx.js, "name",
sigmatch_table[pkt->v1.transforms->transforms[t].transform].name);
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
}
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
}
DumpMatches(&ctx, ctx.js, pkt->smd);
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
if (pkt->mpm) {
pkt_mpm = pkt;
}
}
- jb_close(ctx.js);
- jb_open_array(ctx.js, "frame_engines");
+ SCJbClose(ctx.js);
+ SCJbOpenArray(ctx.js, "frame_engines");
const DetectEngineFrameInspectionEngine *frame = s->frame_inspect;
for (; frame != NULL; frame = frame->next) {
const char *name = DetectEngineBufferTypeGetNameById(de_ctx, frame->sm_list);
- jb_start_object(ctx.js);
- jb_set_string(ctx.js, "name", name);
- jb_set_bool(ctx.js, "is_mpm", frame->mpm);
+ SCJbStartObject(ctx.js);
+ SCJbSetString(ctx.js, "name", name);
+ SCJbSetBool(ctx.js, "is_mpm", frame->mpm);
if (frame->v1.transforms != NULL) {
- jb_open_array(ctx.js, "transforms");
+ SCJbOpenArray(ctx.js, "transforms");
for (int t = 0; t < frame->v1.transforms->cnt; t++) {
- jb_start_object(ctx.js);
- jb_set_string(ctx.js, "name",
+ SCJbStartObject(ctx.js);
+ SCJbSetString(ctx.js, "name",
sigmatch_table[frame->v1.transforms->transforms[t].transform].name);
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
}
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
}
DumpMatches(&ctx, ctx.js, frame->smd);
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
}
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
if (s->init_data->init_flags & SIG_FLAG_INIT_STATE_MATCH) {
bool has_stream = false;
bool has_client_body_mpm = false;
bool has_file_data_mpm = false;
- jb_open_array(ctx.js, "engines");
+ SCJbOpenArray(ctx.js, "engines");
const DetectEngineAppInspectionEngine *app = s->app_inspect;
for ( ; app != NULL; app = app->next) {
const char *name = DetectEngineBufferTypeGetNameById(de_ctx, app->sm_list);
has_file_data_mpm = true;
}
- jb_start_object(ctx.js);
- jb_set_string(ctx.js, "name", name);
+ SCJbStartObject(ctx.js);
+ SCJbSetString(ctx.js, "name", name);
const char *direction = app->dir == 0 ? "toserver" : "toclient";
- jb_set_string(ctx.js, "direction", direction);
- jb_set_bool(ctx.js, "is_mpm", app->mpm);
- jb_set_string(ctx.js, "app_proto", AppProtoToString(app->alproto));
- jb_set_uint(ctx.js, "progress", app->progress);
+ SCJbSetString(ctx.js, "direction", direction);
+ SCJbSetBool(ctx.js, "is_mpm", app->mpm);
+ SCJbSetString(ctx.js, "app_proto", AppProtoToString(app->alproto));
+ SCJbSetUint(ctx.js, "progress", app->progress);
if (app->v2.transforms != NULL) {
- jb_open_array(ctx.js, "transforms");
+ SCJbOpenArray(ctx.js, "transforms");
for (int t = 0; t < app->v2.transforms->cnt; t++) {
- jb_start_object(ctx.js);
- jb_set_string(ctx.js, "name",
+ SCJbStartObject(ctx.js);
+ SCJbSetString(ctx.js, "name",
sigmatch_table[app->v2.transforms->transforms[t].transform].name);
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
}
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
}
DumpMatches(&ctx, ctx.js, app->smd);
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
if (app->mpm) {
app_mpm = app;
}
}
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
if (has_stream && has_client_body_mpm)
AnalyzerNote(&ctx, (char *)"mpm in http_client_body combined with stream match leads to stream buffering");
AnalyzerNote(&ctx, (char *)"mpm in file_data combined with stream match leads to stream buffering");
}
- jb_open_object(ctx.js, "lists");
+ SCJbOpenObject(ctx.js, "lists");
for (int i = 0; i < DETECT_SM_LIST_MAX; i++) {
if (s->sm_arrays[i] != NULL) {
- jb_open_object(ctx.js, DetectListToHumanString(i));
+ SCJbOpenObject(ctx.js, DetectListToHumanString(i));
DumpMatches(&ctx, ctx.js, s->sm_arrays[i]);
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
}
}
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
if (pkt_mpm || app_mpm) {
- jb_open_object(ctx.js, "mpm");
+ SCJbOpenObject(ctx.js, "mpm");
int mpm_list = pkt_mpm ? DETECT_SM_LIST_PMATCH : app_mpm->sm_list;
const char *name;
name = DetectListToHumanString(mpm_list);
else
name = DetectEngineBufferTypeGetNameById(de_ctx, mpm_list);
- jb_set_string(ctx.js, "buffer", name);
+ SCJbSetString(ctx.js, "buffer", name);
SigMatchData *smd = pkt_mpm ? pkt_mpm->smd : app_mpm->smd;
if (smd == NULL && mpm_list == DETECT_SM_LIST_PMATCH) {
break;
smd++;
} while (1);
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
} else if (s->init_data->prefilter_sm) {
- jb_open_object(ctx.js, "prefilter");
+ SCJbOpenObject(ctx.js, "prefilter");
int prefilter_list = SigMatchListSMBelongsTo(s, s->init_data->prefilter_sm);
const char *name;
if (prefilter_list < DETECT_SM_LIST_DYNAMIC_START)
name = DetectListToHumanString(prefilter_list);
else
name = DetectEngineBufferTypeGetNameById(de_ctx, prefilter_list);
- jb_set_string(ctx.js, "buffer", name);
+ SCJbSetString(ctx.js, "buffer", name);
const char *mname = sigmatch_table[s->init_data->prefilter_sm->type].name;
- jb_set_string(ctx.js, "name", mname);
- jb_close(ctx.js);
+ SCJbSetString(ctx.js, "name", mname);
+ SCJbClose(ctx.js);
}
if (ctx.js_warnings) {
- jb_close(ctx.js_warnings);
- jb_set_object(ctx.js, "warnings", ctx.js_warnings);
- jb_free(ctx.js_warnings);
+ SCJbClose(ctx.js_warnings);
+ SCJbSetObject(ctx.js, "warnings", ctx.js_warnings);
+ SCJbFree(ctx.js_warnings);
ctx.js_warnings = NULL;
}
if (ctx.js_notes) {
- jb_close(ctx.js_notes);
- jb_set_object(ctx.js, "notes", ctx.js_notes);
- jb_free(ctx.js_notes);
+ SCJbClose(ctx.js_notes);
+ SCJbSetObject(ctx.js, "notes", ctx.js_notes);
+ SCJbFree(ctx.js_notes);
ctx.js_notes = NULL;
}
- jb_close(ctx.js);
+ SCJbClose(ctx.js);
const char *filename = "rules.json";
const char *log_dir = SCConfigGetLogDirectory();
SCMutexLock(&g_rules_analyzer_write_m);
FILE *fp = fopen(json_path, "a");
if (fp != NULL) {
- fwrite(jb_ptr(ctx.js), jb_len(ctx.js), 1, fp);
+ fwrite(SCJbPtr(ctx.js), SCJbLen(ctx.js), 1, fp);
fprintf(fp, "\n");
fclose(fp);
}
SCMutexUnlock(&g_rules_analyzer_write_m);
- jb_free(ctx.js);
+ SCJbFree(ctx.js);
SCReturn;
}
if (de_ctx->pattern_hash_table == NULL)
return;
- JsonBuilder *root_jb = jb_new_object();
- JsonBuilder *arrays[de_ctx->buffer_type_id];
- memset(&arrays, 0, sizeof(JsonBuilder *) * de_ctx->buffer_type_id);
+ SCJsonBuilder *root_jb = SCJbNewObject();
+ SCJsonBuilder *arrays[de_ctx->buffer_type_id];
+ memset(&arrays, 0, sizeof(SCJsonBuilder *) * de_ctx->buffer_type_id);
- jb_open_array(root_jb, "buffers");
+ SCJbOpenArray(root_jb, "buffers");
for (HashListTableBucket *htb = HashListTableGetListHead(de_ctx->pattern_hash_table);
htb != NULL; htb = HashListTableGetListNext(htb)) {
DetectPatternTracker *p = HashListTableGetListData(htb);
DetectContentPatternPrettyPrint(p->cd, str, sizeof(str));
- JsonBuilder *jb = arrays[p->sm_list];
+ SCJsonBuilder *jb = arrays[p->sm_list];
if (arrays[p->sm_list] == NULL) {
- jb = arrays[p->sm_list] = jb_new_object();
+ jb = arrays[p->sm_list] = SCJbNewObject();
const char *name;
if (p->sm_list < DETECT_SM_LIST_DYNAMIC_START)
name = DetectListToHumanString(p->sm_list);
else
name = DetectEngineBufferTypeGetNameById(de_ctx, p->sm_list);
- jb_set_string(jb, "name", name);
- jb_set_uint(jb, "list_id", p->sm_list);
+ SCJbSetString(jb, "name", name);
+ SCJbSetUint(jb, "list_id", p->sm_list);
- jb_open_array(jb, "patterns");
+ SCJbOpenArray(jb, "patterns");
}
- jb_start_object(jb);
- jb_set_string(jb, "pattern", str);
- jb_set_uint(jb, "patlen", p->cd->content_len);
- jb_set_uint(jb, "cnt", p->cnt);
- jb_set_uint(jb, "mpm", p->mpm);
- jb_open_object(jb, "flags");
- jb_set_bool(jb, "nocase", p->cd->flags & DETECT_CONTENT_NOCASE);
- jb_set_bool(jb, "negated", p->cd->flags & DETECT_CONTENT_NEGATED);
- jb_set_bool(jb, "depth", p->cd->flags & DETECT_CONTENT_DEPTH);
- jb_set_bool(jb, "offset", p->cd->flags & DETECT_CONTENT_OFFSET);
- jb_set_bool(jb, "endswith", p->cd->flags & DETECT_CONTENT_ENDS_WITH);
- jb_close(jb);
- jb_close(jb);
+ SCJbStartObject(jb);
+ SCJbSetString(jb, "pattern", str);
+ SCJbSetUint(jb, "patlen", p->cd->content_len);
+ SCJbSetUint(jb, "cnt", p->cnt);
+ SCJbSetUint(jb, "mpm", p->mpm);
+ SCJbOpenObject(jb, "flags");
+ SCJbSetBool(jb, "nocase", p->cd->flags & DETECT_CONTENT_NOCASE);
+ SCJbSetBool(jb, "negated", p->cd->flags & DETECT_CONTENT_NEGATED);
+ SCJbSetBool(jb, "depth", p->cd->flags & DETECT_CONTENT_DEPTH);
+ SCJbSetBool(jb, "offset", p->cd->flags & DETECT_CONTENT_OFFSET);
+ SCJbSetBool(jb, "endswith", p->cd->flags & DETECT_CONTENT_ENDS_WITH);
+ SCJbClose(jb);
+ SCJbClose(jb);
}
for (uint32_t i = 0; i < de_ctx->buffer_type_id; i++) {
- JsonBuilder *jb = arrays[i];
+ SCJsonBuilder *jb = arrays[i];
if (jb == NULL)
continue;
- jb_close(jb); // array
- jb_close(jb); // object
+ SCJbClose(jb); // array
+ SCJbClose(jb); // object
- jb_append_object(root_jb, jb);
- jb_free(jb);
+ SCJbAppendObject(root_jb, jb);
+ SCJbFree(jb);
}
- jb_close(root_jb);
- jb_close(root_jb);
+ SCJbClose(root_jb);
+ SCJbClose(root_jb);
const char *filename = "patterns.json";
const char *log_dir = SCConfigGetLogDirectory();
SCMutexLock(&g_rules_analyzer_write_m);
FILE *fp = fopen(json_path, "a");
if (fp != NULL) {
- fwrite(jb_ptr(root_jb), jb_len(root_jb), 1, fp);
+ fwrite(SCJbPtr(root_jb), SCJbLen(root_jb), 1, fp);
fprintf(fp, "\n");
fclose(fp);
}
SCMutexUnlock(&g_rules_analyzer_write_m);
- jb_free(root_jb);
+ SCJbFree(root_jb);
HashListTableFree(de_ctx->pattern_hash_table);
de_ctx->pattern_hash_table = NULL;
return (cd->flags & DETECT_CONTENT_NEGATED) ? true : false;
}
-static JsonBuilder *RulesGroupPrintSghStats(const DetectEngineCtx *de_ctx, const SigGroupHead *sgh,
- const int add_rules, const int add_mpm_stats)
+static SCJsonBuilder *RulesGroupPrintSghStats(const DetectEngineCtx *de_ctx,
+ const SigGroupHead *sgh, const int add_rules, const int add_mpm_stats)
{
uint32_t prefilter_cnt = 0;
uint32_t mpm_cnt = 0;
if (sgh->init == NULL)
return NULL;
- JsonBuilder *js = jb_new_object();
+ SCJsonBuilder *js = SCJbNewObject();
if (unlikely(js == NULL))
return NULL;
- jb_set_uint(js, "id", sgh->id);
+ SCJbSetUint(js, "id", sgh->id);
- jb_open_array(js, "rules");
+ SCJbOpenArray(js, "rules");
for (uint32_t x = 0; x < sgh->init->sig_cnt; x++) {
const Signature *s = sgh->init->match_array[x];
if (s == NULL)
alstats[s->alproto]++;
if (add_rules) {
- JsonBuilder *e = jb_new_object();
+ SCJsonBuilder *e = SCJbNewObject();
if (e != NULL) {
- jb_set_uint(e, "sig_id", s->id);
- jb_close(e);
- jb_append_object(js, e);
- jb_free(e);
+ SCJbSetUint(e, "sig_id", s->id);
+ SCJbClose(e);
+ SCJbAppendObject(js, e);
+ SCJbFree(e);
}
}
}
- jb_close(js);
+ SCJbClose(js);
- jb_open_object(js, "stats");
- jb_set_uint(js, "total", sgh->init->sig_cnt);
+ SCJbOpenObject(js, "stats");
+ SCJbSetUint(js, "total", sgh->init->sig_cnt);
- jb_open_object(js, "types");
- jb_set_uint(js, "mpm", mpm_cnt);
- jb_set_uint(js, "non_mpm", nonmpm_cnt);
- jb_set_uint(js, "mpm_depth", mpm_depth_cnt);
- jb_set_uint(js, "mpm_endswith", mpm_endswith_cnt);
- jb_set_uint(js, "negated_mpm", negmpm_cnt);
- jb_set_uint(js, "payload_but_no_mpm", payload_no_mpm_cnt);
- jb_set_uint(js, "prefilter", prefilter_cnt);
- jb_set_uint(js, "syn", syn_cnt);
- jb_set_uint(js, "any5", any5_cnt);
- jb_close(js);
+ SCJbOpenObject(js, "types");
+ SCJbSetUint(js, "mpm", mpm_cnt);
+ SCJbSetUint(js, "non_mpm", nonmpm_cnt);
+ SCJbSetUint(js, "mpm_depth", mpm_depth_cnt);
+ SCJbSetUint(js, "mpm_endswith", mpm_endswith_cnt);
+ SCJbSetUint(js, "negated_mpm", negmpm_cnt);
+ SCJbSetUint(js, "payload_but_no_mpm", payload_no_mpm_cnt);
+ SCJbSetUint(js, "prefilter", prefilter_cnt);
+ SCJbSetUint(js, "syn", syn_cnt);
+ SCJbSetUint(js, "any5", any5_cnt);
+ SCJbClose(js);
for (AppProto i = 0; i < g_alproto_max; i++) {
if (alstats[i] > 0) {
const char *proto_name = (i == ALPROTO_UNKNOWN) ? "payload" : AppProtoToString(i);
- jb_open_object(js, proto_name);
- jb_set_uint(js, "total", alstats[i]);
+ SCJbOpenObject(js, proto_name);
+ SCJbSetUint(js, "total", alstats[i]);
for (int y = 0; y < max_buffer_type_id; y++) {
if (alproto_mpm_bufs[i][y] == 0)
else
name = DetectEngineBufferTypeGetNameById(de_ctx, y);
- jb_set_uint(js, name, alproto_mpm_bufs[i][y]);
+ SCJbSetUint(js, name, alproto_mpm_bufs[i][y]);
}
- jb_close(js);
+ SCJbClose(js);
}
}
if (add_mpm_stats) {
- jb_open_object(js, "mpm");
+ SCJbOpenObject(js, "mpm");
for (int i = 0; i < max_buffer_type_id; i++) {
if (mpm_stats[i].cnt > 0) {
else
name = DetectEngineBufferTypeGetNameById(de_ctx, i);
- jb_open_array(js, name);
+ SCJbOpenArray(js, name);
for (int y = 0; y < 256; y++) {
if (mpm_sizes[i][y] == 0)
continue;
- JsonBuilder *e = jb_new_object();
+ SCJsonBuilder *e = SCJbNewObject();
if (e != NULL) {
- jb_set_uint(e, "size", y);
- jb_set_uint(e, "count", mpm_sizes[i][y]);
- jb_close(e);
- jb_append_object(js, e);
- jb_free(e);
+ SCJbSetUint(e, "size", y);
+ SCJbSetUint(e, "count", mpm_sizes[i][y]);
+ SCJbClose(e);
+ SCJbAppendObject(js, e);
+ SCJbFree(e);
}
}
- JsonBuilder *e = jb_new_object();
+ SCJsonBuilder *e = SCJbNewObject();
if (e != NULL) {
- jb_set_uint(e, "total", mpm_stats[i].cnt);
- jb_set_uint(e, "avg_strength", mpm_stats[i].total / mpm_stats[i].cnt);
- jb_set_uint(e, "min_strength", mpm_stats[i].min);
- jb_set_uint(e, "max_strength", mpm_stats[i].max);
- jb_close(e);
- jb_append_object(js, e);
- jb_free(e);
+ SCJbSetUint(e, "total", mpm_stats[i].cnt);
+ SCJbSetUint(e, "avg_strength", mpm_stats[i].total / mpm_stats[i].cnt);
+ SCJbSetUint(e, "min_strength", mpm_stats[i].min);
+ SCJbSetUint(e, "max_strength", mpm_stats[i].max);
+ SCJbClose(e);
+ SCJbAppendObject(js, e);
+ SCJbFree(e);
}
- jb_close(js);
+ SCJbClose(js);
}
}
- jb_close(js);
+ SCJbClose(js);
}
- jb_close(js);
+ SCJbClose(js);
- jb_set_uint(js, "score", sgh->init->score);
- jb_close(js);
+ SCJbSetUint(js, "score", sgh->init->score);
+ SCJbClose(js);
return js;
}
static void RulesDumpGrouping(const DetectEngineCtx *de_ctx,
const int add_rules, const int add_mpm_stats)
{
- JsonBuilder *js = jb_new_object();
+ SCJsonBuilder *js = SCJbNewObject();
if (unlikely(js == NULL))
return;
if (p == IPPROTO_TCP || p == IPPROTO_UDP) {
const char *name = (p == IPPROTO_TCP) ? "tcp" : "udp";
- jb_open_object(js, name);
- jb_open_array(js, "toserver");
+ SCJbOpenObject(js, name);
+ SCJbOpenArray(js, "toserver");
const DetectPort *list =
(p == IPPROTO_TCP) ? de_ctx->flow_gh[1].tcp : de_ctx->flow_gh[1].udp;
while (list != NULL) {
- JsonBuilder *port = jb_new_object();
- jb_set_uint(port, "port", list->port);
- jb_set_uint(port, "port2", list->port2);
+ SCJsonBuilder *port = SCJbNewObject();
+ SCJbSetUint(port, "port", list->port);
+ SCJbSetUint(port, "port2", list->port2);
- JsonBuilder *stats =
+ SCJsonBuilder *stats =
RulesGroupPrintSghStats(de_ctx, list->sh, add_rules, add_mpm_stats);
- jb_set_object(port, "rulegroup", stats);
- jb_free(stats);
- jb_close(port);
- jb_append_object(js, port);
- jb_free(port);
+ SCJbSetObject(port, "rulegroup", stats);
+ SCJbFree(stats);
+ SCJbClose(port);
+ SCJbAppendObject(js, port);
+ SCJbFree(port);
list = list->next;
}
- jb_close(js); // toserver array
+ SCJbClose(js); // toserver array
- jb_open_array(js, "toclient");
+ SCJbOpenArray(js, "toclient");
list = (p == IPPROTO_TCP) ? de_ctx->flow_gh[0].tcp :
de_ctx->flow_gh[0].udp;
while (list != NULL) {
- JsonBuilder *port = jb_new_object();
- jb_set_uint(port, "port", list->port);
- jb_set_uint(port, "port2", list->port2);
+ SCJsonBuilder *port = SCJbNewObject();
+ SCJbSetUint(port, "port", list->port);
+ SCJbSetUint(port, "port2", list->port2);
- JsonBuilder *stats =
+ SCJsonBuilder *stats =
RulesGroupPrintSghStats(de_ctx, list->sh, add_rules, add_mpm_stats);
- jb_set_object(port, "rulegroup", stats);
- jb_free(stats);
- jb_close(port);
- jb_append_object(js, port);
- jb_free(port);
+ SCJbSetObject(port, "rulegroup", stats);
+ SCJbFree(stats);
+ SCJbClose(port);
+ SCJbAppendObject(js, port);
+ SCJbFree(port);
list = list->next;
}
- jb_close(js); // toclient array
- jb_close(js);
+ SCJbClose(js); // toclient array
+ SCJbClose(js);
} else if (p == IPPROTO_ICMP || p == IPPROTO_ICMPV6) {
const char *name = (p == IPPROTO_ICMP) ? "icmpv4" : "icmpv6";
- jb_open_object(js, name);
+ SCJbOpenObject(js, name);
if (de_ctx->flow_gh[1].sgh[p]) {
- jb_open_object(js, "toserver");
- JsonBuilder *stats = RulesGroupPrintSghStats(
+ SCJbOpenObject(js, "toserver");
+ SCJsonBuilder *stats = RulesGroupPrintSghStats(
de_ctx, de_ctx->flow_gh[1].sgh[p], add_rules, add_mpm_stats);
- jb_set_object(js, "rulegroup", stats);
- jb_free(stats);
- jb_close(js);
+ SCJbSetObject(js, "rulegroup", stats);
+ SCJbFree(stats);
+ SCJbClose(js);
}
if (de_ctx->flow_gh[0].sgh[p]) {
- jb_open_object(js, "toclient");
- JsonBuilder *stats = RulesGroupPrintSghStats(
+ SCJbOpenObject(js, "toclient");
+ SCJsonBuilder *stats = RulesGroupPrintSghStats(
de_ctx, de_ctx->flow_gh[0].sgh[p], add_rules, add_mpm_stats);
- jb_set_object(js, "rulegroup", stats);
- jb_free(stats);
- jb_close(js);
+ SCJbSetObject(js, "rulegroup", stats);
+ SCJbFree(stats);
+ SCJbClose(js);
}
- jb_close(js);
+ SCJbClose(js);
}
}
- jb_close(js);
+ SCJbClose(js);
const char *filename = "rule_group.json";
const char *log_dir = SCConfigGetLogDirectory();
FILE *fp = fopen(log_path, "w");
if (fp != NULL) {
- fwrite(jb_ptr(js), jb_len(js), 1, fp);
+ fwrite(SCJbPtr(js), SCJbLen(js), 1, fp);
(void)fclose(fp);
}
- jb_free(js);
+ SCJbFree(js);
}
static int RulesGroupByIPProto(DetectEngineCtx *de_ctx)
const Packet *p, const uint64_t tx_id, const uint32_t rule_cnt,
const uint32_t pkt_prefilter_cnt)
{
- JsonBuilder *js =
+ SCJsonBuilder *js =
CreateEveHeaderWithTxId(p, LOG_DIR_PACKET, "inspectedrules", NULL, tx_id, NULL);
if (js == NULL)
return;
- jb_set_string(js, "app_proto", AppProtoToString(p->flow->alproto));
+ SCJbSetString(js, "app_proto", AppProtoToString(p->flow->alproto));
- jb_open_object(js, "inspectedrules");
- jb_set_string(js, "inspect_type", "tx");
- jb_set_uint(js, "rule_group_id", sgh->id);
- jb_set_uint(js, "rule_cnt", rule_cnt);
- jb_set_uint(js, "pkt_rule_cnt", pkt_prefilter_cnt);
- jb_set_uint(js, "non_pf_rule_cnt", det_ctx->non_pf_store_cnt);
+ SCJbOpenObject(js, "inspectedrules");
+ SCJbSetString(js, "inspect_type", "tx");
+ SCJbSetUint(js, "rule_group_id", sgh->id);
+ SCJbSetUint(js, "rule_cnt", rule_cnt);
+ SCJbSetUint(js, "pkt_rule_cnt", pkt_prefilter_cnt);
+ SCJbSetUint(js, "non_pf_rule_cnt", det_ctx->non_pf_store_cnt);
- jb_open_array(js, "rules");
+ SCJbOpenArray(js, "rules");
for (uint32_t x = 0; x < rule_cnt; x++) {
SigIntId iid = det_ctx->tx_candidates[x].id;
const Signature *s = det_ctx->de_ctx->sig_array[iid];
if (s == NULL)
continue;
- jb_append_uint(js, s->id);
+ SCJbAppendUint(js, s->id);
}
- jb_close(js); // close array
- jb_close(js); // close inspectedrules object
- jb_close(js); // final close
+ SCJbClose(js); // close array
+ SCJbClose(js); // close inspectedrules object
+ SCJbClose(js); // final close
const char *filename = "packet_inspected_rules.json";
const char *log_dir = SCConfigGetLogDirectory();
SCMutexLock(&g_rule_dump_write_m);
FILE *fp = fopen(log_path, "a");
if (fp != NULL) {
- fwrite(jb_ptr(js), jb_len(js), 1, fp);
+ fwrite(SCJbPtr(js), SCJbLen(js), 1, fp);
fclose(fp);
}
SCMutexUnlock(&g_rule_dump_write_m);
- jb_free(js);
+ SCJbFree(js);
}
void RulesDumpMatchArray(const DetectEngineThreadCtx *det_ctx,
const SigGroupHead *sgh, const Packet *p)
{
- JsonBuilder *js = CreateEveHeader(p, LOG_DIR_PACKET, "inspectedrules", NULL, NULL);
+ SCJsonBuilder *js = CreateEveHeader(p, LOG_DIR_PACKET, "inspectedrules", NULL, NULL);
if (js == NULL)
return;
if (p->flow) {
- jb_set_string(js, "app_proto", AppProtoToString(p->flow->alproto));
+ SCJbSetString(js, "app_proto", AppProtoToString(p->flow->alproto));
}
- jb_open_object(js, "inspectedrules");
- jb_set_string(js, "inspect_type", "packet");
- jb_set_uint(js, "rule_group_id", sgh->id);
- jb_set_uint(js, "rule_cnt", det_ctx->match_array_cnt);
- jb_set_uint(js, "non_pf_rule_cnt", det_ctx->non_pf_store_cnt);
+ SCJbOpenObject(js, "inspectedrules");
+ SCJbSetString(js, "inspect_type", "packet");
+ SCJbSetUint(js, "rule_group_id", sgh->id);
+ SCJbSetUint(js, "rule_cnt", det_ctx->match_array_cnt);
+ SCJbSetUint(js, "non_pf_rule_cnt", det_ctx->non_pf_store_cnt);
- jb_open_array(js, "rules");
+ SCJbOpenArray(js, "rules");
for (uint32_t x = 0; x < det_ctx->match_array_cnt; x++) {
const Signature *s = det_ctx->match_array[x];
if (s == NULL)
continue;
- jb_append_uint(js, s->id);
-
+ SCJbAppendUint(js, s->id);
}
- jb_close(js); // close array
- jb_close(js); // close inspectedrules object
- jb_close(js); // final close
+ SCJbClose(js); // close array
+ SCJbClose(js); // close inspectedrules object
+ SCJbClose(js); // final close
const char *filename = "packet_inspected_rules.json";
const char *log_dir = SCConfigGetLogDirectory();
SCMutexLock(&g_rule_dump_write_m);
FILE *fp = fopen(log_path, "a");
if (fp != NULL) {
- fwrite(jb_ptr(js), jb_len(js), 1, fp);
+ fwrite(SCJbPtr(js), SCJbLen(js), 1, fp);
fclose(fp);
}
SCMutexUnlock(&g_rule_dump_write_m);
- jb_free(js);
+ SCJbFree(js);
}
#endif /* PROFILING */
static void DetectFlowbitsAnalyzeDump(const DetectEngineCtx *de_ctx,
struct FBAnalyze *array, uint32_t elements)
{
- JsonBuilder *js = jb_new_object();
+ SCJsonBuilder *js = SCJbNewObject();
if (js == NULL)
return;
- jb_open_array(js, "flowbits");
+ SCJbOpenArray(js, "flowbits");
for (uint32_t x = 0; x < elements; x++) {
const char *varname = VarNameStoreSetupLookup(x, VAR_TYPE_FLOW_BIT);
if (varname == NULL)
const struct FBAnalyze *e = &array[x];
- jb_start_object(js);
- jb_set_string(js, "name", varname);
- jb_set_uint(js, "internal_id", x);
- jb_set_uint(js, "set_cnt", e->cnts[DETECT_FLOWBITS_CMD_SET]);
- jb_set_uint(js, "unset_cnt", e->cnts[DETECT_FLOWBITS_CMD_UNSET]);
- jb_set_uint(js, "toggle_cnt", e->cnts[DETECT_FLOWBITS_CMD_TOGGLE]);
- jb_set_uint(js, "isset_cnt", e->cnts[DETECT_FLOWBITS_CMD_ISSET]);
- jb_set_uint(js, "isnotset_cnt", e->cnts[DETECT_FLOWBITS_CMD_ISNOTSET]);
+ SCJbStartObject(js);
+ SCJbSetString(js, "name", varname);
+ SCJbSetUint(js, "internal_id", x);
+ SCJbSetUint(js, "set_cnt", e->cnts[DETECT_FLOWBITS_CMD_SET]);
+ SCJbSetUint(js, "unset_cnt", e->cnts[DETECT_FLOWBITS_CMD_UNSET]);
+ SCJbSetUint(js, "toggle_cnt", e->cnts[DETECT_FLOWBITS_CMD_TOGGLE]);
+ SCJbSetUint(js, "isset_cnt", e->cnts[DETECT_FLOWBITS_CMD_ISSET]);
+ SCJbSetUint(js, "isnotset_cnt", e->cnts[DETECT_FLOWBITS_CMD_ISNOTSET]);
// sets
if (e->cnts[DETECT_FLOWBITS_CMD_SET]) {
- jb_open_array(js, "sets");
+ SCJbOpenArray(js, "sets");
for (uint32_t i = 0; i < e->set_sids_idx; i++) {
const Signature *s = de_ctx->sig_array[e->set_sids[i]];
- jb_append_uint(js, s->id);
+ SCJbAppendUint(js, s->id);
}
- jb_close(js);
+ SCJbClose(js);
}
// gets
if (e->cnts[DETECT_FLOWBITS_CMD_ISSET]) {
- jb_open_array(js, "isset");
+ SCJbOpenArray(js, "isset");
for (uint32_t i = 0; i < e->isset_sids_idx; i++) {
const Signature *s = de_ctx->sig_array[e->isset_sids[i]];
- jb_append_uint(js, s->id);
+ SCJbAppendUint(js, s->id);
}
- jb_close(js);
+ SCJbClose(js);
}
// isnotset
if (e->cnts[DETECT_FLOWBITS_CMD_ISNOTSET]) {
- jb_open_array(js, "isnotset");
+ SCJbOpenArray(js, "isnotset");
for (uint32_t i = 0; i < e->isnotset_sids_idx; i++) {
const Signature *s = de_ctx->sig_array[e->isnotset_sids[i]];
- jb_append_uint(js, s->id);
+ SCJbAppendUint(js, s->id);
}
- jb_close(js);
+ SCJbClose(js);
}
// unset
if (e->cnts[DETECT_FLOWBITS_CMD_UNSET]) {
- jb_open_array(js, "unset");
+ SCJbOpenArray(js, "unset");
for (uint32_t i = 0; i < e->unset_sids_idx; i++) {
const Signature *s = de_ctx->sig_array[e->unset_sids[i]];
- jb_append_uint(js, s->id);
+ SCJbAppendUint(js, s->id);
}
- jb_close(js);
+ SCJbClose(js);
}
// toggle
if (e->cnts[DETECT_FLOWBITS_CMD_TOGGLE]) {
- jb_open_array(js, "toggle");
+ SCJbOpenArray(js, "toggle");
for (uint32_t i = 0; i < e->toggle_sids_idx; i++) {
const Signature *s = de_ctx->sig_array[e->toggle_sids[i]];
- jb_append_uint(js, s->id);
+ SCJbAppendUint(js, s->id);
}
- jb_close(js);
+ SCJbClose(js);
}
- jb_close(js);
+ SCJbClose(js);
}
- jb_close(js); // array
- jb_close(js); // object
+ SCJbClose(js); // array
+ SCJbClose(js); // object
const char *filename = "flowbits.json";
const char *log_dir = SCConfigGetLogDirectory();
SCMutexLock(&g_flowbits_dump_write_m);
FILE *fp = fopen(log_path, "w");
if (fp != NULL) {
- fwrite(jb_ptr(js), jb_len(js), 1, fp);
+ fwrite(SCJbPtr(js), SCJbLen(js), 1, fp);
fprintf(fp, "\n");
fclose(fp);
}
SCMutexUnlock(&g_flowbits_dump_write_m);
- jb_free(js);
+ SCJbFree(js);
}
static bool PrefilterFlowbitIsPrefilterable(const Signature *s)
BUG_ON(i != cnt);
qsort(array, cnt, sizeof(DetectMetadata *), SortHelper);
- JsonBuilder *js = jb_new_object();
+ SCJsonBuilder *js = SCJbNewObject();
if (js == NULL)
return NULL;
if (nm && strcasecmp(m->key, nm->key) == 0) {
if (!array_open) {
- jb_open_array(js, m->key);
+ SCJbOpenArray(js, m->key);
array_open = true;
}
- jb_append_string(js, m->value);
+ SCJbAppendString(js, m->value);
} else {
if (!array_open) {
- jb_open_array(js, m->key);
+ SCJbOpenArray(js, m->key);
}
- jb_append_string(js, m->value);
- jb_close(js);
+ SCJbAppendString(js, m->value);
+ SCJbClose(js);
array_open = false;
}
}
- jb_close(js);
+ SCJbClose(js);
/* we have a complete json builder. Now store it as a C string */
- const size_t len = jb_len(js);
+ const size_t len = SCJbLen(js);
#define MD_STR "\"metadata\":"
#define MD_STR_LEN (sizeof(MD_STR) - 1)
char *str = SCMalloc(len + MD_STR_LEN + 1);
if (str == NULL) {
- jb_free(js);
+ SCJbFree(js);
return NULL;
}
char *ptr = str;
memcpy(ptr, MD_STR, MD_STR_LEN);
ptr += MD_STR_LEN;
- memcpy(ptr, jb_ptr(js), len);
+ memcpy(ptr, SCJbPtr(js), len);
ptr += len;
*ptr = '\0';
#undef MD_STR
#undef MD_STR_LEN
- jb_free(js);
+ SCJbFree(js);
return str;
}
return result;
}
-void EveAddFlowTcpStreamFlags(const TcpStream *stream, const char *name, JsonBuilder *jb)
+void EveAddFlowTcpStreamFlags(const TcpStream *stream, const char *name, SCJsonBuilder *jb)
{
- jb_open_array(jb, name);
+ SCJbOpenArray(jb, name);
if (stream->flags & STREAMTCP_STREAM_FLAG_HAS_GAP)
- jb_append_string(jb, "has_gap");
+ SCJbAppendString(jb, "has_gap");
if (stream->flags & STREAMTCP_STREAM_FLAG_NOREASSEMBLY)
- jb_append_string(jb, "noreassembly");
+ SCJbAppendString(jb, "noreassembly");
if (stream->flags & STREAMTCP_STREAM_FLAG_KEEPALIVE)
- jb_append_string(jb, "keepalive");
+ SCJbAppendString(jb, "keepalive");
if (stream->flags & STREAMTCP_STREAM_FLAG_DEPTH_REACHED)
- jb_append_string(jb, "depth_reached");
+ SCJbAppendString(jb, "depth_reached");
if (stream->flags & STREAMTCP_STREAM_FLAG_TRIGGER_RAW)
- jb_append_string(jb, "trigger_raw");
+ SCJbAppendString(jb, "trigger_raw");
if (stream->flags & STREAMTCP_STREAM_FLAG_TIMESTAMP)
- jb_append_string(jb, "timestamp");
+ SCJbAppendString(jb, "timestamp");
if (stream->flags & STREAMTCP_STREAM_FLAG_ZERO_TIMESTAMP)
- jb_append_string(jb, "zero_timestamp");
+ SCJbAppendString(jb, "zero_timestamp");
if (stream->flags & STREAMTCP_STREAM_FLAG_APPPROTO_DETECTION_COMPLETED)
- jb_append_string(jb, "appproto_detection_completed");
+ SCJbAppendString(jb, "appproto_detection_completed");
if (stream->flags & STREAMTCP_STREAM_FLAG_APPPROTO_DETECTION_SKIPPED)
- jb_append_string(jb, "appproto_detection_skipped");
+ SCJbAppendString(jb, "appproto_detection_skipped");
if (stream->flags & STREAMTCP_STREAM_FLAG_NEW_RAW_DISABLED)
- jb_append_string(jb, "new_raw_disabled");
+ SCJbAppendString(jb, "new_raw_disabled");
if (stream->flags & STREAMTCP_STREAM_FLAG_DISABLE_RAW)
- jb_append_string(jb, "disable_raw");
+ SCJbAppendString(jb, "disable_raw");
if (stream->flags & STREAMTCP_STREAM_FLAG_RST_RECV)
- jb_append_string(jb, "rst_recv");
- jb_close(jb);
+ SCJbAppendString(jb, "rst_recv");
+ SCJbClose(jb);
}
-void EveAddFlowTcpFlags(const TcpSession *ssn, const char *name, JsonBuilder *jb)
+void EveAddFlowTcpFlags(const TcpSession *ssn, const char *name, SCJsonBuilder *jb)
{
- jb_open_object(jb, "flags");
+ SCJbOpenObject(jb, "flags");
- jb_open_array(jb, name);
+ SCJbOpenArray(jb, name);
if (ssn->flags & STREAMTCP_FLAG_MIDSTREAM) {
- jb_append_string(jb, "midstream");
+ SCJbAppendString(jb, "midstream");
}
if (ssn->flags & STREAMTCP_FLAG_MIDSTREAM_ESTABLISHED) {
- jb_append_string(jb, "midstream_established");
+ SCJbAppendString(jb, "midstream_established");
}
if (ssn->flags & STREAMTCP_FLAG_MIDSTREAM_SYNACK) {
- jb_append_string(jb, "midstream_synack");
+ SCJbAppendString(jb, "midstream_synack");
}
if (ssn->flags & STREAMTCP_FLAG_TIMESTAMP) {
- jb_append_string(jb, "timestamp");
+ SCJbAppendString(jb, "timestamp");
}
if (ssn->flags & STREAMTCP_FLAG_SERVER_WSCALE) {
- jb_append_string(jb, "server_wscale");
+ SCJbAppendString(jb, "server_wscale");
}
if (ssn->flags & STREAMTCP_FLAG_CLOSED_BY_RST) {
- jb_append_string(jb, "closed_by_rst");
+ SCJbAppendString(jb, "closed_by_rst");
}
if (ssn->flags & STREAMTCP_FLAG_4WHS) {
- jb_append_string(jb, "4whs");
+ SCJbAppendString(jb, "4whs");
}
if (ssn->flags & STREAMTCP_FLAG_DETECTION_EVASION_ATTEMPT) {
- jb_append_string(jb, "detect_evasion_attempt");
+ SCJbAppendString(jb, "detect_evasion_attempt");
}
if (ssn->flags & STREAMTCP_FLAG_CLIENT_SACKOK) {
- jb_append_string(jb, "client_sackok");
+ SCJbAppendString(jb, "client_sackok");
}
if (ssn->flags & STREAMTCP_FLAG_CLIENT_SACKOK) {
- jb_append_string(jb, "sackok");
+ SCJbAppendString(jb, "sackok");
}
if (ssn->flags & STREAMTCP_FLAG_3WHS_CONFIRMED) {
- jb_append_string(jb, "3whs_confirmed");
+ SCJbAppendString(jb, "3whs_confirmed");
}
if (ssn->flags & STREAMTCP_FLAG_APP_LAYER_DISABLED) {
- jb_append_string(jb, "app_layer_disabled");
+ SCJbAppendString(jb, "app_layer_disabled");
}
if (ssn->flags & STREAMTCP_FLAG_BYPASS) {
- jb_append_string(jb, "bypass");
+ SCJbAppendString(jb, "bypass");
}
if (ssn->flags & STREAMTCP_FLAG_TCP_FAST_OPEN) {
- jb_append_string(jb, "tcp_fast_open");
+ SCJbAppendString(jb, "tcp_fast_open");
}
if (ssn->flags & STREAMTCP_FLAG_TFO_DATA_IGNORED) {
- jb_append_string(jb, "tfo_data_ignored");
+ SCJbAppendString(jb, "tfo_data_ignored");
}
- jb_close(jb);
- jb_close(jb);
+ SCJbClose(jb);
+ SCJbClose(jb);
}
-static void LogStreamSB(const StreamingBuffer *sb, JsonBuilder *js)
+static void LogStreamSB(const StreamingBuffer *sb, SCJsonBuilder *js)
{
- jb_set_uint(js, "sb_region_size", sb->region.buf_size);
+ SCJbSetUint(js, "sb_region_size", sb->region.buf_size);
}
-static void LogStream(const TcpStream *stream, JsonBuilder *js)
+static void LogStream(const TcpStream *stream, SCJsonBuilder *js)
{
- jb_set_uint(js, "isn", stream->isn);
- jb_set_uint(js, "next_seq", stream->next_seq);
- jb_set_uint(js, "last_ack", stream->last_ack);
- jb_set_uint(js, "next_win", stream->next_win);
+ SCJbSetUint(js, "isn", stream->isn);
+ SCJbSetUint(js, "next_seq", stream->next_seq);
+ SCJbSetUint(js, "last_ack", stream->last_ack);
+ SCJbSetUint(js, "next_win", stream->next_win);
if (!(stream->flags & STREAMTCP_STREAM_FLAG_NOREASSEMBLY)) {
- jb_set_uint(js, "base_seq", stream->base_seq);
- jb_set_uint(js, "segs_right_edge", stream->segs_right_edge);
+ SCJbSetUint(js, "base_seq", stream->base_seq);
+ SCJbSetUint(js, "segs_right_edge", stream->segs_right_edge);
}
- jb_set_uint(js, "window", stream->window);
- jb_set_uint(js, "wscale", stream->wscale);
+ SCJbSetUint(js, "window", stream->window);
+ SCJbSetUint(js, "wscale", stream->wscale);
EveAddFlowTcpStreamFlags(stream, "flags", js);
{
segs++;
}
- jb_set_uint(js, "seg_cnt", segs);
+ SCJbSetUint(js, "seg_cnt", segs);
LogStreamSB(&stream->sb, js);
}
JsonAddrInfo addr = json_addr_info_zero;
JsonAddrInfoInit(p, LOG_DIR_PACKET, &addr);
- JsonBuilder *js = CreateEveHeader(p, LOG_DIR_PACKET, "stream_tcp", &addr, ctx->eve_ctx);
+ SCJsonBuilder *js = CreateEveHeader(p, LOG_DIR_PACKET, "stream_tcp", &addr, ctx->eve_ctx);
if (unlikely(js == NULL))
return TM_ECODE_OK;
if (p->flow != NULL) {
if (p->flowflags & FLOW_PKT_TOSERVER) {
- jb_set_string(js, "direction", "to_server");
+ SCJbSetString(js, "direction", "to_server");
} else {
- jb_set_string(js, "direction", "to_client");
+ SCJbSetString(js, "direction", "to_client");
}
}
- jb_open_object(js, "stream_tcp");
- jb_open_object(js, "packet");
+ SCJbOpenObject(js, "stream_tcp");
+ SCJbOpenObject(js, "packet");
if (PacketIsIPv4(p)) {
const IPV4Hdr *ip4h = PacketGetIPv4(p);
- jb_set_uint(js, "len", IPV4_GET_RAW_IPLEN(ip4h));
- jb_set_uint(js, "tos", IPV4_GET_RAW_IPTOS(ip4h));
- jb_set_uint(js, "ttl", IPV4_GET_RAW_IPTTL(ip4h));
- jb_set_uint(js, "ipid", IPV4_GET_RAW_IPID(ip4h));
+ SCJbSetUint(js, "len", IPV4_GET_RAW_IPLEN(ip4h));
+ SCJbSetUint(js, "tos", IPV4_GET_RAW_IPTOS(ip4h));
+ SCJbSetUint(js, "ttl", IPV4_GET_RAW_IPTTL(ip4h));
+ SCJbSetUint(js, "ipid", IPV4_GET_RAW_IPID(ip4h));
} else if (PacketIsIPv6(p)) {
const IPV6Hdr *ip6h = PacketGetIPv6(p);
- jb_set_uint(js, "len", IPV6_GET_RAW_PLEN(ip6h));
- jb_set_uint(js, "tc", IPV6_GET_RAW_CLASS(ip6h));
- jb_set_uint(js, "hoplimit", IPV6_GET_RAW_HLIM(ip6h));
- jb_set_uint(js, "flowlbl", IPV6_GET_RAW_FLOW(ip6h));
+ SCJbSetUint(js, "len", IPV6_GET_RAW_PLEN(ip6h));
+ SCJbSetUint(js, "tc", IPV6_GET_RAW_CLASS(ip6h));
+ SCJbSetUint(js, "hoplimit", IPV6_GET_RAW_HLIM(ip6h));
+ SCJbSetUint(js, "flowlbl", IPV6_GET_RAW_FLOW(ip6h));
}
if (PacketIsTCP(p)) {
const TCPHdr *tcph = PacketGetTCP(p);
- jb_set_uint(js, "tcpseq", TCP_GET_RAW_SEQ(tcph));
- jb_set_uint(js, "tcpack", TCP_GET_RAW_ACK(tcph));
- jb_set_uint(js, "tcpwin", TCP_GET_RAW_WINDOW(tcph));
- jb_set_bool(js, "syn", TCP_ISSET_FLAG_RAW_SYN(tcph) ? true : false);
- jb_set_bool(js, "ack", TCP_ISSET_FLAG_RAW_ACK(tcph) ? true : false);
- jb_set_bool(js, "psh", TCP_ISSET_FLAG_RAW_PUSH(tcph) ? true : false);
- jb_set_bool(js, "rst", TCP_ISSET_FLAG_RAW_RST(tcph) ? true : false);
- jb_set_bool(js, "urg", TCP_ISSET_FLAG_RAW_URG(tcph) ? true : false);
- jb_set_bool(js, "fin", TCP_ISSET_FLAG_RAW_FIN(tcph) ? true : false);
- jb_set_uint(js, "tcpres", TCP_GET_RAW_X2(tcph));
- jb_set_uint(js, "tcpurgp", TCP_GET_RAW_URG_POINTER(tcph));
-
- jb_open_array(js, "flags");
+ SCJbSetUint(js, "tcpseq", TCP_GET_RAW_SEQ(tcph));
+ SCJbSetUint(js, "tcpack", TCP_GET_RAW_ACK(tcph));
+ SCJbSetUint(js, "tcpwin", TCP_GET_RAW_WINDOW(tcph));
+ SCJbSetBool(js, "syn", TCP_ISSET_FLAG_RAW_SYN(tcph) ? true : false);
+ SCJbSetBool(js, "ack", TCP_ISSET_FLAG_RAW_ACK(tcph) ? true : false);
+ SCJbSetBool(js, "psh", TCP_ISSET_FLAG_RAW_PUSH(tcph) ? true : false);
+ SCJbSetBool(js, "rst", TCP_ISSET_FLAG_RAW_RST(tcph) ? true : false);
+ SCJbSetBool(js, "urg", TCP_ISSET_FLAG_RAW_URG(tcph) ? true : false);
+ SCJbSetBool(js, "fin", TCP_ISSET_FLAG_RAW_FIN(tcph) ? true : false);
+ SCJbSetUint(js, "tcpres", TCP_GET_RAW_X2(tcph));
+ SCJbSetUint(js, "tcpurgp", TCP_GET_RAW_URG_POINTER(tcph));
+
+ SCJbOpenArray(js, "flags");
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_RETRANSMISSION)
- jb_append_string(js, "retransmission");
+ SCJbAppendString(js, "retransmission");
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_SPURIOUS_RETRANSMISSION)
- jb_append_string(js, "spurious_retransmission");
+ SCJbAppendString(js, "spurious_retransmission");
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_KEEPALIVE)
- jb_append_string(js, "keepalive");
+ SCJbAppendString(js, "keepalive");
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_KEEPALIVEACK)
- jb_append_string(js, "keepalive_ack");
+ SCJbAppendString(js, "keepalive_ack");
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_WINDOWUPDATE)
- jb_append_string(js, "window_update");
+ SCJbAppendString(js, "window_update");
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_EVENTSET)
- jb_append_string(js, "event_set");
+ SCJbAppendString(js, "event_set");
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_STATE_UPDATE)
- jb_append_string(js, "state_update");
+ SCJbAppendString(js, "state_update");
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_DUP_ACK)
- jb_append_string(js, "dup_ack");
+ SCJbAppendString(js, "dup_ack");
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_DSACK)
- jb_append_string(js, "dsack");
+ SCJbAppendString(js, "dsack");
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_ACK_UNSEEN_DATA)
- jb_append_string(js, "ack_unseen_data");
+ SCJbAppendString(js, "ack_unseen_data");
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_TCP_SESSION_REUSE)
- jb_append_string(js, "tcp_session_reuse");
+ SCJbAppendString(js, "tcp_session_reuse");
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_TCP_ZERO_WIN_PROBE)
- jb_append_string(js, "zero_window_probe");
+ SCJbAppendString(js, "zero_window_probe");
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_TCP_ZERO_WIN_PROBE_ACK)
- jb_append_string(js, "zero_window_probe_ack");
- jb_close(js);
+ SCJbAppendString(js, "zero_window_probe_ack");
+ SCJbClose(js);
}
- jb_close(js);
+ SCJbClose(js);
- jb_open_object(js, "session");
+ SCJbOpenObject(js, "session");
if (p->flow != NULL && p->flow->protoctx != NULL) {
const TcpSession *ssn = p->flow->protoctx;
const char *tcp_state = StreamTcpStateAsString(ssn->state);
if (tcp_state != NULL)
- jb_set_string(js, "state", tcp_state);
+ SCJbSetString(js, "state", tcp_state);
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_STATE_UPDATE) {
const char *tcp_pstate = StreamTcpStateAsString(ssn->pstate);
if (tcp_pstate != NULL)
- jb_set_string(js, "pstate", tcp_pstate);
+ SCJbSetString(js, "pstate", tcp_pstate);
}
EveAddFlowTcpFlags(ssn, "flags", js);
- jb_open_object(js, "client");
+ SCJbOpenObject(js, "client");
LogStream(&ssn->client, js);
- jb_close(js);
- jb_open_object(js, "server");
+ SCJbClose(js);
+ SCJbOpenObject(js, "server");
LogStream(&ssn->server, js);
- jb_close(js);
+ SCJbClose(js);
}
- jb_close(js);
+ SCJbClose(js);
if (p->l4.vars.tcp.stream_pkt_flags & STREAM_PKT_FLAG_EVENTSET) {
- jb_open_array(js, "events");
+ SCJbOpenArray(js, "events");
for (int i = 0; i < p->events.cnt; i++) {
uint8_t event_code = p->events.events[i];
bool is_decode = EVENT_IS_DECODER_PACKET_ERROR(event_code);
const char *event = DEvents[event_code].event_name;
if (event == NULL)
continue;
- jb_append_string(js, event);
+ SCJbAppendString(js, event);
}
- jb_close(js);
+ SCJbClose(js);
}
if (p->drop_reason != 0) {
const char *str = PacketDropReasonToString(p->drop_reason);
- jb_set_string(js, "reason", str);
+ SCJbSetString(js, "reason", str);
}
/* Close stream. */
- jb_close(js);
+ SCJbClose(js);
OutputJsonBuilderBuffer(tv, p, p->flow, js, td->ctx);
- jb_free(js);
+ SCJbFree(js);
return TM_ECODE_OK;
}
#include "stream-tcp.h"
void EveStreamLogRegister(void);
-void EveAddFlowTcpStreamFlags(const TcpStream *stream, const char *name, JsonBuilder *jb);
-void EveAddFlowTcpFlags(const TcpSession *ssn, const char *name, JsonBuilder *jb);
+void EveAddFlowTcpStreamFlags(const TcpStream *stream, const char *name, SCJsonBuilder *jb);
+void EveAddFlowTcpFlags(const TcpSession *ssn, const char *name, SCJsonBuilder *jb);
#endif /* SURICATA_OUTPUT_EVE_STREAM_H */
return true;
}
-void SCEveRunCallbacks(ThreadVars *tv, const Packet *p, Flow *f, JsonBuilder *jb)
+void SCEveRunCallbacks(ThreadVars *tv, const Packet *p, Flow *f, SCJsonBuilder *jb)
{
EveUserCallback *cb = eve_user_callbacks;
while (cb != NULL) {
*
* The function type for callbacks registered with
* SCEveRegisterCallback. This function will be called with the
- * JsonBuilder just prior to the top-level object being closed. New
+ * SCJsonBuilder just prior to the top-level object being closed. New
* fields maybe added, however there is no way to alter existing
- * objects already added to the JsonBuilder.
+ * objects already added to the SCJsonBuilder.
*
* \param tv The ThreadVars for the thread performing the logging.
* \param p Packet if available.
* \param user User data provided during callback registration.
*/
typedef void (*SCEveUserCallbackFn)(
- ThreadVars *tv, const Packet *p, Flow *f, JsonBuilder *jb, void *user);
+ ThreadVars *tv, const Packet *p, Flow *f, SCJsonBuilder *jb, void *user);
/** \brief Register a callback for adding extra information to EVE logs.
*
* Allow users to register a callback for each EVE log. The callback
- * is called just before the root object on the JsonBuilder is to be
+ * is called just before the root object on the SCJsonBuilder is to be
* closed.
*
* New objects and fields can be append, but exist entries cannot be modified.
* NULL.
*
* Limitations: At this time the callbacks will only be called for EVE
- * loggers that use JsonBuilder, notably this means it won't be called
+ * loggers that use SCJsonBuilder, notably this means it won't be called
* for stats records at this time.
*
* \returns true if callback is registered, false is not due to memory
*
* Run EVE callbacks.
*/
-void SCEveRunCallbacks(ThreadVars *tv, const Packet *p, Flow *f, JsonBuilder *jb);
+void SCEveRunCallbacks(ThreadVars *tv, const Packet *p, Flow *f, SCJsonBuilder *jb);
#endif
ff->file_store_id) == (int)sizeof(js_metadata_filename)) {
WARN_ONCE(WOT_SNPRINTF, "Failed to write file info record. Output filename truncated.");
} else {
- JsonBuilder *js_fileinfo =
+ SCJsonBuilder *js_fileinfo =
JsonBuildFileInfoRecord(p, ff, tx, tx_id, true, dir, ctx->xff_cfg, NULL);
if (likely(js_fileinfo != NULL)) {
- jb_close(js_fileinfo);
+ SCJbClose(js_fileinfo);
FILE *out = fopen(js_metadata_filename, "w");
if (out != NULL) {
- size_t js_len = jb_len(js_fileinfo);
- fwrite(jb_ptr(js_fileinfo), js_len, 1, out);
+ size_t js_len = SCJbLen(js_fileinfo);
+ fwrite(SCJbPtr(js_fileinfo), js_len, 1, out);
fclose(out);
}
- jb_free(js_fileinfo);
+ SCJbFree(js_fileinfo);
}
}
}
OutputJsonThreadCtx *ctx;
} JsonAlertLogThread;
-static void AlertJsonSourceTarget(const Packet *p, const PacketAlert *pa,
- JsonBuilder *js, JsonAddrInfo *addr)
+static void AlertJsonSourceTarget(
+ const Packet *p, const PacketAlert *pa, SCJsonBuilder *js, JsonAddrInfo *addr)
{
- jb_open_object(js, "source");
+ SCJbOpenObject(js, "source");
if (pa->s->flags & SIG_FLAG_DEST_IS_TARGET) {
- jb_set_string(js, "ip", addr->src_ip);
+ SCJbSetString(js, "ip", addr->src_ip);
switch (p->proto) {
case IPPROTO_ICMP:
case IPPROTO_ICMPV6:
case IPPROTO_UDP:
case IPPROTO_TCP:
case IPPROTO_SCTP:
- jb_set_uint(js, "port", addr->sp);
+ SCJbSetUint(js, "port", addr->sp);
break;
}
} else if (pa->s->flags & SIG_FLAG_SRC_IS_TARGET) {
- jb_set_string(js, "ip", addr->dst_ip);
+ SCJbSetString(js, "ip", addr->dst_ip);
switch (p->proto) {
case IPPROTO_ICMP:
case IPPROTO_ICMPV6:
case IPPROTO_UDP:
case IPPROTO_TCP:
case IPPROTO_SCTP:
- jb_set_uint(js, "port", addr->dp);
+ SCJbSetUint(js, "port", addr->dp);
break;
}
}
- jb_close(js);
+ SCJbClose(js);
- jb_open_object(js, "target");
+ SCJbOpenObject(js, "target");
if (pa->s->flags & SIG_FLAG_DEST_IS_TARGET) {
- jb_set_string(js, "ip", addr->dst_ip);
+ SCJbSetString(js, "ip", addr->dst_ip);
switch (p->proto) {
case IPPROTO_ICMP:
case IPPROTO_ICMPV6:
case IPPROTO_UDP:
case IPPROTO_TCP:
case IPPROTO_SCTP:
- jb_set_uint(js, "port", addr->dp);
+ SCJbSetUint(js, "port", addr->dp);
break;
}
} else if (pa->s->flags & SIG_FLAG_SRC_IS_TARGET) {
- jb_set_string(js, "ip", addr->src_ip);
+ SCJbSetString(js, "ip", addr->src_ip);
switch (p->proto) {
case IPPROTO_ICMP:
case IPPROTO_ICMPV6:
case IPPROTO_UDP:
case IPPROTO_TCP:
case IPPROTO_SCTP:
- jb_set_uint(js, "port", addr->sp);
+ SCJbSetUint(js, "port", addr->sp);
break;
}
}
- jb_close(js);
+ SCJbClose(js);
}
-static void AlertJsonReference(const PacketAlert *pa, JsonBuilder *jb)
+static void AlertJsonReference(const PacketAlert *pa, SCJsonBuilder *jb)
{
if (!pa->s->references) {
return;
}
const DetectReference *kv = pa->s->references;
- jb_open_array(jb, "references");
+ SCJbOpenArray(jb, "references");
while (kv) {
/* Note that the key and reference sizes have been bound
* checked during parsing
const size_t size_needed = kv->key_len + kv->reference_len + 1;
char kv_store[size_needed];
snprintf(kv_store, size_needed, "%s%s", kv->key, kv->reference);
- jb_append_string(jb, kv_store);
+ SCJbAppendString(jb, kv_store);
kv = kv->next;
}
- jb_close(jb);
+ SCJbClose(jb);
}
-static void AlertJsonMetadata(const PacketAlert *pa, JsonBuilder *js)
+static void AlertJsonMetadata(const PacketAlert *pa, SCJsonBuilder *js)
{
if (pa->s->metadata && pa->s->metadata->json_str) {
- jb_set_formatted(js, pa->s->metadata->json_str);
+ SCJbSetFormatted(js, pa->s->metadata->json_str);
}
}
-void AlertJsonHeader(const Packet *p, const PacketAlert *pa, JsonBuilder *js, uint16_t flags,
+void AlertJsonHeader(const Packet *p, const PacketAlert *pa, SCJsonBuilder *js, uint16_t flags,
JsonAddrInfo *addr, char *xff_buffer)
{
const char *action = "allowed";
/* Add tx_id to root element for correlation with other events. */
/* json_object_del(js, "tx_id"); */
if (pa->flags & PACKET_ALERT_FLAG_TX) {
- jb_set_uint(js, "tx_id", pa->tx_id);
+ SCJbSetUint(js, "tx_id", pa->tx_id);
}
if (pa->flags & PACKET_ALERT_FLAG_TX_GUESSED) {
- jb_set_bool(js, "tx_guessed", true);
+ SCJbSetBool(js, "tx_guessed", true);
}
- jb_open_object(js, "alert");
+ SCJbOpenObject(js, "alert");
- jb_set_string(js, "action", action);
- jb_set_uint(js, "gid", pa->s->gid);
- jb_set_uint(js, "signature_id", pa->s->id);
- jb_set_uint(js, "rev", pa->s->rev);
- /* TODO: JsonBuilder should handle unprintable characters like
+ SCJbSetString(js, "action", action);
+ SCJbSetUint(js, "gid", pa->s->gid);
+ SCJbSetUint(js, "signature_id", pa->s->id);
+ SCJbSetUint(js, "rev", pa->s->rev);
+ /* TODO: SCJsonBuilder should handle unprintable characters like
* SCJsonString. */
- jb_set_string(js, "signature", pa->s->msg ? pa->s->msg: "");
- jb_set_string(js, "category", pa->s->class_msg ? pa->s->class_msg: "");
- jb_set_uint(js, "severity", pa->s->prio);
+ SCJbSetString(js, "signature", pa->s->msg ? pa->s->msg : "");
+ SCJbSetString(js, "category", pa->s->class_msg ? pa->s->class_msg : "");
+ SCJbSetUint(js, "severity", pa->s->prio);
if (p->tenant_id > 0) {
- jb_set_uint(js, "tenant_id", p->tenant_id);
+ SCJbSetUint(js, "tenant_id", p->tenant_id);
}
if (addr && pa->s->flags & SIG_FLAG_HAS_TARGET) {
}
if (flags & LOG_JSON_RULE) {
- jb_set_string(js, "rule", pa->s->sig_str);
+ SCJbSetString(js, "rule", pa->s->sig_str);
}
if (xff_buffer && xff_buffer[0]) {
- jb_set_string(js, "xff", xff_buffer);
+ SCJbSetString(js, "xff", xff_buffer);
}
- jb_close(js);
+ SCJbClose(js);
}
-static void AlertJsonTunnel(const Packet *p, JsonBuilder *js)
+static void AlertJsonTunnel(const Packet *p, SCJsonBuilder *js)
{
if (p->root == NULL) {
return;
}
- jb_open_object(js, "tunnel");
+ SCJbOpenObject(js, "tunnel");
enum PktSrcEnum pkt_src;
uint64_t pcap_cnt;
pcap_cnt = p->root->pcap_cnt;
pkt_src = p->root->pkt_src;
- jb_set_string(js, "src_ip", addr.src_ip);
- jb_set_uint(js, "src_port", addr.sp);
- jb_set_string(js, "dest_ip", addr.dst_ip);
- jb_set_uint(js, "dest_port", addr.dp);
- jb_set_string(js, "proto", addr.proto);
+ SCJbSetString(js, "src_ip", addr.src_ip);
+ SCJbSetUint(js, "src_port", addr.sp);
+ SCJbSetString(js, "dest_ip", addr.dst_ip);
+ SCJbSetUint(js, "dest_port", addr.dp);
+ SCJbSetString(js, "proto", addr.proto);
- jb_set_uint(js, "depth", p->recursion_level);
+ SCJbSetUint(js, "depth", p->recursion_level);
if (pcap_cnt != 0) {
- jb_set_uint(js, "pcap_cnt", pcap_cnt);
+ SCJbSetUint(js, "pcap_cnt", pcap_cnt);
}
- jb_set_string(js, "pkt_src", PktSrcToString(pkt_src));
- jb_close(js);
+ SCJbSetString(js, "pkt_src", PktSrcToString(pkt_src));
+ SCJbClose(js);
}
-static void AlertAddPayload(AlertJsonOutputCtx *json_output_ctx, JsonBuilder *js, const Packet *p)
+static void AlertAddPayload(AlertJsonOutputCtx *json_output_ctx, SCJsonBuilder *js, const Packet *p)
{
if (json_output_ctx->flags & LOG_JSON_PAYLOAD_BASE64) {
- jb_set_base64(js, "payload", p->payload, p->payload_len);
+ SCJbSetBase64(js, "payload", p->payload, p->payload_len);
}
if (json_output_ctx->flags & LOG_JSON_PAYLOAD_LENGTH) {
- jb_set_uint(js, "payload_length", p->payload_len);
+ SCJbSetUint(js, "payload_length", p->payload_len);
}
if (json_output_ctx->flags & LOG_JSON_PAYLOAD) {
p->payload_len + 1,
p->payload, p->payload_len);
printable_buf[p->payload_len] = '\0';
- jb_set_string(js, "payload_printable", (char *)printable_buf);
+ SCJbSetString(js, "payload_printable", (char *)printable_buf);
}
}
-static void AlertAddAppLayer(const Packet *p, JsonBuilder *jb,
- const uint64_t tx_id, const uint16_t option_flags)
+static void AlertAddAppLayer(
+ const Packet *p, SCJsonBuilder *jb, const uint64_t tx_id, const uint16_t option_flags)
{
const AppProto proto = FlowGetAppProtocol(p->flow);
EveJsonSimpleAppLayerLogger *al = SCEveJsonSimpleGetLogger(proto);
- JsonBuilderMark mark = { 0, 0, 0 };
+ SCJsonBuilderMark mark = { 0, 0, 0 };
if (al && al->LogTx) {
void *state = FlowGetAppState(p->flow);
if (state) {
void *tx = AppLayerParserGetTx(p->flow->proto, proto, state, tx_id);
if (tx) {
- jb_get_mark(jb, &mark);
+ SCJbGetMark(jb, &mark);
switch (proto) {
// first check some protocols need special options for alerts logging
case ALPROTO_WEBSOCKET:
bool pp = (option_flags & LOG_JSON_WEBSOCKET_PAYLOAD) != 0;
bool pb64 = (option_flags & LOG_JSON_WEBSOCKET_PAYLOAD_BASE64) != 0;
if (!SCWebSocketLogDetails(tx, jb, pp, pb64)) {
- jb_restore_mark(jb, &mark);
+ SCJbRestoreMark(jb, &mark);
}
// nothing more to log or do
return;
}
}
if (!al->LogTx(tx, jb)) {
- jb_restore_mark(jb, &mark);
+ SCJbRestoreMark(jb, &mark);
}
}
}
switch (proto) {
case ALPROTO_HTTP1:
// TODO: Could result in an empty http object being logged.
- jb_open_object(jb, "http");
+ SCJbOpenObject(jb, "http");
if (EveHttpAddMetadata(p->flow, tx_id, jb)) {
if (option_flags & LOG_JSON_HTTP_BODY) {
EveHttpLogJSONBodyPrintable(jb, p->flow, tx_id);
EveHttpLogJSONBodyBase64(jb, p->flow, tx_id);
}
}
- jb_close(jb);
+ SCJbClose(jb);
break;
case ALPROTO_SMTP:
- jb_get_mark(jb, &mark);
- jb_open_object(jb, "smtp");
+ SCJbGetMark(jb, &mark);
+ SCJbOpenObject(jb, "smtp");
if (EveSMTPAddMetadata(p->flow, tx_id, jb)) {
- jb_close(jb);
+ SCJbClose(jb);
} else {
- jb_restore_mark(jb, &mark);
+ SCJbRestoreMark(jb, &mark);
}
- jb_get_mark(jb, &mark);
- jb_open_object(jb, "email");
+ SCJbGetMark(jb, &mark);
+ SCJbOpenObject(jb, "email");
if (EveEmailAddMetadata(p->flow, tx_id, jb)) {
- jb_close(jb);
+ SCJbClose(jb);
} else {
- jb_restore_mark(jb, &mark);
+ SCJbRestoreMark(jb, &mark);
}
break;
case ALPROTO_NFS:
/* rpc */
- jb_get_mark(jb, &mark);
- jb_open_object(jb, "rpc");
+ SCJbGetMark(jb, &mark);
+ SCJbOpenObject(jb, "rpc");
if (EveNFSAddMetadataRPC(p->flow, tx_id, jb)) {
- jb_close(jb);
+ SCJbClose(jb);
} else {
- jb_restore_mark(jb, &mark);
+ SCJbRestoreMark(jb, &mark);
}
/* nfs */
- jb_get_mark(jb, &mark);
- jb_open_object(jb, "nfs");
+ SCJbGetMark(jb, &mark);
+ SCJbOpenObject(jb, "nfs");
if (EveNFSAddMetadata(p->flow, tx_id, jb)) {
- jb_close(jb);
+ SCJbClose(jb);
} else {
- jb_restore_mark(jb, &mark);
+ SCJbRestoreMark(jb, &mark);
}
break;
case ALPROTO_SMB:
- jb_get_mark(jb, &mark);
- jb_open_object(jb, "smb");
+ SCJbGetMark(jb, &mark);
+ SCJbOpenObject(jb, "smb");
if (EveSMBAddMetadata(p->flow, tx_id, jb)) {
- jb_close(jb);
+ SCJbClose(jb);
} else {
- jb_restore_mark(jb, &mark);
+ SCJbRestoreMark(jb, &mark);
}
break;
case ALPROTO_IKE:
- jb_get_mark(jb, &mark);
+ SCJbGetMark(jb, &mark);
if (!EveIKEAddMetadata(p->flow, tx_id, jb)) {
- jb_restore_mark(jb, &mark);
+ SCJbRestoreMark(jb, &mark);
}
break;
case ALPROTO_DCERPC: {
if (state) {
void *tx = AppLayerParserGetTx(p->flow->proto, proto, state, tx_id);
if (tx) {
- jb_get_mark(jb, &mark);
- jb_open_object(jb, "dcerpc");
+ SCJbGetMark(jb, &mark);
+ SCJbOpenObject(jb, "dcerpc");
if (p->proto == IPPROTO_TCP) {
if (!SCDcerpcLogJsonRecordTcp(state, tx, jb)) {
- jb_restore_mark(jb, &mark);
+ SCJbRestoreMark(jb, &mark);
}
} else {
if (!SCDcerpcLogJsonRecordUdp(state, tx, jb)) {
- jb_restore_mark(jb, &mark);
+ SCJbRestoreMark(jb, &mark);
}
}
- jb_close(jb);
+ SCJbClose(jb);
}
}
break;
}
}
-static void AlertAddFiles(const Packet *p, JsonBuilder *jb, const uint64_t tx_id)
+static void AlertAddFiles(const Packet *p, SCJsonBuilder *jb, const uint64_t tx_id)
{
const uint8_t direction =
(p->flowflags & FLOW_PKT_TOSERVER) ? STREAM_TOSERVER : STREAM_TOCLIENT;
while (file) {
if (!isopen) {
isopen = true;
- jb_open_array(jb, "files");
+ SCJbOpenArray(jb, "files");
}
- jb_start_object(jb);
+ SCJbStartObject(jb);
EveFileInfo(jb, file, tx_id, file->flags);
- jb_close(jb);
+ SCJbClose(jb);
file = file->next;
}
if (isopen) {
- jb_close(jb);
+ SCJbClose(jb);
}
}
}
static void AlertAddFrame(
- const Packet *p, const int64_t frame_id, JsonBuilder *jb, MemBuffer *buffer)
+ const Packet *p, const int64_t frame_id, SCJsonBuilder *jb, MemBuffer *buffer)
{
if (p->flow == NULL || (p->proto == IPPROTO_TCP && p->flow->protoctx == NULL))
return;
* \param p Pointer to Packet current being logged
*
*/
-void EveAddVerdict(JsonBuilder *jb, const Packet *p)
+void EveAddVerdict(SCJsonBuilder *jb, const Packet *p)
{
- jb_open_object(jb, "verdict");
+ SCJbOpenObject(jb, "verdict");
/* add verdict info */
if (PacketCheckAction(p, ACTION_REJECT_ANY)) {
} else if (PacketCheckAction(p, ACTION_REJECT_BOTH)) {
JB_SET_STRING(jb, "reject-target", "both");
}
- jb_open_array(jb, "reject");
+ SCJbOpenArray(jb, "reject");
switch (p->proto) {
case IPPROTO_UDP:
case IPPROTO_ICMP:
case IPPROTO_ICMPV6:
- jb_append_string(jb, "icmp-prohib");
+ SCJbAppendString(jb, "icmp-prohib");
break;
case IPPROTO_TCP:
- jb_append_string(jb, "tcp-reset");
+ SCJbAppendString(jb, "tcp-reset");
break;
}
- jb_close(jb);
+ SCJbClose(jb);
} else if (PacketCheckAction(p, ACTION_DROP) && EngineModeIsIPS()) {
JB_SET_STRING(jb, "action", "drop");
}
/* Close verdict */
- jb_close(jb);
+ SCJbClose(jb);
}
struct AlertJsonStreamDataCallbackData {
* \retval false stream data not logged
*/
static bool AlertJsonStreamData(const AlertJsonOutputCtx *json_output_ctx, JsonAlertLogThread *aft,
- Flow *f, const Packet *p, JsonBuilder *jb)
+ Flow *f, const Packet *p, SCJsonBuilder *jb)
{
TcpSession *ssn = f->protoctx;
TcpStream *stream = (PKT_IS_TOSERVER(p)) ? &ssn->client : &ssn->server;
&unused, false);
if (cbd.payload->offset) {
if (json_output_ctx->flags & LOG_JSON_PAYLOAD_BASE64) {
- jb_set_base64(jb, "payload", cbd.payload->buffer, cbd.payload->offset);
+ SCJbSetBase64(jb, "payload", cbd.payload->buffer, cbd.payload->offset);
}
if (json_output_ctx->flags & LOG_JSON_PAYLOAD_LENGTH) {
- jb_set_uint(jb, "payload_length", cbd.payload->offset);
+ SCJbSetUint(jb, "payload_length", cbd.payload->offset);
}
if (json_output_ctx->flags & LOG_JSON_PAYLOAD) {
uint32_t offset = 0;
PrintStringsToBuffer(printable_buf, &offset, cbd.payload->offset + 1,
cbd.payload->buffer, cbd.payload->offset);
- jb_set_string(jb, "payload_printable", (char *)printable_buf);
+ SCJbSetString(jb, "payload_printable", (char *)printable_buf);
}
return true;
}
}
}
- JsonBuilder *jb =
+ SCJsonBuilder *jb =
CreateEveHeader(p, LOG_DIR_PACKET, "alert", &addr, json_output_ctx->eve_ctx);
if (unlikely(jb == NULL))
return TM_ECODE_OK;
EveAddAppProto(p->flow, jb);
if (p->flowflags & FLOW_PKT_TOSERVER) {
- jb_set_string(jb, "direction", "to_server");
+ SCJbSetString(jb, "direction", "to_server");
} else {
- jb_set_string(jb, "direction", "to_client");
+ SCJbSetString(jb, "direction", "to_client");
}
if (json_output_ctx->flags & LOG_JSON_FLOW) {
- jb_open_object(jb, "flow");
+ SCJbOpenObject(jb, "flow");
EveAddFlow(p->flow, jb);
if (p->flowflags & FLOW_PKT_TOCLIENT) {
- jb_set_string(jb, "src_ip", addr.dst_ip);
- jb_set_string(jb, "dest_ip", addr.src_ip);
+ SCJbSetString(jb, "src_ip", addr.dst_ip);
+ SCJbSetString(jb, "dest_ip", addr.src_ip);
if (addr.sp > 0) {
- jb_set_uint(jb, "src_port", addr.dp);
- jb_set_uint(jb, "dest_port", addr.sp);
+ SCJbSetUint(jb, "src_port", addr.dp);
+ SCJbSetUint(jb, "dest_port", addr.sp);
}
} else {
- jb_set_string(jb, "src_ip", addr.src_ip);
- jb_set_string(jb, "dest_ip", addr.dst_ip);
+ SCJbSetString(jb, "src_ip", addr.src_ip);
+ SCJbSetString(jb, "dest_ip", addr.dst_ip);
if (addr.sp > 0) {
- jb_set_uint(jb, "src_port", addr.sp);
- jb_set_uint(jb, "dest_port", addr.dp);
+ SCJbSetUint(jb, "src_port", addr.sp);
+ SCJbSetUint(jb, "dest_port", addr.dp);
}
}
- jb_close(jb);
+ SCJbClose(jb);
}
}
AlertAddPayload(json_output_ctx, jb, p);
}
- jb_set_uint(jb, "stream", stream);
+ SCJbSetUint(jb, "stream", stream);
}
if (pa->flags & PACKET_ALERT_FLAG_FRAME) {
char *pcap_filename = PcapLogGetFilename();
if (pcap_filename != NULL) {
- jb_set_string(jb, "capture_file", pcap_filename);
+ SCJbSetString(jb, "capture_file", pcap_filename);
}
if (json_output_ctx->flags & LOG_JSON_VERDICT) {
}
OutputJsonBuilderBuffer(tv, p, p->flow, jb, aft->ctx);
- jb_free(jb);
+ SCJbFree(jb);
}
if ((p->flags & PKT_HAS_TAG) && (json_output_ctx->flags &
LOG_JSON_TAGGED_PACKETS)) {
- JsonBuilder *packetjs =
+ SCJsonBuilder *packetjs =
CreateEveHeader(p, LOG_DIR_PACKET, "packet", NULL, json_output_ctx->eve_ctx);
if (unlikely(packetjs != NULL)) {
EvePacket(p, packetjs, 0);
OutputJsonBuilderBuffer(tv, p, p->flow, packetjs, aft->ctx);
- jb_free(packetjs);
+ SCJbFree(packetjs);
}
}
continue;
}
- JsonBuilder *jb =
+ SCJsonBuilder *jb =
CreateEveHeader(p, LOG_DIR_PACKET, "alert", NULL, json_output_ctx->eve_ctx);
if (unlikely(jb == NULL))
return TM_ECODE_OK;
char *pcap_filename = PcapLogGetFilename();
if (pcap_filename != NULL) {
- jb_set_string(jb, "capture_file", pcap_filename);
+ SCJbSetString(jb, "capture_file", pcap_filename);
}
if (json_output_ctx->flags & LOG_JSON_VERDICT) {
}
OutputJsonBuilderBuffer(tv, p, p->flow, jb, aft->ctx);
- jb_free(jb);
+ SCJbFree(jb);
}
return TM_ECODE_OK;
#define SURICATA_OUTPUT_JSON_ALERT_H
void JsonAlertLogRegister(void);
-void AlertJsonHeader(const Packet *p, const PacketAlert *pa, JsonBuilder *js, uint16_t flags,
+void AlertJsonHeader(const Packet *p, const PacketAlert *pa, SCJsonBuilder *js, uint16_t flags,
JsonAddrInfo *addr, char *xff_buffer);
-void EveAddVerdict(JsonBuilder *jb, const Packet *p);
+void EveAddVerdict(SCJsonBuilder *jb, const Packet *p);
#endif /* SURICATA_OUTPUT_JSON_ALERT_H */
if (!is_decode && !log_stream)
continue;
- JsonBuilder *js = CreateEveHeader(
+ SCJsonBuilder *js = CreateEveHeader(
p, LOG_DIR_PACKET, ANOMALY_EVENT_TYPE, NULL, aft->json_output_ctx->eve_ctx);
if (unlikely(js == NULL)) {
return TM_ECODE_OK;
}
- jb_open_object(js, ANOMALY_EVENT_TYPE);
+ SCJbOpenObject(js, ANOMALY_EVENT_TYPE);
if (event_code < DECODE_EVENT_MAX) {
const char *event = DEvents[event_code].event_name;
} else {
JB_SET_STRING(js, "type", "stream");
}
- jb_set_string(js, "event", event);
+ SCJbSetString(js, "event", event);
} else {
JB_SET_STRING(js, "type", "unknown");
- jb_set_uint(js, "code", event_code);
+ SCJbSetUint(js, "code", event_code);
}
/* Close anomaly object. */
- jb_close(js);
+ SCJbClose(js);
if (aft->json_output_ctx->flags & LOG_JSON_PACKETHDR) {
EvePacket(p, js, GET_PKT_LEN(p) < 32 ? GET_PKT_LEN(p) : 32);
}
OutputJsonBuilderBuffer(tv, p, p->flow, js, aft->ctx);
- jb_free(js);
+ SCJbFree(js);
}
return TM_ECODE_OK;
tx_id != TX_ID_UNUSED ? "tx" : "no-tx");
for (int i = decoder_events->event_last_logged; i < decoder_events->cnt; i++) {
- JsonBuilder *js;
+ SCJsonBuilder *js;
if (tx_id != TX_ID_UNUSED) {
js = CreateEveHeaderWithTxId(p, LOG_DIR_PACKET, ANOMALY_EVENT_TYPE, NULL, tx_id,
aft->json_output_ctx->eve_ctx);
return TM_ECODE_OK;
}
+ SCJbOpenObject(js, ANOMALY_EVENT_TYPE);
- jb_open_object(js, ANOMALY_EVENT_TYPE);
-
- jb_set_string(js, "app_proto", alprotoname);
+ SCJbSetString(js, "app_proto", alprotoname);
const char *event_name = NULL;
uint8_t event_code = decoder_events->events[i];
}
if (r == 0) {
JB_SET_STRING(js, "type", "applayer");
- jb_set_string(js, "event", event_name);
+ SCJbSetString(js, "event", event_name);
} else {
JB_SET_STRING(js, "type", "unknown");
- jb_set_uint(js, "code", event_code);
+ SCJbSetUint(js, "code", event_code);
}
- jb_set_string(js, "layer", layer);
+ SCJbSetString(js, "layer", layer);
/* anomaly */
- jb_close(js);
+ SCJbClose(js);
OutputJsonBuilderBuffer(tv, p, p->flow, js, aft->ctx);
- jb_free(js);
+ SCJbFree(js);
/* Current implementation assumes a single owner for this value */
decoder_events->event_last_logged++;
char dstip[JSON_ADDR_LEN] = "";
const ARPHdr *arph = PacketGetARP(p);
- JsonBuilder *jb = CreateEveHeader(p, LOG_DIR_PACKET, "arp", NULL, thread->ctx);
+ SCJsonBuilder *jb = CreateEveHeader(p, LOG_DIR_PACKET, "arp", NULL, thread->ctx);
if (unlikely(jb == NULL)) {
return TM_ECODE_OK;
}
PrintInet(AF_INET, arph->source_ip, srcip, sizeof(srcip));
PrintInet(AF_INET, arph->dest_ip, dstip, sizeof(dstip));
- jb_open_object(jb, "arp");
+ SCJbOpenObject(jb, "arp");
JB_SET_STRING(jb, "hw_type", "ethernet");
JB_SET_STRING(jb, "proto_type", "ipv4");
- jb_set_string(jb, "opcode", OpcodeToString(ntohs(arph->opcode)));
+ SCJbSetString(jb, "opcode", OpcodeToString(ntohs(arph->opcode)));
JSONFormatAndAddMACAddr(jb, "src_mac", arph->source_mac, false);
- jb_set_string(jb, "src_ip", srcip);
+ SCJbSetString(jb, "src_ip", srcip);
JSONFormatAndAddMACAddr(jb, "dest_mac", arph->dest_mac, false);
- jb_set_string(jb, "dest_ip", dstip);
- jb_close(jb); /* arp */
+ SCJbSetString(jb, "dest_ip", dstip);
+ SCJbClose(jb); /* arp */
OutputJsonBuilderBuffer(tv, p, p->flow, jb, thread);
- jb_free(jb);
+ SCJbFree(jb);
return TM_ECODE_OK;
}
{
OutputJsonThreadCtx *thread = thread_data;
- JsonBuilder *jb = CreateEveHeader(p, LOG_DIR_FLOW, "dcerpc", NULL, thread->ctx);
+ SCJsonBuilder *jb = CreateEveHeader(p, LOG_DIR_FLOW, "dcerpc", NULL, thread->ctx);
if (unlikely(jb == NULL)) {
return TM_ECODE_FAILED;
}
- jb_open_object(jb, "dcerpc");
+ SCJbOpenObject(jb, "dcerpc");
if (p->proto == IPPROTO_TCP) {
if (!SCDcerpcLogJsonRecordTcp(state, tx, jb)) {
goto error;
goto error;
}
}
- jb_close(jb);
+ SCJbClose(jb);
MemBufferReset(thread->buffer);
OutputJsonBuilderBuffer(tv, p, p->flow, jb, thread);
- jb_free(jb);
+ SCJbFree(jb);
return TM_ECODE_OK;
error:
- jb_free(jb);
+ SCJbFree(jb);
return TM_ECODE_FAILED;
}
return TM_ECODE_OK;
}
- JsonBuilder *js = CreateEveHeader((Packet *)p, 0, "dhcp", NULL, ctx->eve_ctx);
+ SCJsonBuilder *js = CreateEveHeader((Packet *)p, 0, "dhcp", NULL, ctx->eve_ctx);
if (unlikely(js == NULL)) {
return TM_ECODE_FAILED;
}
SCDhcpLoggerLog(ctx->rs_logger, tx, js);
OutputJsonBuilderBuffer(tv, p, p->flow, js, thread->thread);
- jb_free(js);
+ SCJbFree(js);
return TM_ECODE_OK;
}
#include "output-json.h"
// clang-format off
-void OutputJsonDNP3SetItem(JsonBuilder *js, DNP3Object *object,
+void OutputJsonDNP3SetItem(SCJsonBuilder *js, DNP3Object *object,
DNP3Point *point)
{
switch (DNP3_OBJECT_CODE(object->group, object->variation)) {
case DNP3_OBJECT_CODE(1, 1): {
DNP3ObjectG1V1 *data = point->data;
- jb_set_uint(js, "state", data->state);
+ SCJbSetUint(js, "state", data->state);
break;
}
case DNP3_OBJECT_CODE(1, 2): {
DNP3ObjectG1V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "chatter_filter", data->chatter_filter);
- jb_set_uint(js, "reserved", data->reserved);
- jb_set_uint(js, "state", data->state);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "chatter_filter", data->chatter_filter);
+ SCJbSetUint(js, "reserved", data->reserved);
+ SCJbSetUint(js, "state", data->state);
break;
}
case DNP3_OBJECT_CODE(2, 1): {
DNP3ObjectG2V1 *data = point->data;
- jb_set_uint(js, "state", data->state);
+ SCJbSetUint(js, "state", data->state);
break;
}
case DNP3_OBJECT_CODE(2, 2): {
DNP3ObjectG2V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "chatter_filter", data->chatter_filter);
- jb_set_uint(js, "reserved", data->reserved);
- jb_set_uint(js, "state", data->state);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "chatter_filter", data->chatter_filter);
+ SCJbSetUint(js, "reserved", data->reserved);
+ SCJbSetUint(js, "state", data->state);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(2, 3): {
DNP3ObjectG2V3 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "chatter_filter", data->chatter_filter);
- jb_set_uint(js, "reserved", data->reserved);
- jb_set_uint(js, "state", data->state);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "chatter_filter", data->chatter_filter);
+ SCJbSetUint(js, "reserved", data->reserved);
+ SCJbSetUint(js, "state", data->state);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(3, 1): {
DNP3ObjectG3V1 *data = point->data;
- jb_set_uint(js, "state", data->state);
+ SCJbSetUint(js, "state", data->state);
break;
}
case DNP3_OBJECT_CODE(3, 2): {
DNP3ObjectG3V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "chatter_filter", data->chatter_filter);
- jb_set_uint(js, "state", data->state);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "chatter_filter", data->chatter_filter);
+ SCJbSetUint(js, "state", data->state);
break;
}
case DNP3_OBJECT_CODE(4, 1): {
DNP3ObjectG4V1 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "chatter_filter", data->chatter_filter);
- jb_set_uint(js, "state", data->state);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "chatter_filter", data->chatter_filter);
+ SCJbSetUint(js, "state", data->state);
break;
}
case DNP3_OBJECT_CODE(4, 2): {
DNP3ObjectG4V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "chatter_filter", data->chatter_filter);
- jb_set_uint(js, "state", data->state);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "chatter_filter", data->chatter_filter);
+ SCJbSetUint(js, "state", data->state);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(4, 3): {
DNP3ObjectG4V3 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "chatter_filter", data->chatter_filter);
- jb_set_uint(js, "state", data->state);
- jb_set_uint(js, "relative_time_ms", data->relative_time_ms);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "chatter_filter", data->chatter_filter);
+ SCJbSetUint(js, "state", data->state);
+ SCJbSetUint(js, "relative_time_ms", data->relative_time_ms);
break;
}
case DNP3_OBJECT_CODE(10, 1): {
DNP3ObjectG10V1 *data = point->data;
- jb_set_uint(js, "state", data->state);
+ SCJbSetUint(js, "state", data->state);
break;
}
case DNP3_OBJECT_CODE(10, 2): {
DNP3ObjectG10V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "state", data->state);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "state", data->state);
break;
}
case DNP3_OBJECT_CODE(11, 1): {
DNP3ObjectG11V1 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "state", data->state);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "state", data->state);
break;
}
case DNP3_OBJECT_CODE(11, 2): {
DNP3ObjectG11V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "state", data->state);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "state", data->state);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(12, 1): {
DNP3ObjectG12V1 *data = point->data;
- jb_set_uint(js, "op_type", data->op_type);
- jb_set_uint(js, "qu", data->qu);
- jb_set_uint(js, "cr", data->cr);
- jb_set_uint(js, "tcc", data->tcc);
- jb_set_uint(js, "count", data->count);
- jb_set_uint(js, "ontime", data->ontime);
- jb_set_uint(js, "offtime", data->offtime);
- jb_set_uint(js, "status_code", data->status_code);
- jb_set_uint(js, "reserved", data->reserved);
+ SCJbSetUint(js, "op_type", data->op_type);
+ SCJbSetUint(js, "qu", data->qu);
+ SCJbSetUint(js, "cr", data->cr);
+ SCJbSetUint(js, "tcc", data->tcc);
+ SCJbSetUint(js, "count", data->count);
+ SCJbSetUint(js, "ontime", data->ontime);
+ SCJbSetUint(js, "offtime", data->offtime);
+ SCJbSetUint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "reserved", data->reserved);
break;
}
case DNP3_OBJECT_CODE(12, 2): {
DNP3ObjectG12V2 *data = point->data;
- jb_set_uint(js, "op_type", data->op_type);
- jb_set_uint(js, "qu", data->qu);
- jb_set_uint(js, "cr", data->cr);
- jb_set_uint(js, "tcc", data->tcc);
- jb_set_uint(js, "count", data->count);
- jb_set_uint(js, "ontime", data->ontime);
- jb_set_uint(js, "offtime", data->offtime);
- jb_set_uint(js, "status_code", data->status_code);
- jb_set_uint(js, "reserved", data->reserved);
+ SCJbSetUint(js, "op_type", data->op_type);
+ SCJbSetUint(js, "qu", data->qu);
+ SCJbSetUint(js, "cr", data->cr);
+ SCJbSetUint(js, "tcc", data->tcc);
+ SCJbSetUint(js, "count", data->count);
+ SCJbSetUint(js, "ontime", data->ontime);
+ SCJbSetUint(js, "offtime", data->offtime);
+ SCJbSetUint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "reserved", data->reserved);
break;
}
case DNP3_OBJECT_CODE(12, 3): {
DNP3ObjectG12V3 *data = point->data;
- jb_set_uint(js, "point", data->point);
+ SCJbSetUint(js, "point", data->point);
break;
}
case DNP3_OBJECT_CODE(13, 1): {
DNP3ObjectG13V1 *data = point->data;
- jb_set_uint(js, "status_code", data->status_code);
- jb_set_uint(js, "commanded_state", data->commanded_state);
+ SCJbSetUint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "commanded_state", data->commanded_state);
break;
}
case DNP3_OBJECT_CODE(13, 2): {
DNP3ObjectG13V2 *data = point->data;
- jb_set_uint(js, "status_code", data->status_code);
- jb_set_uint(js, "commanded_state", data->commanded_state);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "commanded_state", data->commanded_state);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(20, 1): {
DNP3ObjectG20V1 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(20, 2): {
DNP3ObjectG20V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(20, 3): {
DNP3ObjectG20V3 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(20, 4): {
DNP3ObjectG20V4 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(20, 5): {
DNP3ObjectG20V5 *data = point->data;
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(20, 6): {
DNP3ObjectG20V6 *data = point->data;
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(20, 7): {
DNP3ObjectG20V7 *data = point->data;
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(20, 8): {
DNP3ObjectG20V8 *data = point->data;
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(21, 1): {
DNP3ObjectG21V1 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(21, 2): {
DNP3ObjectG21V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(21, 3): {
DNP3ObjectG21V3 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(21, 4): {
DNP3ObjectG21V4 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(21, 5): {
DNP3ObjectG21V5 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(21, 6): {
DNP3ObjectG21V6 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(21, 7): {
DNP3ObjectG21V7 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(21, 8): {
DNP3ObjectG21V8 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(21, 9): {
DNP3ObjectG21V9 *data = point->data;
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(21, 10): {
DNP3ObjectG21V10 *data = point->data;
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(21, 11): {
DNP3ObjectG21V11 *data = point->data;
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(21, 12): {
DNP3ObjectG21V12 *data = point->data;
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(22, 1): {
DNP3ObjectG22V1 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(22, 2): {
DNP3ObjectG22V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(22, 3): {
DNP3ObjectG22V3 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(22, 4): {
DNP3ObjectG22V4 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(22, 5): {
DNP3ObjectG22V5 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(22, 6): {
DNP3ObjectG22V6 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "count", data->count);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "count", data->count);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(22, 7): {
DNP3ObjectG22V7 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(22, 8): {
DNP3ObjectG22V8 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(23, 1): {
DNP3ObjectG23V1 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(23, 2): {
DNP3ObjectG23V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(23, 3): {
DNP3ObjectG23V3 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(23, 4): {
DNP3ObjectG23V4 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
break;
}
case DNP3_OBJECT_CODE(23, 5): {
DNP3ObjectG23V5 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "count", data->count);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "count", data->count);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(23, 6): {
DNP3ObjectG23V6 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "count", data->count);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "count", data->count);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(23, 7): {
DNP3ObjectG23V7 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(23, 8): {
DNP3ObjectG23V8 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "rollover", data->rollover);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "count", data->count);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "rollover", data->rollover);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "count", data->count);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(30, 1): {
DNP3ObjectG30V1 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(30, 2): {
DNP3ObjectG30V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(30, 3): {
DNP3ObjectG30V3 *data = point->data;
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(30, 4): {
DNP3ObjectG30V4 *data = point->data;
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(30, 5): {
DNP3ObjectG30V5 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(30, 6): {
DNP3ObjectG30V6 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(31, 1): {
DNP3ObjectG31V1 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(31, 2): {
DNP3ObjectG31V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(31, 3): {
DNP3ObjectG31V3 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(31, 4): {
DNP3ObjectG31V4 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(31, 5): {
DNP3ObjectG31V5 *data = point->data;
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(31, 6): {
DNP3ObjectG31V6 *data = point->data;
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(31, 7): {
DNP3ObjectG31V7 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(31, 8): {
DNP3ObjectG31V8 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(32, 1): {
DNP3ObjectG32V1 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(32, 2): {
DNP3ObjectG32V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(32, 3): {
DNP3ObjectG32V3 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(32, 4): {
DNP3ObjectG32V4 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(32, 5): {
DNP3ObjectG32V5 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(32, 6): {
DNP3ObjectG32V6 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(32, 7): {
DNP3ObjectG32V7 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(32, 8): {
DNP3ObjectG32V8 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(33, 1): {
DNP3ObjectG33V1 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(33, 2): {
DNP3ObjectG33V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(33, 3): {
DNP3ObjectG33V3 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(33, 4): {
DNP3ObjectG33V4 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(33, 5): {
DNP3ObjectG33V5 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(33, 6): {
DNP3ObjectG33V6 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(33, 7): {
DNP3ObjectG33V7 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(33, 8): {
DNP3ObjectG33V8 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(34, 1): {
DNP3ObjectG34V1 *data = point->data;
- jb_set_uint(js, "deadband_value", data->deadband_value);
+ SCJbSetUint(js, "deadband_value", data->deadband_value);
break;
}
case DNP3_OBJECT_CODE(34, 2): {
DNP3ObjectG34V2 *data = point->data;
- jb_set_uint(js, "deadband_value", data->deadband_value);
+ SCJbSetUint(js, "deadband_value", data->deadband_value);
break;
}
case DNP3_OBJECT_CODE(34, 3): {
DNP3ObjectG34V3 *data = point->data;
- jb_set_float(js, "deadband_value", data->deadband_value);
+ SCJbSetFloat(js, "deadband_value", data->deadband_value);
break;
}
case DNP3_OBJECT_CODE(40, 1): {
DNP3ObjectG40V1 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(40, 2): {
DNP3ObjectG40V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(40, 3): {
DNP3ObjectG40V3 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(40, 4): {
DNP3ObjectG40V4 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(41, 1): {
DNP3ObjectG41V1 *data = point->data;
- jb_set_uint(js, "value", data->value);
- jb_set_uint(js, "control_status", data->control_status);
+ SCJbSetUint(js, "value", data->value);
+ SCJbSetUint(js, "control_status", data->control_status);
break;
}
case DNP3_OBJECT_CODE(41, 2): {
DNP3ObjectG41V2 *data = point->data;
- jb_set_uint(js, "value", data->value);
- jb_set_uint(js, "control_status", data->control_status);
+ SCJbSetUint(js, "value", data->value);
+ SCJbSetUint(js, "control_status", data->control_status);
break;
}
case DNP3_OBJECT_CODE(41, 3): {
DNP3ObjectG41V3 *data = point->data;
- jb_set_float(js, "value", data->value);
- jb_set_uint(js, "control_status", data->control_status);
+ SCJbSetFloat(js, "value", data->value);
+ SCJbSetUint(js, "control_status", data->control_status);
break;
}
case DNP3_OBJECT_CODE(41, 4): {
DNP3ObjectG41V4 *data = point->data;
- jb_set_float(js, "value", data->value);
- jb_set_uint(js, "control_status", data->control_status);
+ SCJbSetFloat(js, "value", data->value);
+ SCJbSetUint(js, "control_status", data->control_status);
break;
}
case DNP3_OBJECT_CODE(42, 1): {
DNP3ObjectG42V1 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(42, 2): {
DNP3ObjectG42V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(42, 3): {
DNP3ObjectG42V3 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(42, 4): {
DNP3ObjectG42V4 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "value", data->value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "value", data->value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(42, 5): {
DNP3ObjectG42V5 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(42, 6): {
DNP3ObjectG42V6 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(42, 7): {
DNP3ObjectG42V7 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(42, 8): {
DNP3ObjectG42V8 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "over_range", data->over_range);
- jb_set_uint(js, "reference_err", data->reference_err);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "value", data->value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "over_range", data->over_range);
+ SCJbSetUint(js, "reference_err", data->reference_err);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "value", data->value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(43, 1): {
DNP3ObjectG43V1 *data = point->data;
- jb_set_uint(js, "status_code", data->status_code);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "commanded_value", data->commanded_value);
+ SCJbSetUint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "commanded_value", data->commanded_value);
break;
}
case DNP3_OBJECT_CODE(43, 2): {
DNP3ObjectG43V2 *data = point->data;
- jb_set_uint(js, "status_code", data->status_code);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "commanded_value", data->commanded_value);
+ SCJbSetUint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "commanded_value", data->commanded_value);
break;
}
case DNP3_OBJECT_CODE(43, 3): {
DNP3ObjectG43V3 *data = point->data;
- jb_set_uint(js, "status_code", data->status_code);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "commanded_value", data->commanded_value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "commanded_value", data->commanded_value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(43, 4): {
DNP3ObjectG43V4 *data = point->data;
- jb_set_uint(js, "status_code", data->status_code);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "commanded_value", data->commanded_value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "commanded_value", data->commanded_value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(43, 5): {
DNP3ObjectG43V5 *data = point->data;
- jb_set_uint(js, "status_code", data->status_code);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "commanded_value", data->commanded_value);
+ SCJbSetUint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "commanded_value", data->commanded_value);
break;
}
case DNP3_OBJECT_CODE(43, 6): {
DNP3ObjectG43V6 *data = point->data;
- jb_set_uint(js, "status_code", data->status_code);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "commanded_value", data->commanded_value);
+ SCJbSetUint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "commanded_value", data->commanded_value);
break;
}
case DNP3_OBJECT_CODE(43, 7): {
DNP3ObjectG43V7 *data = point->data;
- jb_set_uint(js, "status_code", data->status_code);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "commanded_value", data->commanded_value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "commanded_value", data->commanded_value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(43, 8): {
DNP3ObjectG43V8 *data = point->data;
- jb_set_uint(js, "status_code", data->status_code);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_float(js, "commanded_value", data->commanded_value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetFloat(js, "commanded_value", data->commanded_value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(50, 1): {
DNP3ObjectG50V1 *data = point->data;
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(50, 2): {
DNP3ObjectG50V2 *data = point->data;
- jb_set_uint(js, "timestamp", data->timestamp);
- jb_set_uint(js, "interval", data->interval);
+ SCJbSetUint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "interval", data->interval);
break;
}
case DNP3_OBJECT_CODE(50, 3): {
DNP3ObjectG50V3 *data = point->data;
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(50, 4): {
DNP3ObjectG50V4 *data = point->data;
- jb_set_uint(js, "timestamp", data->timestamp);
- jb_set_uint(js, "interval_count", data->interval_count);
- jb_set_uint(js, "interval_units", data->interval_units);
+ SCJbSetUint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "interval_count", data->interval_count);
+ SCJbSetUint(js, "interval_units", data->interval_units);
break;
}
case DNP3_OBJECT_CODE(51, 1): {
DNP3ObjectG51V1 *data = point->data;
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(51, 2): {
DNP3ObjectG51V2 *data = point->data;
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
case DNP3_OBJECT_CODE(52, 1): {
DNP3ObjectG52V1 *data = point->data;
- jb_set_uint(js, "delay_secs", data->delay_secs);
+ SCJbSetUint(js, "delay_secs", data->delay_secs);
break;
}
case DNP3_OBJECT_CODE(52, 2): {
DNP3ObjectG52V2 *data = point->data;
- jb_set_uint(js, "delay_ms", data->delay_ms);
+ SCJbSetUint(js, "delay_ms", data->delay_ms);
break;
}
case DNP3_OBJECT_CODE(70, 1): {
DNP3ObjectG70V1 *data = point->data;
- jb_set_uint(js, "filename_size", data->filename_size);
- jb_set_uint(js, "filetype_code", data->filetype_code);
- jb_set_uint(js, "attribute_code", data->attribute_code);
- jb_set_uint(js, "start_record", data->start_record);
- jb_set_uint(js, "end_record", data->end_record);
- jb_set_uint(js, "file_size", data->file_size);
- jb_set_uint(js, "created_timestamp", data->created_timestamp);
- jb_set_uint(js, "permission", data->permission);
- jb_set_uint(js, "file_id", data->file_id);
- jb_set_uint(js, "owner_id", data->owner_id);
- jb_set_uint(js, "group_id", data->group_id);
- jb_set_uint(js, "file_function_code", data->file_function_code);
- jb_set_uint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "filename_size", data->filename_size);
+ SCJbSetUint(js, "filetype_code", data->filetype_code);
+ SCJbSetUint(js, "attribute_code", data->attribute_code);
+ SCJbSetUint(js, "start_record", data->start_record);
+ SCJbSetUint(js, "end_record", data->end_record);
+ SCJbSetUint(js, "file_size", data->file_size);
+ SCJbSetUint(js, "created_timestamp", data->created_timestamp);
+ SCJbSetUint(js, "permission", data->permission);
+ SCJbSetUint(js, "file_id", data->file_id);
+ SCJbSetUint(js, "owner_id", data->owner_id);
+ SCJbSetUint(js, "group_id", data->group_id);
+ SCJbSetUint(js, "file_function_code", data->file_function_code);
+ SCJbSetUint(js, "status_code", data->status_code);
if (data->filename_size > 0) {
- jb_set_string_from_bytes(
+ SCJbSetStringFromBytes(
js, "filename", (const uint8_t *)data->filename, data->filename_size);
} else {
- jb_set_string(js, "filename", "");
+ SCJbSetString(js, "filename", "");
}
- jb_set_uint(js, "data_size", data->data_size);
+ SCJbSetUint(js, "data_size", data->data_size);
if (data->data_size > 0) {
- jb_set_string_from_bytes(
+ SCJbSetStringFromBytes(
js, "data", (const uint8_t *)data->data, data->data_size);
} else {
- jb_set_string(js, "data", "");
+ SCJbSetString(js, "data", "");
}
break;
}
case DNP3_OBJECT_CODE(70, 2): {
DNP3ObjectG70V2 *data = point->data;
- jb_set_uint(js, "username_offset", data->username_offset);
- jb_set_uint(js, "username_size", data->username_size);
- jb_set_uint(js, "password_offset", data->password_offset);
- jb_set_uint(js, "password_size", data->password_size);
- jb_set_uint(js, "authentication_key", data->authentication_key);
+ SCJbSetUint(js, "username_offset", data->username_offset);
+ SCJbSetUint(js, "username_size", data->username_size);
+ SCJbSetUint(js, "password_offset", data->password_offset);
+ SCJbSetUint(js, "password_size", data->password_size);
+ SCJbSetUint(js, "authentication_key", data->authentication_key);
if (data->username_size > 0) {
- jb_set_string_from_bytes(
+ SCJbSetStringFromBytes(
js, "username", (const uint8_t *)data->username, data->username_size);
} else {
- jb_set_string(js, "username", "");
+ SCJbSetString(js, "username", "");
}
if (data->password_size > 0) {
- jb_set_string_from_bytes(
+ SCJbSetStringFromBytes(
js, "password", (const uint8_t *)data->password, data->password_size);
} else {
- jb_set_string(js, "password", "");
+ SCJbSetString(js, "password", "");
}
break;
}
case DNP3_OBJECT_CODE(70, 3): {
DNP3ObjectG70V3 *data = point->data;
- jb_set_uint(js, "filename_offset", data->filename_offset);
- jb_set_uint(js, "filename_size", data->filename_size);
- jb_set_uint(js, "created", data->created);
- jb_set_uint(js, "permissions", data->permissions);
- jb_set_uint(js, "authentication_key", data->authentication_key);
- jb_set_uint(js, "file_size", data->file_size);
- jb_set_uint(js, "operational_mode", data->operational_mode);
- jb_set_uint(js, "maximum_block_size", data->maximum_block_size);
- jb_set_uint(js, "request_id", data->request_id);
+ SCJbSetUint(js, "filename_offset", data->filename_offset);
+ SCJbSetUint(js, "filename_size", data->filename_size);
+ SCJbSetUint(js, "created", data->created);
+ SCJbSetUint(js, "permissions", data->permissions);
+ SCJbSetUint(js, "authentication_key", data->authentication_key);
+ SCJbSetUint(js, "file_size", data->file_size);
+ SCJbSetUint(js, "operational_mode", data->operational_mode);
+ SCJbSetUint(js, "maximum_block_size", data->maximum_block_size);
+ SCJbSetUint(js, "request_id", data->request_id);
if (data->filename_size > 0) {
- jb_set_string_from_bytes(
+ SCJbSetStringFromBytes(
js, "filename", (const uint8_t *)data->filename, data->filename_size);
} else {
- jb_set_string(js, "filename", "");
+ SCJbSetString(js, "filename", "");
}
break;
}
case DNP3_OBJECT_CODE(70, 4): {
DNP3ObjectG70V4 *data = point->data;
- jb_set_uint(js, "file_handle", data->file_handle);
- jb_set_uint(js, "file_size", data->file_size);
- jb_set_uint(js, "maximum_block_size", data->maximum_block_size);
- jb_set_uint(js, "request_id", data->request_id);
- jb_set_uint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "file_handle", data->file_handle);
+ SCJbSetUint(js, "file_size", data->file_size);
+ SCJbSetUint(js, "maximum_block_size", data->maximum_block_size);
+ SCJbSetUint(js, "request_id", data->request_id);
+ SCJbSetUint(js, "status_code", data->status_code);
if (data->optional_text_len > 0) {
- jb_set_string_from_bytes(
+ SCJbSetStringFromBytes(
js, "optional_text", (const uint8_t *)data->optional_text, data->optional_text_len);
} else {
- jb_set_string(js, "optional_text", "");
+ SCJbSetString(js, "optional_text", "");
}
break;
}
case DNP3_OBJECT_CODE(70, 5): {
DNP3ObjectG70V5 *data = point->data;
- jb_set_uint(js, "file_handle", data->file_handle);
- jb_set_uint(js, "block_number", data->block_number);
+ SCJbSetUint(js, "file_handle", data->file_handle);
+ SCJbSetUint(js, "block_number", data->block_number);
if (data->file_data_len > 0) {
- jb_set_string_from_bytes(
+ SCJbSetStringFromBytes(
js, "file_data", (const uint8_t *)data->file_data, data->file_data_len);
} else {
- jb_set_string(js, "file_data", "");
+ SCJbSetString(js, "file_data", "");
}
break;
}
case DNP3_OBJECT_CODE(70, 6): {
DNP3ObjectG70V6 *data = point->data;
- jb_set_uint(js, "file_handle", data->file_handle);
- jb_set_uint(js, "block_number", data->block_number);
- jb_set_uint(js, "status_code", data->status_code);
+ SCJbSetUint(js, "file_handle", data->file_handle);
+ SCJbSetUint(js, "block_number", data->block_number);
+ SCJbSetUint(js, "status_code", data->status_code);
if (data->optional_text_len > 0) {
- jb_set_string_from_bytes(
+ SCJbSetStringFromBytes(
js, "optional_text", (const uint8_t *)data->optional_text, data->optional_text_len);
} else {
- jb_set_string(js, "optional_text", "");
+ SCJbSetString(js, "optional_text", "");
}
break;
}
case DNP3_OBJECT_CODE(70, 7): {
DNP3ObjectG70V7 *data = point->data;
- jb_set_uint(js, "filename_offset", data->filename_offset);
- jb_set_uint(js, "filename_size", data->filename_size);
- jb_set_uint(js, "file_type", data->file_type);
- jb_set_uint(js, "file_size", data->file_size);
- jb_set_uint(js, "created_timestamp", data->created_timestamp);
- jb_set_uint(js, "permissions", data->permissions);
- jb_set_uint(js, "request_id", data->request_id);
+ SCJbSetUint(js, "filename_offset", data->filename_offset);
+ SCJbSetUint(js, "filename_size", data->filename_size);
+ SCJbSetUint(js, "file_type", data->file_type);
+ SCJbSetUint(js, "file_size", data->file_size);
+ SCJbSetUint(js, "created_timestamp", data->created_timestamp);
+ SCJbSetUint(js, "permissions", data->permissions);
+ SCJbSetUint(js, "request_id", data->request_id);
if (data->filename_size > 0) {
- jb_set_string_from_bytes(
+ SCJbSetStringFromBytes(
js, "filename", (const uint8_t *)data->filename, data->filename_size);
} else {
- jb_set_string(js, "filename", "");
+ SCJbSetString(js, "filename", "");
}
break;
}
case DNP3_OBJECT_CODE(70, 8): {
DNP3ObjectG70V8 *data = point->data;
if (data->file_specification_len > 0) {
- jb_set_string_from_bytes(
+ SCJbSetStringFromBytes(
js, "file_specification", (const uint8_t *)data->file_specification, data->file_specification_len);
} else {
- jb_set_string(js, "file_specification", "");
+ SCJbSetString(js, "file_specification", "");
}
break;
}
case DNP3_OBJECT_CODE(80, 1): {
DNP3ObjectG80V1 *data = point->data;
- jb_set_uint(js, "state", data->state);
+ SCJbSetUint(js, "state", data->state);
break;
}
case DNP3_OBJECT_CODE(81, 1): {
DNP3ObjectG81V1 *data = point->data;
- jb_set_uint(js, "fill_percentage", data->fill_percentage);
- jb_set_uint(js, "overflow_state", data->overflow_state);
- jb_set_uint(js, "group", data->group);
- jb_set_uint(js, "variation", data->variation);
+ SCJbSetUint(js, "fill_percentage", data->fill_percentage);
+ SCJbSetUint(js, "overflow_state", data->overflow_state);
+ SCJbSetUint(js, "group", data->group);
+ SCJbSetUint(js, "variation", data->variation);
break;
}
case DNP3_OBJECT_CODE(83, 1): {
DNP3ObjectG83V1 *data = point->data;
- jb_set_string(js, "data->vendor_code", data->vendor_code);
- jb_set_uint(js, "object_id", data->object_id);
- jb_set_uint(js, "length", data->length);
- jb_set_base64(js, "data->data_objects", data->data_objects, data->length);
+ SCJbSetString(js, "data->vendor_code", data->vendor_code);
+ SCJbSetUint(js, "object_id", data->object_id);
+ SCJbSetUint(js, "length", data->length);
+ SCJbSetBase64(js, "data->data_objects", data->data_objects, data->length);
break;
}
case DNP3_OBJECT_CODE(86, 2): {
DNP3ObjectG86V2 *data = point->data;
- jb_set_uint(js, "rd", data->rd);
- jb_set_uint(js, "wr", data->wr);
- jb_set_uint(js, "st", data->st);
- jb_set_uint(js, "ev", data->ev);
- jb_set_uint(js, "df", data->df);
- jb_set_uint(js, "padding0", data->padding0);
- jb_set_uint(js, "padding1", data->padding1);
- jb_set_uint(js, "padding2", data->padding2);
+ SCJbSetUint(js, "rd", data->rd);
+ SCJbSetUint(js, "wr", data->wr);
+ SCJbSetUint(js, "st", data->st);
+ SCJbSetUint(js, "ev", data->ev);
+ SCJbSetUint(js, "df", data->df);
+ SCJbSetUint(js, "padding0", data->padding0);
+ SCJbSetUint(js, "padding1", data->padding1);
+ SCJbSetUint(js, "padding2", data->padding2);
break;
}
case DNP3_OBJECT_CODE(102, 1): {
DNP3ObjectG102V1 *data = point->data;
- jb_set_uint(js, "value", data->value);
+ SCJbSetUint(js, "value", data->value);
break;
}
case DNP3_OBJECT_CODE(120, 1): {
DNP3ObjectG120V1 *data = point->data;
- jb_set_uint(js, "csq", data->csq);
- jb_set_uint(js, "usr", data->usr);
- jb_set_uint(js, "mal", data->mal);
- jb_set_uint(js, "reason", data->reason);
- jb_set_base64(js, "data->challenge_data", data->challenge_data, data->challenge_data_len);
+ SCJbSetUint(js, "csq", data->csq);
+ SCJbSetUint(js, "usr", data->usr);
+ SCJbSetUint(js, "mal", data->mal);
+ SCJbSetUint(js, "reason", data->reason);
+ SCJbSetBase64(js, "data->challenge_data", data->challenge_data, data->challenge_data_len);
break;
}
case DNP3_OBJECT_CODE(120, 2): {
DNP3ObjectG120V2 *data = point->data;
- jb_set_uint(js, "csq", data->csq);
- jb_set_uint(js, "usr", data->usr);
- jb_set_base64(js, "data->mac_value", data->mac_value, data->mac_value_len);
+ SCJbSetUint(js, "csq", data->csq);
+ SCJbSetUint(js, "usr", data->usr);
+ SCJbSetBase64(js, "data->mac_value", data->mac_value, data->mac_value_len);
break;
}
case DNP3_OBJECT_CODE(120, 3): {
DNP3ObjectG120V3 *data = point->data;
- jb_set_uint(js, "csq", data->csq);
- jb_set_uint(js, "user_number", data->user_number);
+ SCJbSetUint(js, "csq", data->csq);
+ SCJbSetUint(js, "user_number", data->user_number);
break;
}
case DNP3_OBJECT_CODE(120, 4): {
DNP3ObjectG120V4 *data = point->data;
- jb_set_uint(js, "user_number", data->user_number);
+ SCJbSetUint(js, "user_number", data->user_number);
break;
}
case DNP3_OBJECT_CODE(120, 5): {
DNP3ObjectG120V5 *data = point->data;
- jb_set_uint(js, "ksq", data->ksq);
- jb_set_uint(js, "user_number", data->user_number);
- jb_set_uint(js, "key_wrap_alg", data->key_wrap_alg);
- jb_set_uint(js, "key_status", data->key_status);
- jb_set_uint(js, "mal", data->mal);
- jb_set_uint(js, "challenge_data_len", data->challenge_data_len);
- jb_set_base64(js, "data->challenge_data", data->challenge_data, data->challenge_data_len);
- jb_set_base64(js, "data->mac_value", data->mac_value, data->mac_value_len);
+ SCJbSetUint(js, "ksq", data->ksq);
+ SCJbSetUint(js, "user_number", data->user_number);
+ SCJbSetUint(js, "key_wrap_alg", data->key_wrap_alg);
+ SCJbSetUint(js, "key_status", data->key_status);
+ SCJbSetUint(js, "mal", data->mal);
+ SCJbSetUint(js, "challenge_data_len", data->challenge_data_len);
+ SCJbSetBase64(js, "data->challenge_data", data->challenge_data, data->challenge_data_len);
+ SCJbSetBase64(js, "data->mac_value", data->mac_value, data->mac_value_len);
break;
}
case DNP3_OBJECT_CODE(120, 6): {
DNP3ObjectG120V6 *data = point->data;
- jb_set_uint(js, "ksq", data->ksq);
- jb_set_uint(js, "usr", data->usr);
- jb_set_base64(js, "data->wrapped_key_data", data->wrapped_key_data, data->wrapped_key_data_len);
+ SCJbSetUint(js, "ksq", data->ksq);
+ SCJbSetUint(js, "usr", data->usr);
+ SCJbSetBase64(js, "data->wrapped_key_data", data->wrapped_key_data, data->wrapped_key_data_len);
break;
}
case DNP3_OBJECT_CODE(120, 7): {
DNP3ObjectG120V7 *data = point->data;
- jb_set_uint(js, "sequence_number", data->sequence_number);
- jb_set_uint(js, "usr", data->usr);
- jb_set_uint(js, "association_id", data->association_id);
- jb_set_uint(js, "error_code", data->error_code);
- jb_set_uint(js, "time_of_error", data->time_of_error);
+ SCJbSetUint(js, "sequence_number", data->sequence_number);
+ SCJbSetUint(js, "usr", data->usr);
+ SCJbSetUint(js, "association_id", data->association_id);
+ SCJbSetUint(js, "error_code", data->error_code);
+ SCJbSetUint(js, "time_of_error", data->time_of_error);
if (data->error_text_len > 0) {
- jb_set_string_from_bytes(
+ SCJbSetStringFromBytes(
js, "error_text", (const uint8_t *)data->error_text, data->error_text_len);
} else {
- jb_set_string(js, "error_text", "");
+ SCJbSetString(js, "error_text", "");
}
break;
}
case DNP3_OBJECT_CODE(120, 8): {
DNP3ObjectG120V8 *data = point->data;
- jb_set_uint(js, "key_change_method", data->key_change_method);
- jb_set_uint(js, "certificate_type", data->certificate_type);
- jb_set_base64(js, "data->certificate", data->certificate, data->certificate_len);
+ SCJbSetUint(js, "key_change_method", data->key_change_method);
+ SCJbSetUint(js, "certificate_type", data->certificate_type);
+ SCJbSetBase64(js, "data->certificate", data->certificate, data->certificate_len);
break;
}
case DNP3_OBJECT_CODE(120, 9): {
DNP3ObjectG120V9 *data = point->data;
- jb_set_base64(js, "data->mac_value", data->mac_value, data->mac_value_len);
+ SCJbSetBase64(js, "data->mac_value", data->mac_value, data->mac_value_len);
break;
}
case DNP3_OBJECT_CODE(120, 10): {
DNP3ObjectG120V10 *data = point->data;
- jb_set_uint(js, "key_change_method", data->key_change_method);
- jb_set_uint(js, "operation", data->operation);
- jb_set_uint(js, "scs", data->scs);
- jb_set_uint(js, "user_role", data->user_role);
- jb_set_uint(js, "user_role_expiry_interval", data->user_role_expiry_interval);
- jb_set_uint(js, "username_len", data->username_len);
- jb_set_uint(js, "user_public_key_len", data->user_public_key_len);
- jb_set_uint(js, "certification_data_len", data->certification_data_len);
+ SCJbSetUint(js, "key_change_method", data->key_change_method);
+ SCJbSetUint(js, "operation", data->operation);
+ SCJbSetUint(js, "scs", data->scs);
+ SCJbSetUint(js, "user_role", data->user_role);
+ SCJbSetUint(js, "user_role_expiry_interval", data->user_role_expiry_interval);
+ SCJbSetUint(js, "username_len", data->username_len);
+ SCJbSetUint(js, "user_public_key_len", data->user_public_key_len);
+ SCJbSetUint(js, "certification_data_len", data->certification_data_len);
if (data->username_len > 0) {
- jb_set_string_from_bytes(
+ SCJbSetStringFromBytes(
js, "username", (const uint8_t *)data->username, data->username_len);
} else {
- jb_set_string(js, "username", "");
+ SCJbSetString(js, "username", "");
}
- jb_set_base64(js, "data->user_public_key", data->user_public_key, data->user_public_key_len);
- jb_set_base64(js, "data->certification_data", data->certification_data, data->certification_data_len);
+ SCJbSetBase64(js, "data->user_public_key", data->user_public_key, data->user_public_key_len);
+ SCJbSetBase64(js, "data->certification_data", data->certification_data, data->certification_data_len);
break;
}
case DNP3_OBJECT_CODE(120, 11): {
DNP3ObjectG120V11 *data = point->data;
- jb_set_uint(js, "key_change_method", data->key_change_method);
- jb_set_uint(js, "username_len", data->username_len);
- jb_set_uint(js, "master_challenge_data_len", data->master_challenge_data_len);
+ SCJbSetUint(js, "key_change_method", data->key_change_method);
+ SCJbSetUint(js, "username_len", data->username_len);
+ SCJbSetUint(js, "master_challenge_data_len", data->master_challenge_data_len);
if (data->username_len > 0) {
- jb_set_string_from_bytes(
+ SCJbSetStringFromBytes(
js, "username", (const uint8_t *)data->username, data->username_len);
} else {
- jb_set_string(js, "username", "");
+ SCJbSetString(js, "username", "");
}
- jb_set_base64(js, "data->master_challenge_data", data->master_challenge_data, data->master_challenge_data_len);
+ SCJbSetBase64(js, "data->master_challenge_data", data->master_challenge_data, data->master_challenge_data_len);
break;
}
case DNP3_OBJECT_CODE(120, 12): {
DNP3ObjectG120V12 *data = point->data;
- jb_set_uint(js, "ksq", data->ksq);
- jb_set_uint(js, "user_number", data->user_number);
- jb_set_uint(js, "challenge_data_len", data->challenge_data_len);
- jb_set_base64(js, "data->challenge_data", data->challenge_data, data->challenge_data_len);
+ SCJbSetUint(js, "ksq", data->ksq);
+ SCJbSetUint(js, "user_number", data->user_number);
+ SCJbSetUint(js, "challenge_data_len", data->challenge_data_len);
+ SCJbSetBase64(js, "data->challenge_data", data->challenge_data, data->challenge_data_len);
break;
}
case DNP3_OBJECT_CODE(120, 13): {
DNP3ObjectG120V13 *data = point->data;
- jb_set_uint(js, "ksq", data->ksq);
- jb_set_uint(js, "user_number", data->user_number);
- jb_set_uint(js, "encrypted_update_key_len", data->encrypted_update_key_len);
- jb_set_base64(js, "data->encrypted_update_key_data", data->encrypted_update_key_data, data->encrypted_update_key_len);
+ SCJbSetUint(js, "ksq", data->ksq);
+ SCJbSetUint(js, "user_number", data->user_number);
+ SCJbSetUint(js, "encrypted_update_key_len", data->encrypted_update_key_len);
+ SCJbSetBase64(js, "data->encrypted_update_key_data", data->encrypted_update_key_data, data->encrypted_update_key_len);
break;
}
case DNP3_OBJECT_CODE(120, 14): {
DNP3ObjectG120V14 *data = point->data;
- jb_set_base64(js, "data->digital_signature", data->digital_signature, data->digital_signature_len);
+ SCJbSetBase64(js, "data->digital_signature", data->digital_signature, data->digital_signature_len);
break;
}
case DNP3_OBJECT_CODE(120, 15): {
DNP3ObjectG120V15 *data = point->data;
- jb_set_base64(js, "data->mac", data->mac, data->mac_len);
+ SCJbSetBase64(js, "data->mac", data->mac, data->mac_len);
break;
}
case DNP3_OBJECT_CODE(121, 1): {
DNP3ObjectG121V1 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "association_id", data->association_id);
- jb_set_uint(js, "count_value", data->count_value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "association_id", data->association_id);
+ SCJbSetUint(js, "count_value", data->count_value);
break;
}
case DNP3_OBJECT_CODE(122, 1): {
DNP3ObjectG122V1 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "association_id", data->association_id);
- jb_set_uint(js, "count_value", data->count_value);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "association_id", data->association_id);
+ SCJbSetUint(js, "count_value", data->count_value);
break;
}
case DNP3_OBJECT_CODE(122, 2): {
DNP3ObjectG122V2 *data = point->data;
- jb_set_uint(js, "online", data->online);
- jb_set_uint(js, "restart", data->restart);
- jb_set_uint(js, "comm_lost", data->comm_lost);
- jb_set_uint(js, "remote_forced", data->remote_forced);
- jb_set_uint(js, "local_forced", data->local_forced);
- jb_set_uint(js, "reserved0", data->reserved0);
- jb_set_uint(js, "discontinuity", data->discontinuity);
- jb_set_uint(js, "reserved1", data->reserved1);
- jb_set_uint(js, "association_id", data->association_id);
- jb_set_uint(js, "count_value", data->count_value);
- jb_set_uint(js, "timestamp", data->timestamp);
+ SCJbSetUint(js, "online", data->online);
+ SCJbSetUint(js, "restart", data->restart);
+ SCJbSetUint(js, "comm_lost", data->comm_lost);
+ SCJbSetUint(js, "remote_forced", data->remote_forced);
+ SCJbSetUint(js, "local_forced", data->local_forced);
+ SCJbSetUint(js, "reserved0", data->reserved0);
+ SCJbSetUint(js, "discontinuity", data->discontinuity);
+ SCJbSetUint(js, "reserved1", data->reserved1);
+ SCJbSetUint(js, "association_id", data->association_id);
+ SCJbSetUint(js, "count_value", data->count_value);
+ SCJbSetUint(js, "timestamp", data->timestamp);
break;
}
default:
#include "rust-bindings.h"
-void OutputJsonDNP3SetItem(JsonBuilder *js, DNP3Object *object,
- DNP3Point *item);
+void OutputJsonDNP3SetItem(SCJsonBuilder *js, DNP3Object *object, DNP3Point *item);
#endif /* SURICATA_OUTPUT_JSON_DNP3_OBJECTS_H */
OutputJsonThreadCtx *ctx;
} LogDNP3LogThread;
-static void JsonDNP3LogLinkControl(JsonBuilder *js, uint8_t lc)
+static void JsonDNP3LogLinkControl(SCJsonBuilder *js, uint8_t lc)
{
- jb_set_bool(js, "dir", DNP3_LINK_DIR(lc));
- jb_set_bool(js, "pri", DNP3_LINK_PRI(lc));
- jb_set_bool(js, "fcb", DNP3_LINK_FCB(lc));
- jb_set_bool(js, "fcv", DNP3_LINK_FCV(lc));
- jb_set_uint(js, "function_code", DNP3_LINK_FC(lc));
+ SCJbSetBool(js, "dir", DNP3_LINK_DIR(lc));
+ SCJbSetBool(js, "pri", DNP3_LINK_PRI(lc));
+ SCJbSetBool(js, "fcb", DNP3_LINK_FCB(lc));
+ SCJbSetBool(js, "fcv", DNP3_LINK_FCV(lc));
+ SCJbSetUint(js, "function_code", DNP3_LINK_FC(lc));
}
-static void JsonDNP3LogIin(JsonBuilder *js, uint16_t iin)
+static void JsonDNP3LogIin(SCJsonBuilder *js, uint16_t iin)
{
if (iin) {
- jb_open_array(js, "indicators");
+ SCJbOpenArray(js, "indicators");
int mapping = 0;
do {
if (iin & DNP3IndicatorsMap[mapping].value) {
- jb_append_string(js, DNP3IndicatorsMap[mapping].name);
+ SCJbAppendString(js, DNP3IndicatorsMap[mapping].name);
}
mapping++;
} while (DNP3IndicatorsMap[mapping].name != NULL);
- jb_close(js);
+ SCJbClose(js);
}
}
-static void JsonDNP3LogApplicationControl(JsonBuilder *js, uint8_t ac)
+static void JsonDNP3LogApplicationControl(SCJsonBuilder *js, uint8_t ac)
{
- jb_set_bool(js, "fir", DNP3_APP_FIR(ac));
- jb_set_bool(js, "fin", DNP3_APP_FIN(ac));
- jb_set_bool(js, "con", DNP3_APP_CON(ac));
- jb_set_bool(js, "uns", DNP3_APP_UNS(ac));
- jb_set_uint(js, "sequence", DNP3_APP_SEQ(ac));
+ SCJbSetBool(js, "fir", DNP3_APP_FIR(ac));
+ SCJbSetBool(js, "fin", DNP3_APP_FIN(ac));
+ SCJbSetBool(js, "con", DNP3_APP_CON(ac));
+ SCJbSetBool(js, "uns", DNP3_APP_UNS(ac));
+ SCJbSetUint(js, "sequence", DNP3_APP_SEQ(ac));
}
/**
*
* TODO: Autogenerate this function based on object definitions.
*/
-static void JsonDNP3LogObjectItems(JsonBuilder *js, DNP3Object *object)
+static void JsonDNP3LogObjectItems(SCJsonBuilder *js, DNP3Object *object)
{
DNP3Point *item;
TAILQ_FOREACH(item, object->points, next) {
- jb_start_object(js);
+ SCJbStartObject(js);
- jb_set_uint(js, "prefix", item->prefix);
- jb_set_uint(js, "index", item->index);
+ SCJbSetUint(js, "prefix", item->prefix);
+ SCJbSetUint(js, "index", item->index);
if (DNP3PrefixIsSize(object->prefix_code)) {
- jb_set_uint(js, "size", item->size);
+ SCJbSetUint(js, "size", item->size);
}
OutputJsonDNP3SetItem(js, object, item);
- jb_close(js);
+ SCJbClose(js);
}
}
* \brief Log the application layer objects.
*
* \param objects A list of DNP3 objects.
- * \param jb A JsonBuilder instance with an open array.
+ * \param jb A SCJsonBuilder instance with an open array.
*/
-static void JsonDNP3LogObjects(JsonBuilder *js, DNP3ObjectList *objects)
+static void JsonDNP3LogObjects(SCJsonBuilder *js, DNP3ObjectList *objects)
{
DNP3Object *object;
TAILQ_FOREACH(object, objects, next) {
- jb_start_object(js);
- jb_set_uint(js, "group", object->group);
- jb_set_uint(js, "variation", object->variation);
- jb_set_uint(js, "qualifier", object->qualifier);
- jb_set_uint(js, "prefix_code", object->prefix_code);
- jb_set_uint(js, "range_code", object->range_code);
- jb_set_uint(js, "start", object->start);
- jb_set_uint(js, "stop", object->stop);
- jb_set_uint(js, "count", object->count);
+ SCJbStartObject(js);
+ SCJbSetUint(js, "group", object->group);
+ SCJbSetUint(js, "variation", object->variation);
+ SCJbSetUint(js, "qualifier", object->qualifier);
+ SCJbSetUint(js, "prefix_code", object->prefix_code);
+ SCJbSetUint(js, "range_code", object->range_code);
+ SCJbSetUint(js, "start", object->start);
+ SCJbSetUint(js, "stop", object->stop);
+ SCJbSetUint(js, "count", object->count);
if (object->points != NULL && !TAILQ_EMPTY(object->points)) {
- jb_open_array(js, "points");
+ SCJbOpenArray(js, "points");
JsonDNP3LogObjectItems(js, object);
- jb_close(js);
+ SCJbClose(js);
}
- jb_close(js);
+ SCJbClose(js);
}
}
-static void JsonDNP3LogRequest(JsonBuilder *js, DNP3Transaction *dnp3tx)
+static void JsonDNP3LogRequest(SCJsonBuilder *js, DNP3Transaction *dnp3tx)
{
JB_SET_STRING(js, "type", "request");
- jb_open_object(js, "control");
+ SCJbOpenObject(js, "control");
JsonDNP3LogLinkControl(js, dnp3tx->lh.control);
- jb_close(js);
+ SCJbClose(js);
- jb_set_uint(js, "src", DNP3_SWAP16(dnp3tx->lh.src));
- jb_set_uint(js, "dst", DNP3_SWAP16(dnp3tx->lh.dst));
+ SCJbSetUint(js, "src", DNP3_SWAP16(dnp3tx->lh.src));
+ SCJbSetUint(js, "dst", DNP3_SWAP16(dnp3tx->lh.dst));
- jb_open_object(js, "application");
+ SCJbOpenObject(js, "application");
- jb_open_object(js, "control");
+ SCJbOpenObject(js, "control");
JsonDNP3LogApplicationControl(js, dnp3tx->ah.control);
- jb_close(js);
+ SCJbClose(js);
- jb_set_uint(js, "function_code", dnp3tx->ah.function_code);
+ SCJbSetUint(js, "function_code", dnp3tx->ah.function_code);
if (!TAILQ_EMPTY(&dnp3tx->objects)) {
- jb_open_array(js, "objects");
+ SCJbOpenArray(js, "objects");
JsonDNP3LogObjects(js, &dnp3tx->objects);
- jb_close(js);
+ SCJbClose(js);
}
- jb_set_bool(js, "complete", dnp3tx->complete);
+ SCJbSetBool(js, "complete", dnp3tx->complete);
/* Close application. */
- jb_close(js);
+ SCJbClose(js);
}
-static void JsonDNP3LogResponse(JsonBuilder *js, DNP3Transaction *dnp3tx)
+static void JsonDNP3LogResponse(SCJsonBuilder *js, DNP3Transaction *dnp3tx)
{
if (dnp3tx->ah.function_code == DNP3_APP_FC_UNSOLICITED_RESP) {
JB_SET_STRING(js, "type", "unsolicited_response");
JB_SET_STRING(js, "type", "response");
}
- jb_open_object(js, "control");
+ SCJbOpenObject(js, "control");
JsonDNP3LogLinkControl(js, dnp3tx->lh.control);
- jb_close(js);
+ SCJbClose(js);
- jb_set_uint(js, "src", DNP3_SWAP16(dnp3tx->lh.src));
- jb_set_uint(js, "dst", DNP3_SWAP16(dnp3tx->lh.dst));
+ SCJbSetUint(js, "src", DNP3_SWAP16(dnp3tx->lh.src));
+ SCJbSetUint(js, "dst", DNP3_SWAP16(dnp3tx->lh.dst));
- jb_open_object(js, "application");
+ SCJbOpenObject(js, "application");
- jb_open_object(js, "control");
+ SCJbOpenObject(js, "control");
JsonDNP3LogApplicationControl(js, dnp3tx->ah.control);
- jb_close(js);
+ SCJbClose(js);
- jb_set_uint(js, "function_code", dnp3tx->ah.function_code);
+ SCJbSetUint(js, "function_code", dnp3tx->ah.function_code);
if (!TAILQ_EMPTY(&dnp3tx->objects)) {
- jb_open_array(js, "objects");
+ SCJbOpenArray(js, "objects");
JsonDNP3LogObjects(js, &dnp3tx->objects);
- jb_close(js);
+ SCJbClose(js);
}
- jb_set_bool(js, "complete", dnp3tx->complete);
+ SCJbSetBool(js, "complete", dnp3tx->complete);
/* Close application. */
- jb_close(js);
+ SCJbClose(js);
- jb_open_object(js, "iin");
+ SCJbOpenObject(js, "iin");
JsonDNP3LogIin(js, (uint16_t)(dnp3tx->iin.iin1 << 8 | dnp3tx->iin.iin2));
- jb_close(js);
+ SCJbClose(js);
}
-bool AlertJsonDnp3(void *vtx, JsonBuilder *js)
+bool AlertJsonDnp3(void *vtx, SCJsonBuilder *js)
{
DNP3Transaction *tx = (DNP3Transaction *)vtx;
bool logged = false;
- jb_open_object(js, "dnp3");
+ SCJbOpenObject(js, "dnp3");
if (tx->is_request && tx->done) {
- jb_open_object(js, "request");
+ SCJbOpenObject(js, "request");
JsonDNP3LogRequest(js, tx);
- jb_close(js);
+ SCJbClose(js);
logged = true;
}
if (!tx->is_request && tx->done) {
- jb_open_object(js, "response");
+ SCJbOpenObject(js, "response");
JsonDNP3LogResponse(js, tx);
- jb_close(js);
+ SCJbClose(js);
logged = true;
}
- jb_close(js);
+ SCJbClose(js);
return logged;
}
LogDNP3LogThread *thread = (LogDNP3LogThread *)thread_data;
DNP3Transaction *tx = vtx;
- JsonBuilder *js = CreateEveHeader(p, LOG_DIR_FLOW, "dnp3", NULL, thread->dnp3log_ctx->eve_ctx);
+ SCJsonBuilder *js =
+ CreateEveHeader(p, LOG_DIR_FLOW, "dnp3", NULL, thread->dnp3log_ctx->eve_ctx);
if (unlikely(js == NULL)) {
return TM_ECODE_OK;
}
- jb_open_object(js, "dnp3");
+ SCJbOpenObject(js, "dnp3");
JsonDNP3LogRequest(js, tx);
- jb_close(js);
+ SCJbClose(js);
OutputJsonBuilderBuffer(tv, p, p->flow, js, thread->ctx);
- jb_free(js);
+ SCJbFree(js);
SCReturnInt(TM_ECODE_OK);
}
LogDNP3LogThread *thread = (LogDNP3LogThread *)thread_data;
DNP3Transaction *tx = vtx;
- JsonBuilder *js = CreateEveHeader(p, LOG_DIR_FLOW, "dnp3", NULL, thread->dnp3log_ctx->eve_ctx);
+ SCJsonBuilder *js =
+ CreateEveHeader(p, LOG_DIR_FLOW, "dnp3", NULL, thread->dnp3log_ctx->eve_ctx);
if (unlikely(js == NULL)) {
return TM_ECODE_OK;
}
- jb_open_object(js, "dnp3");
+ SCJbOpenObject(js, "dnp3");
JsonDNP3LogResponse(js, tx);
- jb_close(js);
+ SCJbClose(js);
OutputJsonBuilderBuffer(tv, p, p->flow, js, thread->ctx);
- jb_free(js);
+ SCJbFree(js);
SCReturnInt(TM_ECODE_OK);
}
#include "app-layer-dnp3.h"
void JsonDNP3LogRegister(void);
-bool AlertJsonDnp3(void *vtx, JsonBuilder *js);
+bool AlertJsonDnp3(void *vtx, SCJsonBuilder *js);
#endif /* SURICATA_OUTPUT_JSON_DNP3_H */
OutputJsonThreadCtx *ctx;
} LogDnsLogThread;
-bool AlertJsonDns(void *txptr, JsonBuilder *js)
+bool AlertJsonDns(void *txptr, SCJsonBuilder *js)
{
return SCDnsLogJson(
txptr, LOG_FORMAT_DETAILED | LOG_QUERIES | LOG_ANSWERS | LOG_ALL_RRTYPES, js);
}
-bool AlertJsonDoh2(void *txptr, JsonBuilder *js)
+bool AlertJsonDoh2(void *txptr, SCJsonBuilder *js)
{
- JsonBuilderMark mark = { 0, 0, 0 };
+ SCJsonBuilderMark mark = { 0, 0, 0 };
- jb_get_mark(js, &mark);
+ SCJbGetMark(js, &mark);
// first log HTTP2 part
bool r = rs_http2_log_json(txptr, js);
if (!r) {
- jb_restore_mark(js, &mark);
+ SCJbRestoreMark(js, &mark);
}
// then log one DNS tx if any, preferring the answer
void *tx_dns = DetectGetInnerTx(txptr, ALPROTO_DOH2, ALPROTO_DNS, STREAM_TOCLIENT);
}
bool r2 = false;
if (tx_dns) {
- jb_get_mark(js, &mark);
+ SCJbGetMark(js, &mark);
r2 = AlertJsonDns(tx_dns, js);
if (!r2) {
- jb_restore_mark(js, &mark);
+ SCJbRestoreMark(js, &mark);
}
}
return r || r2;
LogDnsLogThread *td = (LogDnsLogThread *)thread_data;
LogDnsFileCtx *dnslog_ctx = td->dnslog_ctx;
- JsonBuilder *jb = CreateEveHeader(p, LOG_DIR_FLOW, "dns", NULL, dnslog_ctx->eve_ctx);
+ SCJsonBuilder *jb = CreateEveHeader(p, LOG_DIR_FLOW, "dns", NULL, dnslog_ctx->eve_ctx);
if (unlikely(jb == NULL)) {
return TM_ECODE_OK;
}
- JsonBuilderMark mark = { 0, 0, 0 };
+ SCJsonBuilderMark mark = { 0, 0, 0 };
- jb_get_mark(jb, &mark);
+ SCJbGetMark(jb, &mark);
// first log HTTP2 part
bool r = rs_http2_log_json(txptr, jb);
if (!r) {
- jb_restore_mark(jb, &mark);
+ SCJbRestoreMark(jb, &mark);
}
void *tx_dns = DetectGetInnerTx(txptr, ALPROTO_DOH2, ALPROTO_DNS, STREAM_TOCLIENT);
goto out;
}
- jb_get_mark(jb, &mark);
+ SCJbGetMark(jb, &mark);
// log DOH2 with DNS config
r2 = SCDnsLogJson(tx_dns, td->dnslog_ctx->flags, jb);
if (!r2) {
- jb_restore_mark(jb, &mark);
+ SCJbRestoreMark(jb, &mark);
}
}
out:
if (r || r2) {
OutputJsonBuilderBuffer(tv, p, p->flow, jb, td->ctx);
}
- jb_free(jb);
+ SCJbFree(jb);
return TM_ECODE_OK;
}
}
for (uint16_t i = 0; i < 0xffff; i++) {
- JsonBuilder *jb = CreateEveHeader(p, LOG_DIR_FLOW, "dns", NULL, dnslog_ctx->eve_ctx);
+ SCJsonBuilder *jb = CreateEveHeader(p, LOG_DIR_FLOW, "dns", NULL, dnslog_ctx->eve_ctx);
if (unlikely(jb == NULL)) {
return TM_ECODE_OK;
}
- jb_open_object(jb, "dns");
- jb_set_int(jb, "version", 2);
+ SCJbOpenObject(jb, "dns");
+ SCJbSetInt(jb, "version", 2);
if (!SCDnsLogJsonQuery(txptr, i, td->dnslog_ctx->flags, jb)) {
- jb_free(jb);
+ SCJbFree(jb);
break;
}
- jb_close(jb);
+ SCJbClose(jb);
OutputJsonBuilderBuffer(tv, p, p->flow, jb, td->ctx);
- jb_free(jb);
+ SCJbFree(jb);
}
SCReturnInt(TM_ECODE_OK);
}
if (SCDnsLogAnswerEnabled(txptr, td->dnslog_ctx->flags)) {
- JsonBuilder *jb = CreateEveHeader(p, LOG_DIR_FLOW, "dns", NULL, dnslog_ctx->eve_ctx);
+ SCJsonBuilder *jb = CreateEveHeader(p, LOG_DIR_FLOW, "dns", NULL, dnslog_ctx->eve_ctx);
if (unlikely(jb == NULL)) {
return TM_ECODE_OK;
}
- jb_open_object(jb, "dns");
- jb_set_int(jb, "version", 2);
+ SCJbOpenObject(jb, "dns");
+ SCJbSetInt(jb, "version", 2);
SCDnsLogJsonAnswer(txptr, td->dnslog_ctx->flags, jb);
- jb_close(jb);
+ SCJbClose(jb);
OutputJsonBuilderBuffer(tv, p, p->flow, jb, td->ctx);
- jb_free(jb);
+ SCJbFree(jb);
}
SCReturnInt(TM_ECODE_OK);
return TM_ECODE_OK;
}
- JsonBuilder *jb = CreateEveHeader(p, LOG_DIR_FLOW, "dns", NULL, dnslog_ctx->eve_ctx);
+ SCJsonBuilder *jb = CreateEveHeader(p, LOG_DIR_FLOW, "dns", NULL, dnslog_ctx->eve_ctx);
if (unlikely(jb == NULL)) {
return TM_ECODE_OK;
}
if (SCDnsLogJson(txptr, td->dnslog_ctx->flags, jb)) {
OutputJsonBuilderBuffer(tv, p, p->flow, jb, td->ctx);
}
- jb_free(jb);
+ SCJbFree(jb);
}
return TM_ECODE_OK;
}
void JsonDnsLogRegister(void);
void JsonDoh2LogRegister(void);
-bool AlertJsonDns(void *vtx, JsonBuilder *js);
-bool AlertJsonDoh2(void *vtx, JsonBuilder *js);
+bool AlertJsonDns(void *vtx, SCJsonBuilder *js);
+bool AlertJsonDoh2(void *vtx, SCJsonBuilder *js);
#endif /* SURICATA_OUTPUT_JSON_DNS_H */
JsonAddrInfo addr = json_addr_info_zero;
JsonAddrInfoInit(p, LOG_DIR_PACKET, &addr);
- JsonBuilder *js = CreateEveHeader(p, LOG_DIR_PACKET, "drop", &addr, drop_ctx->eve_ctx);
+ SCJsonBuilder *js = CreateEveHeader(p, LOG_DIR_PACKET, "drop", &addr, drop_ctx->eve_ctx);
if (unlikely(js == NULL))
return TM_ECODE_OK;
if (p->flow != NULL) {
if (p->flowflags & FLOW_PKT_TOSERVER) {
- jb_set_string(js, "direction", "to_server");
+ SCJbSetString(js, "direction", "to_server");
} else {
- jb_set_string(js, "direction", "to_client");
+ SCJbSetString(js, "direction", "to_client");
}
}
- jb_open_object(js, "drop");
+ SCJbOpenObject(js, "drop");
uint16_t proto = 0;
if (PacketIsIPv4(p)) {
const IPV4Hdr *ip4h = PacketGetIPv4(p);
- jb_set_uint(js, "len", IPV4_GET_RAW_IPLEN(ip4h));
- jb_set_uint(js, "tos", IPV4_GET_RAW_IPTOS(ip4h));
- jb_set_uint(js, "ttl", IPV4_GET_RAW_IPTTL(ip4h));
- jb_set_uint(js, "ipid", IPV4_GET_RAW_IPID(ip4h));
+ SCJbSetUint(js, "len", IPV4_GET_RAW_IPLEN(ip4h));
+ SCJbSetUint(js, "tos", IPV4_GET_RAW_IPTOS(ip4h));
+ SCJbSetUint(js, "ttl", IPV4_GET_RAW_IPTTL(ip4h));
+ SCJbSetUint(js, "ipid", IPV4_GET_RAW_IPID(ip4h));
proto = IPV4_GET_RAW_IPPROTO(ip4h);
} else if (PacketIsIPv6(p)) {
const IPV6Hdr *ip6h = PacketGetIPv6(p);
- jb_set_uint(js, "len", IPV6_GET_RAW_PLEN(ip6h));
- jb_set_uint(js, "tc", IPV6_GET_RAW_CLASS(ip6h));
- jb_set_uint(js, "hoplimit", IPV6_GET_RAW_HLIM(ip6h));
- jb_set_uint(js, "flowlbl", IPV6_GET_RAW_FLOW(ip6h));
+ SCJbSetUint(js, "len", IPV6_GET_RAW_PLEN(ip6h));
+ SCJbSetUint(js, "tc", IPV6_GET_RAW_CLASS(ip6h));
+ SCJbSetUint(js, "hoplimit", IPV6_GET_RAW_HLIM(ip6h));
+ SCJbSetUint(js, "flowlbl", IPV6_GET_RAW_FLOW(ip6h));
proto = IPV6_GET_L4PROTO(p);
}
switch (proto) {
case IPPROTO_TCP:
if (PacketIsTCP(p)) {
const TCPHdr *tcph = PacketGetTCP(p);
- jb_set_uint(js, "tcpseq", TCP_GET_RAW_SEQ(tcph));
- jb_set_uint(js, "tcpack", TCP_GET_RAW_ACK(tcph));
- jb_set_uint(js, "tcpwin", TCP_GET_RAW_WINDOW(tcph));
- jb_set_bool(js, "syn", TCP_ISSET_FLAG_RAW_SYN(tcph) ? true : false);
- jb_set_bool(js, "ack", TCP_ISSET_FLAG_RAW_ACK(tcph) ? true : false);
- jb_set_bool(js, "psh", TCP_ISSET_FLAG_RAW_PUSH(tcph) ? true : false);
- jb_set_bool(js, "rst", TCP_ISSET_FLAG_RAW_RST(tcph) ? true : false);
- jb_set_bool(js, "urg", TCP_ISSET_FLAG_RAW_URG(tcph) ? true : false);
- jb_set_bool(js, "fin", TCP_ISSET_FLAG_RAW_FIN(tcph) ? true : false);
- jb_set_uint(js, "tcpres", TCP_GET_RAW_X2(tcph));
- jb_set_uint(js, "tcpurgp", TCP_GET_RAW_URG_POINTER(tcph));
+ SCJbSetUint(js, "tcpseq", TCP_GET_RAW_SEQ(tcph));
+ SCJbSetUint(js, "tcpack", TCP_GET_RAW_ACK(tcph));
+ SCJbSetUint(js, "tcpwin", TCP_GET_RAW_WINDOW(tcph));
+ SCJbSetBool(js, "syn", TCP_ISSET_FLAG_RAW_SYN(tcph) ? true : false);
+ SCJbSetBool(js, "ack", TCP_ISSET_FLAG_RAW_ACK(tcph) ? true : false);
+ SCJbSetBool(js, "psh", TCP_ISSET_FLAG_RAW_PUSH(tcph) ? true : false);
+ SCJbSetBool(js, "rst", TCP_ISSET_FLAG_RAW_RST(tcph) ? true : false);
+ SCJbSetBool(js, "urg", TCP_ISSET_FLAG_RAW_URG(tcph) ? true : false);
+ SCJbSetBool(js, "fin", TCP_ISSET_FLAG_RAW_FIN(tcph) ? true : false);
+ SCJbSetUint(js, "tcpres", TCP_GET_RAW_X2(tcph));
+ SCJbSetUint(js, "tcpurgp", TCP_GET_RAW_URG_POINTER(tcph));
}
break;
case IPPROTO_UDP:
if (PacketIsUDP(p)) {
const UDPHdr *udph = PacketGetUDP(p);
- jb_set_uint(js, "udplen", UDP_GET_RAW_LEN(udph));
+ SCJbSetUint(js, "udplen", UDP_GET_RAW_LEN(udph));
}
break;
case IPPROTO_ICMP:
if (PacketIsICMPv4(p)) {
- jb_set_uint(js, "icmp_id", ICMPV4_GET_ID(p));
- jb_set_uint(js, "icmp_seq", ICMPV4_GET_SEQ(p));
+ SCJbSetUint(js, "icmp_id", ICMPV4_GET_ID(p));
+ SCJbSetUint(js, "icmp_seq", ICMPV4_GET_SEQ(p));
} else if (PacketIsICMPv6(p)) {
- jb_set_uint(js, "icmp_id", ICMPV6_GET_ID(p));
- jb_set_uint(js, "icmp_seq", ICMPV6_GET_SEQ(p));
+ SCJbSetUint(js, "icmp_id", ICMPV6_GET_ID(p));
+ SCJbSetUint(js, "icmp_seq", ICMPV6_GET_SEQ(p));
}
break;
}
if (p->drop_reason != 0) {
const char *str = PacketDropReasonToString(p->drop_reason);
- jb_set_string(js, "reason", str);
+ SCJbSetString(js, "reason", str);
}
/* Close drop. */
- jb_close(js);
+ SCJbClose(js);
if (aft->drop_ctx->flags & LOG_DROP_VERDICT) {
EveAddVerdict(js, p);
}
OutputJsonBuilderBuffer(tv, p, p->flow, js, aft->ctx);
- jb_free(js);
+ SCJbFree(js);
return TM_ECODE_OK;
}
{ NULL, NULL, LOG_EMAIL_DEFAULT},
};
-static void EveEmailLogJSONMd5(OutputJsonEmailCtx *email_ctx, JsonBuilder *js, SMTPTransaction *tx)
+static void EveEmailLogJSONMd5(
+ OutputJsonEmailCtx *email_ctx, SCJsonBuilder *js, SMTPTransaction *tx)
{
if (email_ctx->flags & LOG_EMAIL_SUBJECT_MD5) {
MimeStateSMTP *entity = tx->mime_state;
}
}
-static void EveEmailLogJSONCustom(OutputJsonEmailCtx *email_ctx, JsonBuilder *js, SMTPTransaction *tx)
+static void EveEmailLogJSONCustom(
+ OutputJsonEmailCtx *email_ctx, SCJsonBuilder *js, SMTPTransaction *tx)
{
int f = 0;
MimeStateSMTP *entity = tx->mime_state;
}
/* JSON format logging */
-static bool EveEmailLogJsonData(const Flow *f, void *state, void *vtx, uint64_t tx_id, JsonBuilder *sjs)
+static bool EveEmailLogJsonData(
+ const Flow *f, void *state, void *vtx, uint64_t tx_id, SCJsonBuilder *sjs)
{
SMTPState *smtp_state;
MimeStateSMTP *mime_state;
smtp_state = (SMTPState *)state;
if (smtp_state == NULL) {
SCLogDebug("no smtp state, so no request logging");
- jb_free(sjs);
- SCReturnPtr(NULL, "JsonBuilder");
+ SCJbFree(sjs);
+ SCReturnPtr(NULL, "SCJsonBuilder");
}
SMTPTransaction *tx = vtx;
mime_state = tx->mime_state;
}
/* JSON format logging */
-TmEcode EveEmailLogJson(JsonEmailLogThread *aft, JsonBuilder *js, const Packet *p, Flow *f, void *state, void *vtx, uint64_t tx_id)
+TmEcode EveEmailLogJson(JsonEmailLogThread *aft, SCJsonBuilder *js, const Packet *p, Flow *f,
+ void *state, void *vtx, uint64_t tx_id)
{
OutputJsonEmailCtx *email_ctx = aft->emaillog_ctx;
SMTPTransaction *tx = (SMTPTransaction *) vtx;
- JsonBuilderMark mark = { 0, 0, 0 };
+ SCJsonBuilderMark mark = { 0, 0, 0 };
- jb_get_mark(js, &mark);
- jb_open_object(js, "email");
+ SCJbGetMark(js, &mark);
+ SCJbOpenObject(js, "email");
if (!EveEmailLogJsonData(f, state, vtx, tx_id, js)) {
- jb_restore_mark(js, &mark);
+ SCJbRestoreMark(js, &mark);
SCReturnInt(TM_ECODE_FAILED);
}
EveEmailLogJSONMd5(email_ctx, js, tx);
}
- jb_close(js);
+ SCJbClose(js);
SCReturnInt(TM_ECODE_OK);
}
-bool EveEmailAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *js)
+bool EveEmailAddMetadata(const Flow *f, uint64_t tx_id, SCJsonBuilder *js)
{
SMTPState *smtp_state = (SMTPState *)FlowGetAppState(f);
if (smtp_state) {
OutputJsonThreadCtx *ctx;
} JsonEmailLogThread;
-TmEcode EveEmailLogJson(JsonEmailLogThread *aft, JsonBuilder *js, const Packet *p, Flow *f, void *state, void *vtx, uint64_t tx_id);
-bool EveEmailAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *js);
+TmEcode EveEmailLogJson(JsonEmailLogThread *aft, SCJsonBuilder *js, const Packet *p, Flow *f,
+ void *state, void *vtx, uint64_t tx_id);
+bool EveEmailAddMetadata(const Flow *f, uint64_t tx_id, SCJsonBuilder *js);
void OutputEmailInitConf(SCConfNode *conf, OutputJsonEmailCtx *email_ctx);
OutputJsonThreadCtx *ctx;
} JsonFileLogThread;
-JsonBuilder *JsonBuildFileInfoRecord(const Packet *p, const File *ff, void *tx,
+SCJsonBuilder *JsonBuildFileInfoRecord(const Packet *p, const File *ff, void *tx,
const uint64_t tx_id, const bool stored, uint8_t dir, HttpXFFCfg *xff_cfg,
OutputJsonCtx *eve_ctx)
{
}
}
- JsonBuilder *js = CreateEveHeader(p, fdir, "fileinfo", &addr, eve_ctx);
+ SCJsonBuilder *js = CreateEveHeader(p, fdir, "fileinfo", &addr, eve_ctx);
if (unlikely(js == NULL))
return NULL;
- JsonBuilderMark mark = { 0, 0, 0 };
+ SCJsonBuilderMark mark = { 0, 0, 0 };
EveJsonSimpleAppLayerLogger *al;
switch (p->flow->alproto) {
case ALPROTO_HTTP1:
- jb_open_object(js, "http");
+ SCJbOpenObject(js, "http");
EveHttpAddMetadata(p->flow, tx_id, js);
- jb_close(js);
+ SCJbClose(js);
break;
case ALPROTO_SMTP:
- jb_get_mark(js, &mark);
- jb_open_object(js, "smtp");
+ SCJbGetMark(js, &mark);
+ SCJbOpenObject(js, "smtp");
if (EveSMTPAddMetadata(p->flow, tx_id, js)) {
- jb_close(js);
+ SCJbClose(js);
} else {
- jb_restore_mark(js, &mark);
+ SCJbRestoreMark(js, &mark);
}
- jb_get_mark(js, &mark);
- jb_open_object(js, "email");
+ SCJbGetMark(js, &mark);
+ SCJbOpenObject(js, "email");
if (EveEmailAddMetadata(p->flow, tx_id, js)) {
- jb_close(js);
+ SCJbClose(js);
} else {
- jb_restore_mark(js, &mark);
+ SCJbRestoreMark(js, &mark);
}
break;
case ALPROTO_NFS:
/* rpc */
- jb_get_mark(js, &mark);
- jb_open_object(js, "rpc");
+ SCJbGetMark(js, &mark);
+ SCJbOpenObject(js, "rpc");
if (EveNFSAddMetadataRPC(p->flow, tx_id, js)) {
- jb_close(js);
+ SCJbClose(js);
} else {
- jb_restore_mark(js, &mark);
+ SCJbRestoreMark(js, &mark);
}
/* nfs */
- jb_get_mark(js, &mark);
- jb_open_object(js, "nfs");
+ SCJbGetMark(js, &mark);
+ SCJbOpenObject(js, "nfs");
if (EveNFSAddMetadata(p->flow, tx_id, js)) {
- jb_close(js);
+ SCJbClose(js);
} else {
- jb_restore_mark(js, &mark);
+ SCJbRestoreMark(js, &mark);
}
break;
case ALPROTO_SMB:
- jb_get_mark(js, &mark);
- jb_open_object(js, "smb");
+ SCJbGetMark(js, &mark);
+ SCJbOpenObject(js, "smb");
if (EveSMBAddMetadata(p->flow, tx_id, js)) {
- jb_close(js);
+ SCJbClose(js);
} else {
- jb_restore_mark(js, &mark);
+ SCJbRestoreMark(js, &mark);
}
break;
default:
if (state) {
tx = AppLayerParserGetTx(p->flow->proto, p->flow->alproto, state, tx_id);
if (tx) {
- jb_get_mark(js, &mark);
+ SCJbGetMark(js, &mark);
if (!al->LogTx(tx, js)) {
- jb_restore_mark(js, &mark);
+ SCJbRestoreMark(js, &mark);
}
}
}
break;
}
- jb_set_string(js, "app_proto", AppProtoToString(p->flow->alproto));
+ SCJbSetString(js, "app_proto", AppProtoToString(p->flow->alproto));
- jb_open_object(js, "fileinfo");
+ SCJbOpenObject(js, "fileinfo");
if (stored) {
// the file has just been stored on disk cf OUTPUT_FILEDATA_FLAG_CLOSE
// but the flag is not set until the loggers have been called
} else {
EveFileInfo(js, ff, tx_id, ff->flags);
}
- jb_close(js);
+ SCJbClose(js);
/* xff header */
if (have_xff_ip && xff_cfg->flags & XFF_EXTRADATA) {
- jb_set_string(js, "xff", xff_buffer);
+ SCJbSetString(js, "xff", xff_buffer);
}
return js;
{
HttpXFFCfg *xff_cfg = aft->filelog_ctx->xff_cfg != NULL ? aft->filelog_ctx->xff_cfg
: aft->filelog_ctx->parent_xff_cfg;
- JsonBuilder *js = JsonBuildFileInfoRecord(p, ff, tx, tx_id, false, dir, xff_cfg, eve_ctx);
+ SCJsonBuilder *js = JsonBuildFileInfoRecord(p, ff, tx, tx_id, false, dir, xff_cfg, eve_ctx);
if (unlikely(js == NULL)) {
return;
}
OutputJsonBuilderBuffer(tv, p, p->flow, js, aft->ctx);
- jb_free(js);
+ SCJbFree(js);
}
static int JsonFileLogger(ThreadVars *tv, void *thread_data, const Packet *p, const File *ff,
typedef struct OutputJsonCtx_ OutputJsonCtx;
void JsonFileLogRegister(void);
-JsonBuilder *JsonBuildFileInfoRecord(const Packet *p, const File *ff, void *tx,
+SCJsonBuilder *JsonBuildFileInfoRecord(const Packet *p, const File *ff, void *tx,
const uint64_t tx_id, const bool stored, uint8_t dir, HttpXFFCfg *xff_cfg,
OutputJsonCtx *eve_ctx);
#include "flow-storage.h"
#include "util-exception-policy.h"
-static JsonBuilder *CreateEveHeaderFromFlow(const Flow *f)
+static SCJsonBuilder *CreateEveHeaderFromFlow(const Flow *f)
{
char timebuf[64];
char srcip[46] = {0}, dstip[46] = {0};
Port sp, dp;
- JsonBuilder *jb = jb_new_object();
+ SCJsonBuilder *jb = SCJbNewObject();
if (unlikely(jb == NULL)) {
return NULL;
}
}
/* time */
- jb_set_string(jb, "timestamp", timebuf);
+ SCJbSetString(jb, "timestamp", timebuf);
CreateEveFlowId(jb, (const Flow *)f);
/* input interface */
if (f->livedev) {
- jb_set_string(jb, "in_iface", f->livedev->dev);
+ SCJbSetString(jb, "in_iface", f->livedev->dev);
}
JB_SET_STRING(jb, "event_type", "flow");
/* vlan */
if (f->vlan_idx > 0) {
- jb_open_array(jb, "vlan");
- jb_append_uint(jb, f->vlan_id[0]);
+ SCJbOpenArray(jb, "vlan");
+ SCJbAppendUint(jb, f->vlan_id[0]);
if (f->vlan_idx > 1) {
- jb_append_uint(jb, f->vlan_id[1]);
+ SCJbAppendUint(jb, f->vlan_id[1]);
}
if (f->vlan_idx > 2) {
- jb_append_uint(jb, f->vlan_id[2]);
+ SCJbAppendUint(jb, f->vlan_id[2]);
}
- jb_close(jb);
+ SCJbClose(jb);
}
/* tuple */
- jb_set_string(jb, "src_ip", srcip);
+ SCJbSetString(jb, "src_ip", srcip);
switch(f->proto) {
case IPPROTO_ICMP:
break;
case IPPROTO_UDP:
case IPPROTO_TCP:
case IPPROTO_SCTP:
- jb_set_uint(jb, "src_port", sp);
+ SCJbSetUint(jb, "src_port", sp);
break;
}
- jb_set_string(jb, "dest_ip", dstip);
+ SCJbSetString(jb, "dest_ip", dstip);
switch(f->proto) {
case IPPROTO_ICMP:
break;
case IPPROTO_UDP:
case IPPROTO_TCP:
case IPPROTO_SCTP:
- jb_set_uint(jb, "dest_port", dp);
+ SCJbSetUint(jb, "dest_port", dp);
break;
}
if (SCProtoNameValid(f->proto)) {
- jb_set_string(jb, "proto", known_proto[f->proto]);
+ SCJbSetString(jb, "proto", known_proto[f->proto]);
} else {
char proto[4];
snprintf(proto, sizeof(proto), "%"PRIu8"", f->proto);
- jb_set_string(jb, "proto", proto);
+ SCJbSetString(jb, "proto", proto);
}
switch (f->proto) {
case IPPROTO_ICMP:
case IPPROTO_ICMPV6:
- jb_set_uint(jb, "icmp_type", f->icmp_s.type);
- jb_set_uint(jb, "icmp_code", f->icmp_s.code);
+ SCJbSetUint(jb, "icmp_type", f->icmp_s.type);
+ SCJbSetUint(jb, "icmp_code", f->icmp_s.code);
if (f->tosrcpktcnt) {
- jb_set_uint(jb, "response_icmp_type", f->icmp_d.type);
- jb_set_uint(jb, "response_icmp_code", f->icmp_d.code);
+ SCJbSetUint(jb, "response_icmp_type", f->icmp_d.type);
+ SCJbSetUint(jb, "response_icmp_code", f->icmp_d.code);
}
break;
case IPPROTO_ESP:
- jb_set_uint(jb, "spi", f->esp.spi);
+ SCJbSetUint(jb, "spi", f->esp.spi);
break;
}
return jb;
}
-void EveAddAppProto(Flow *f, JsonBuilder *js)
+void EveAddAppProto(Flow *f, SCJsonBuilder *js)
{
if (f->alproto) {
- jb_set_string(js, "app_proto", AppProtoToString(f->alproto));
+ SCJbSetString(js, "app_proto", AppProtoToString(f->alproto));
}
if (f->alproto_ts && f->alproto_ts != f->alproto) {
- jb_set_string(js, "app_proto_ts", AppProtoToString(f->alproto_ts));
+ SCJbSetString(js, "app_proto_ts", AppProtoToString(f->alproto_ts));
}
if (f->alproto_tc && f->alproto_tc != f->alproto) {
- jb_set_string(js, "app_proto_tc", AppProtoToString(f->alproto_tc));
+ SCJbSetString(js, "app_proto_tc", AppProtoToString(f->alproto_tc));
}
if (f->alproto_orig != f->alproto && f->alproto_orig != ALPROTO_UNKNOWN) {
- jb_set_string(js, "app_proto_orig", AppProtoToString(f->alproto_orig));
+ SCJbSetString(js, "app_proto_orig", AppProtoToString(f->alproto_orig));
}
if (f->alproto_expect != f->alproto && f->alproto_expect != ALPROTO_UNKNOWN) {
- jb_set_string(js, "app_proto_expected",
- AppProtoToString(f->alproto_expect));
+ SCJbSetString(js, "app_proto_expected", AppProtoToString(f->alproto_expect));
}
}
-void EveAddFlow(Flow *f, JsonBuilder *js)
+void EveAddFlow(Flow *f, SCJsonBuilder *js)
{
FlowBypassInfo *fc = FlowGetStorageById(f, GetFlowBypassInfoID());
if (fc) {
- jb_set_uint(js, "pkts_toserver", f->todstpktcnt + fc->todstpktcnt);
- jb_set_uint(js, "pkts_toclient", f->tosrcpktcnt + fc->tosrcpktcnt);
- jb_set_uint(js, "bytes_toserver", f->todstbytecnt + fc->todstbytecnt);
- jb_set_uint(js, "bytes_toclient", f->tosrcbytecnt + fc->tosrcbytecnt);
-
- jb_open_object(js, "bypassed");
- jb_set_uint(js, "pkts_toserver", fc->todstpktcnt);
- jb_set_uint(js, "pkts_toclient", fc->tosrcpktcnt);
- jb_set_uint(js, "bytes_toserver", fc->todstbytecnt);
- jb_set_uint(js, "bytes_toclient", fc->tosrcbytecnt);
- jb_close(js);
+ SCJbSetUint(js, "pkts_toserver", f->todstpktcnt + fc->todstpktcnt);
+ SCJbSetUint(js, "pkts_toclient", f->tosrcpktcnt + fc->tosrcpktcnt);
+ SCJbSetUint(js, "bytes_toserver", f->todstbytecnt + fc->todstbytecnt);
+ SCJbSetUint(js, "bytes_toclient", f->tosrcbytecnt + fc->tosrcbytecnt);
+
+ SCJbOpenObject(js, "bypassed");
+ SCJbSetUint(js, "pkts_toserver", fc->todstpktcnt);
+ SCJbSetUint(js, "pkts_toclient", fc->tosrcpktcnt);
+ SCJbSetUint(js, "bytes_toserver", fc->todstbytecnt);
+ SCJbSetUint(js, "bytes_toclient", fc->tosrcbytecnt);
+ SCJbClose(js);
} else {
- jb_set_uint(js, "pkts_toserver", f->todstpktcnt);
- jb_set_uint(js, "pkts_toclient", f->tosrcpktcnt);
- jb_set_uint(js, "bytes_toserver", f->todstbytecnt);
- jb_set_uint(js, "bytes_toclient", f->tosrcbytecnt);
+ SCJbSetUint(js, "pkts_toserver", f->todstpktcnt);
+ SCJbSetUint(js, "pkts_toclient", f->tosrcpktcnt);
+ SCJbSetUint(js, "bytes_toserver", f->todstbytecnt);
+ SCJbSetUint(js, "bytes_toclient", f->tosrcbytecnt);
}
char timebuf1[64];
CreateIsoTimeString(f->startts, timebuf1, sizeof(timebuf1));
- jb_set_string(js, "start", timebuf1);
+ SCJbSetString(js, "start", timebuf1);
}
-static void EveExceptionPolicyLog(JsonBuilder *js, uint16_t flag)
+static void EveExceptionPolicyLog(SCJsonBuilder *js, uint16_t flag)
{
if (flag & EXCEPTION_TARGET_FLAG_DEFRAG_MEMCAP) {
- jb_start_object(js);
- jb_set_string(js, "target",
+ SCJbStartObject(js);
+ SCJbSetString(js, "target",
ExceptionPolicyTargetFlagToString(EXCEPTION_TARGET_FLAG_DEFRAG_MEMCAP));
- jb_set_string(js, "policy",
+ SCJbSetString(js, "policy",
ExceptionPolicyEnumToString(
ExceptionPolicyTargetPolicy(EXCEPTION_TARGET_FLAG_DEFRAG_MEMCAP), true));
- jb_close(js);
+ SCJbClose(js);
}
if (flag & EXCEPTION_TARGET_FLAG_SESSION_MEMCAP) {
- jb_start_object(js);
- jb_set_string(js, "target",
+ SCJbStartObject(js);
+ SCJbSetString(js, "target",
ExceptionPolicyTargetFlagToString(EXCEPTION_TARGET_FLAG_SESSION_MEMCAP));
- jb_set_string(js, "policy",
+ SCJbSetString(js, "policy",
ExceptionPolicyEnumToString(
ExceptionPolicyTargetPolicy(EXCEPTION_TARGET_FLAG_SESSION_MEMCAP), true));
- jb_close(js);
+ SCJbClose(js);
}
if (flag & EXCEPTION_TARGET_FLAG_REASSEMBLY_MEMCAP) {
- jb_start_object(js);
- jb_set_string(js, "target",
+ SCJbStartObject(js);
+ SCJbSetString(js, "target",
ExceptionPolicyTargetFlagToString(EXCEPTION_TARGET_FLAG_REASSEMBLY_MEMCAP));
- jb_set_string(js, "policy",
+ SCJbSetString(js, "policy",
ExceptionPolicyEnumToString(
ExceptionPolicyTargetPolicy(EXCEPTION_TARGET_FLAG_REASSEMBLY_MEMCAP),
true));
- jb_close(js);
+ SCJbClose(js);
}
if (flag & EXCEPTION_TARGET_FLAG_FLOW_MEMCAP) {
- jb_start_object(js);
- jb_set_string(
+ SCJbStartObject(js);
+ SCJbSetString(
js, "target", ExceptionPolicyTargetFlagToString(EXCEPTION_TARGET_FLAG_FLOW_MEMCAP));
- jb_set_string(js, "policy",
+ SCJbSetString(js, "policy",
ExceptionPolicyEnumToString(
ExceptionPolicyTargetPolicy(EXCEPTION_TARGET_FLAG_FLOW_MEMCAP), true));
- jb_close(js);
+ SCJbClose(js);
}
if (flag & EXCEPTION_TARGET_FLAG_MIDSTREAM) {
- jb_start_object(js);
- jb_set_string(
+ SCJbStartObject(js);
+ SCJbSetString(
js, "target", ExceptionPolicyTargetFlagToString(EXCEPTION_TARGET_FLAG_MIDSTREAM));
- jb_set_string(js, "policy",
+ SCJbSetString(js, "policy",
ExceptionPolicyEnumToString(
ExceptionPolicyTargetPolicy(EXCEPTION_TARGET_FLAG_MIDSTREAM), true));
- jb_close(js);
+ SCJbClose(js);
}
if (flag & EXCEPTION_TARGET_FLAG_APPLAYER_ERROR) {
- jb_start_object(js);
- jb_set_string(js, "target",
+ SCJbStartObject(js);
+ SCJbSetString(js, "target",
ExceptionPolicyTargetFlagToString(EXCEPTION_TARGET_FLAG_APPLAYER_ERROR));
- jb_set_string(js, "policy",
+ SCJbSetString(js, "policy",
ExceptionPolicyEnumToString(
ExceptionPolicyTargetPolicy(EXCEPTION_TARGET_FLAG_APPLAYER_ERROR), true));
- jb_close(js);
+ SCJbClose(js);
}
}
/* Eve format logging */
-static void EveFlowLogJSON(OutputJsonThreadCtx *aft, JsonBuilder *jb, Flow *f)
+static void EveFlowLogJSON(OutputJsonThreadCtx *aft, SCJsonBuilder *jb, Flow *f)
{
EveAddAppProto(f, jb);
- jb_open_object(jb, "flow");
+ SCJbOpenObject(jb, "flow");
EveAddFlow(f, jb);
char timebuf2[64];
CreateIsoTimeString(f->lastts, timebuf2, sizeof(timebuf2));
- jb_set_string(jb, "end", timebuf2);
+ SCJbSetString(jb, "end", timebuf2);
uint64_t age = (SCTIME_SECS(f->lastts) - SCTIME_SECS(f->startts));
- jb_set_uint(jb, "age", age);
+ SCJbSetUint(jb, "age", age);
if (f->flow_end_flags & FLOW_END_FLAG_EMERGENCY)
JB_SET_TRUE(jb, "emergency");
else
reason = "unknown";
- jb_set_string(jb, "reason", reason);
+ SCJbSetString(jb, "reason", reason);
- jb_set_bool(jb, "alerted", FlowHasAlerts(f));
+ SCJbSetBool(jb, "alerted", FlowHasAlerts(f));
if (f->flags & FLOW_WRONG_THREAD)
JB_SET_TRUE(jb, "wrong_thread");
JB_SET_STRING(jb, "action", "pass");
}
if (f->applied_exception_policy != 0) {
- jb_open_array(jb, "exception_policy");
+ SCJbOpenArray(jb, "exception_policy");
EveExceptionPolicyLog(jb, f->applied_exception_policy);
- jb_close(jb); /* close array */
+ SCJbClose(jb); /* close array */
}
/* Close flow. */
- jb_close(jb);
+ SCJbClose(jb);
EveAddCommonOptions(&aft->ctx->cfg, NULL, f, jb, LOG_DIR_FLOW);
/* TCP */
if (f->proto == IPPROTO_TCP) {
- jb_open_object(jb, "tcp");
+ SCJbOpenObject(jb, "tcp");
TcpSession *ssn = f->protoctx;
char hexflags[3];
snprintf(hexflags, sizeof(hexflags), "%02x",
ssn ? ssn->tcp_packet_flags : 0);
- jb_set_string(jb, "tcp_flags", hexflags);
+ SCJbSetString(jb, "tcp_flags", hexflags);
snprintf(hexflags, sizeof(hexflags), "%02x",
ssn ? ssn->client.tcp_flags : 0);
- jb_set_string(jb, "tcp_flags_ts", hexflags);
+ SCJbSetString(jb, "tcp_flags_ts", hexflags);
snprintf(hexflags, sizeof(hexflags), "%02x",
ssn ? ssn->server.tcp_flags : 0);
- jb_set_string(jb, "tcp_flags_tc", hexflags);
+ SCJbSetString(jb, "tcp_flags_tc", hexflags);
EveTcpFlags(ssn ? ssn->tcp_packet_flags : 0, jb);
if (ssn) {
const char *tcp_state = StreamTcpStateAsString(ssn->state);
if (tcp_state != NULL)
- jb_set_string(jb, "state", tcp_state);
+ SCJbSetString(jb, "state", tcp_state);
if (ssn->server.flags & STREAMTCP_STREAM_FLAG_HAS_GAP) {
JB_SET_TRUE(jb, "tc_gap");
}
JB_SET_TRUE(jb, "ts_gap");
}
- jb_set_uint(jb, "ts_max_regions", ssn->client.sb.max_regions);
- jb_set_uint(jb, "tc_max_regions", ssn->server.sb.max_regions);
+ SCJbSetUint(jb, "ts_max_regions", ssn->client.sb.max_regions);
+ SCJbSetUint(jb, "tc_max_regions", ssn->server.sb.max_regions);
if (ssn->urg_offset_ts)
- jb_set_uint(jb, "ts_urgent_oob_data", ssn->urg_offset_ts);
+ SCJbSetUint(jb, "ts_urgent_oob_data", ssn->urg_offset_ts);
if (ssn->urg_offset_tc)
- jb_set_uint(jb, "tc_urgent_oob_data", ssn->urg_offset_tc);
+ SCJbSetUint(jb, "tc_urgent_oob_data", ssn->urg_offset_tc);
}
/* Close tcp. */
- jb_close(jb);
+ SCJbClose(jb);
}
}
/* reset */
MemBufferReset(thread->buffer);
- JsonBuilder *jb = CreateEveHeaderFromFlow(f);
+ SCJsonBuilder *jb = CreateEveHeaderFromFlow(f);
if (unlikely(jb == NULL)) {
SCReturnInt(TM_ECODE_OK);
}
EveFlowLogJSON(thread, jb, f);
OutputJsonBuilderBuffer(tv, NULL, f, jb, thread);
- jb_free(jb);
+ SCJbFree(jb);
SCReturnInt(TM_ECODE_OK);
}
#define SURICATA_OUTPUT_JSON_FLOW_H
void JsonFlowLogRegister(void);
-void EveAddFlow(Flow *f, JsonBuilder *js);
-void EveAddAppProto(Flow *f, JsonBuilder *js);
+void EveAddFlow(Flow *f, SCJsonBuilder *js);
+void EveAddAppProto(Flow *f, SCJsonBuilder *js);
#endif /* SURICATA_OUTPUT_JSON_FLOW_H */
* \brief try to log frame's stream data into payload/payload_printable
*/
static void FrameAddPayloadTCP(Flow *f, const TcpSession *ssn, const TcpStream *stream,
- const Frame *frame, JsonBuilder *jb, MemBuffer *buffer)
+ const Frame *frame, SCJsonBuilder *jb, MemBuffer *buffer)
{
MemBufferReset(buffer);
}
if (cbd.payload->offset) {
- jb_set_base64(jb, "payload", cbd.payload->buffer, cbd.payload->offset);
+ SCJbSetBase64(jb, "payload", cbd.payload->buffer, cbd.payload->offset);
uint8_t printable_buf[cbd.payload->offset + 1];
uint32_t offset = 0;
PrintStringsToBuffer(printable_buf, &offset, cbd.payload->offset + 1, cbd.payload->buffer,
cbd.payload->offset);
- jb_set_string(jb, "payload_printable", (char *)printable_buf);
- jb_set_bool(jb, "complete", complete);
+ SCJbSetString(jb, "payload_printable", (char *)printable_buf);
+ SCJbSetBool(jb, "complete", complete);
}
}
-static void FrameAddPayloadUDP(JsonBuilder *js, const Packet *p, const Frame *frame)
+static void FrameAddPayloadUDP(SCJsonBuilder *js, const Packet *p, const Frame *frame)
{
DEBUG_VALIDATE_BUG_ON(frame->offset >= p->payload_len);
if (frame->offset >= p->payload_len)
const uint32_t data_len = frame_len;
const uint32_t log_data_len = MIN(data_len, 256);
- jb_set_base64(js, "payload", data, log_data_len);
+ SCJbSetBase64(js, "payload", data, log_data_len);
uint8_t printable_buf[log_data_len + 1];
uint32_t o = 0;
PrintStringsToBuffer(printable_buf, &o, log_data_len + 1, data, log_data_len);
printable_buf[log_data_len] = '\0';
- jb_set_string(js, "payload_printable", (char *)printable_buf);
+ SCJbSetString(js, "payload_printable", (char *)printable_buf);
#if 0
char pretty_buf[data_len * 4 + 1];
pretty_buf[0] = '\0';
PayloadAsHex(data, data_len, pretty_buf, data_len * 4 + 1);
- jb_set_string(js, "payload_hex", pretty_buf);
+ SCJbSetString(js, "payload_hex", pretty_buf);
#endif
}
* \note ipproto argument is passed to assist static code analyzers
*/
void FrameJsonLogOneFrame(const uint8_t ipproto, const Frame *frame, Flow *f,
- const TcpStream *stream, const Packet *p, JsonBuilder *jb, MemBuffer *buffer)
+ const TcpStream *stream, const Packet *p, SCJsonBuilder *jb, MemBuffer *buffer)
{
DEBUG_VALIDATE_BUG_ON(ipproto != p->proto);
DEBUG_VALIDATE_BUG_ON(ipproto != f->proto);
- jb_open_object(jb, "frame");
+ SCJbOpenObject(jb, "frame");
if (frame->type == FRAME_STREAM_TYPE) {
- jb_set_string(jb, "type", "stream");
+ SCJbSetString(jb, "type", "stream");
} else {
- jb_set_string(jb, "type", AppLayerParserGetFrameNameById(ipproto, f->alproto, frame->type));
+ SCJbSetString(jb, "type", AppLayerParserGetFrameNameById(ipproto, f->alproto, frame->type));
}
- jb_set_uint(jb, "id", frame->id);
- jb_set_string(jb, "direction", PKT_IS_TOSERVER(p) ? "toserver" : "toclient");
+ SCJbSetUint(jb, "id", frame->id);
+ SCJbSetString(jb, "direction", PKT_IS_TOSERVER(p) ? "toserver" : "toclient");
if (ipproto == IPPROTO_TCP) {
DEBUG_VALIDATE_BUG_ON(stream == NULL);
- jb_set_uint(jb, "stream_offset", frame->offset);
+ SCJbSetUint(jb, "stream_offset", frame->offset);
if (frame->len < 0) {
uint64_t usable = StreamTcpGetUsable(stream, true);
uint64_t len = usable - frame->offset;
- jb_set_uint(jb, "length", len);
+ SCJbSetUint(jb, "length", len);
} else {
- jb_set_uint(jb, "length", frame->len);
+ SCJbSetUint(jb, "length", frame->len);
}
FrameAddPayloadTCP(f, f->protoctx, stream, frame, jb, buffer);
} else {
- jb_set_uint(jb, "length", frame->len);
+ SCJbSetUint(jb, "length", frame->len);
FrameAddPayloadUDP(jb, p, frame);
}
if (frame->flags & FRAME_FLAG_TX_ID_SET) {
- jb_set_uint(jb, "tx_id", frame->tx_id);
+ SCJbSetUint(jb, "tx_id", frame->tx_id);
}
- jb_close(jb);
+ SCJbClose(jb);
}
static int FrameJsonUdp(ThreadVars *tv, JsonFrameLogThread *aft, const Packet *p, Flow *f,
JsonAddrInfo addr = json_addr_info_zero;
JsonAddrInfoInit(p, LOG_DIR_PACKET, &addr);
- JsonBuilder *jb =
+ SCJsonBuilder *jb =
CreateEveHeader(p, LOG_DIR_PACKET, "frame", &addr, json_output_ctx->eve_ctx);
if (unlikely(jb == NULL))
return TM_ECODE_OK;
- jb_set_string(jb, "app_proto", AppProtoToString(f->alproto));
+ SCJbSetString(jb, "app_proto", AppProtoToString(f->alproto));
FrameJsonLogOneFrame(IPPROTO_UDP, frame, p->flow, NULL, p, jb, aft->payload_buffer);
OutputJsonBuilderBuffer(tv, p, p->flow, jb, aft->ctx);
- jb_free(jb);
+ SCJbFree(jb);
frame->flags |= FRAME_FLAG_LOGGED;
}
return TM_ECODE_OK;
JsonAddrInfo addr = json_addr_info_zero;
JsonAddrInfoInit(p, LOG_DIR_PACKET, &addr);
- JsonBuilder *jb =
+ SCJsonBuilder *jb =
CreateEveHeader(p, LOG_DIR_PACKET, "frame", &addr, json_output_ctx->eve_ctx);
if (unlikely(jb == NULL))
return TM_ECODE_OK;
- jb_set_string(jb, "app_proto", AppProtoToString(p->flow->alproto));
+ SCJbSetString(jb, "app_proto", AppProtoToString(p->flow->alproto));
FrameJsonLogOneFrame(IPPROTO_TCP, frame, p->flow, stream, p, jb, aft->payload_buffer);
OutputJsonBuilderBuffer(tv, p, p->flow, jb, aft->ctx);
- jb_free(jb);
+ SCJbFree(jb);
frame->flags |= FRAME_FLAG_LOGGED;
}
}
#include "stream-tcp-private.h"
void FrameJsonLogOneFrame(const uint8_t ipproto, const Frame *frame, Flow *f,
- const TcpStream *stream, const Packet *p, JsonBuilder *jb, MemBuffer *);
+ const TcpStream *stream, const Packet *p, SCJsonBuilder *jb, MemBuffer *);
void JsonFrameLogRegister(void);
#endif /* SURICATA_OUTPUT_JSON_FRAME_H */
#include "app-layer-ftp.h"
#include "output-json-ftp.h"
-bool EveFTPLogCommand(void *vtx, JsonBuilder *jb)
+bool EveFTPLogCommand(void *vtx, SCJsonBuilder *jb)
{
FTPTransaction *tx = vtx;
/* Preallocate array objects to simplify failure case */
- JsonBuilder *js_resplist = NULL;
+ SCJsonBuilder *js_resplist = NULL;
if (!TAILQ_EMPTY(&tx->response_list)) {
- js_resplist = jb_new_array();
+ js_resplist = SCJbNewArray();
if (unlikely(js_resplist == NULL)) {
return false;
return false;
}
}
- jb_open_object(jb, "ftp");
+ SCJbOpenObject(jb, "ftp");
if (command_name) {
- jb_set_string(jb, "command", command_name);
+ SCJbSetString(jb, "command", command_name);
uint32_t min_length = command_name_length + 1; /* command + space */
if (tx->request_length > min_length) {
- jb_set_string_from_bytes(jb, "command_data", (const uint8_t *)tx->request + min_length,
+ SCJbSetStringFromBytes(jb, "command_data", (const uint8_t *)tx->request + min_length,
tx->request_length - min_length - 1);
if (tx->request_truncated) {
JB_SET_TRUE(jb, "command_truncated");
/* Gather the completion code if present */
if (isdigit(where[0]) && isdigit(where[1]) && isdigit(where[2])) {
if (!is_cc_array_open) {
- jb_open_array(jb, "completion_code");
+ SCJbOpenArray(jb, "completion_code");
is_cc_array_open = true;
}
- jb_append_string_from_bytes(jb, (const uint8_t *)where, 3);
+ SCJbAppendStringFromBytes(jb, (const uint8_t *)where, 3);
offset = 4;
}
}
/* move past 3 character completion code */
if (pos >= offset) {
- jb_append_string_from_bytes(js_resplist, (const uint8_t *)where + offset, pos - offset);
+ SCJbAppendStringFromBytes(
+ js_resplist, (const uint8_t *)where + offset, pos - offset);
resp_cnt++;
}
}
if (is_cc_array_open) {
- jb_close(jb);
+ SCJbClose(jb);
}
if (resp_cnt) {
- jb_close(js_resplist);
- jb_set_object(jb, "reply", js_resplist);
+ SCJbClose(js_resplist);
+ SCJbSetObject(jb, "reply", js_resplist);
}
- jb_free(js_resplist);
+ SCJbFree(js_resplist);
}
if (tx->dyn_port) {
- jb_set_uint(jb, "dynamic_port", tx->dyn_port);
+ SCJbSetUint(jb, "dynamic_port", tx->dyn_port);
}
if (tx->command_descriptor.command_code == FTP_COMMAND_PORT ||
} else {
JB_SET_FALSE(jb, "reply_truncated");
}
- jb_close(jb);
+ SCJbClose(jb);
return true;
}
#ifndef SURICATA_OUTPUT_JSON_FTP_H
#define SURICATA_OUTPUT_JSON_FTP_H
-bool EveFTPLogCommand(void *vtx, JsonBuilder *js);
+bool EveFTPLogCommand(void *vtx, SCJsonBuilder *js);
#endif /* SURICATA_OUTPUT_JSON_FTP_H */
{ "x_bluecoat_via", "x-bluecoat-via", LOG_HTTP_REQUEST },
};
-static void EveHttpLogJSONBasic(JsonBuilder *js, htp_tx_t *tx)
+static void EveHttpLogJSONBasic(SCJsonBuilder *js, htp_tx_t *tx)
{
/* hostname */
if (htp_tx_request_hostname(tx) != NULL) {
- jb_set_string_from_bytes(js, "hostname", bstr_ptr(htp_tx_request_hostname(tx)),
+ SCJbSetStringFromBytes(js, "hostname", bstr_ptr(htp_tx_request_hostname(tx)),
(uint32_t)bstr_len(htp_tx_request_hostname(tx)));
}
* port and the TCP destination port of the flow.
*/
if (htp_tx_request_port_number(tx) >= 0) {
- jb_set_uint(js, "http_port", htp_tx_request_port_number(tx));
+ SCJbSetUint(js, "http_port", htp_tx_request_port_number(tx));
}
/* uri */
if (htp_tx_request_uri(tx) != NULL) {
- jb_set_string_from_bytes(js, "url", bstr_ptr(htp_tx_request_uri(tx)),
+ SCJbSetStringFromBytes(js, "url", bstr_ptr(htp_tx_request_uri(tx)),
(uint32_t)bstr_len(htp_tx_request_uri(tx)));
}
/* user agent */
const htp_header_t *h_user_agent = htp_tx_request_header(tx, "user-agent");
if (h_user_agent != NULL) {
- jb_set_string_from_bytes(js, "http_user_agent", htp_header_value_ptr(h_user_agent),
+ SCJbSetStringFromBytes(js, "http_user_agent", htp_header_value_ptr(h_user_agent),
(uint32_t)htp_header_value_len(h_user_agent));
}
/* x-forwarded-for */
const htp_header_t *h_x_forwarded_for = htp_tx_request_header(tx, "x-forwarded-for");
if (h_x_forwarded_for != NULL) {
- jb_set_string_from_bytes(js, "xff", htp_header_value_ptr(h_x_forwarded_for),
+ SCJbSetStringFromBytes(js, "xff", htp_header_value_ptr(h_x_forwarded_for),
(uint32_t)htp_header_value_len(h_x_forwarded_for));
}
}
char *p = strchr(string, ';');
if (p != NULL)
*p = '\0';
- jb_set_string(js, "http_content_type", string);
+ SCJbSetString(js, "http_content_type", string);
}
const htp_header_t *h_content_range = htp_tx_response_header(tx, "content-range");
if (h_content_range != NULL) {
- jb_open_object(js, "content_range");
- jb_set_string_from_bytes(js, "raw", htp_header_value_ptr(h_content_range),
+ SCJbOpenObject(js, "content_range");
+ SCJbSetStringFromBytes(js, "raw", htp_header_value_ptr(h_content_range),
(uint32_t)htp_header_value_len(h_content_range));
HTTPContentRange crparsed;
if (HTPParseContentRange(htp_header_value(h_content_range), &crparsed) == 0) {
if (crparsed.start >= 0)
- jb_set_uint(js, "start", crparsed.start);
+ SCJbSetUint(js, "start", crparsed.start);
if (crparsed.end >= 0)
- jb_set_uint(js, "end", crparsed.end);
+ SCJbSetUint(js, "end", crparsed.end);
if (crparsed.size >= 0)
- jb_set_uint(js, "size", crparsed.size);
+ SCJbSetUint(js, "size", crparsed.size);
}
- jb_close(js);
+ SCJbClose(js);
}
}
}
-static void EveHttpLogJSONExtended(JsonBuilder *js, htp_tx_t *tx)
+static void EveHttpLogJSONExtended(SCJsonBuilder *js, htp_tx_t *tx)
{
/* referer */
const htp_header_t *h_referer = NULL;
h_referer = htp_tx_request_header(tx, "referer");
}
if (h_referer != NULL) {
- jb_set_string_from_bytes(js, "http_refer", htp_header_value_ptr(h_referer),
+ SCJbSetStringFromBytes(js, "http_refer", htp_header_value_ptr(h_referer),
(uint32_t)htp_header_value_len(h_referer));
}
/* method */
if (htp_tx_request_method(tx) != NULL) {
- jb_set_string_from_bytes(js, "http_method", bstr_ptr(htp_tx_request_method(tx)),
+ SCJbSetStringFromBytes(js, "http_method", bstr_ptr(htp_tx_request_method(tx)),
(uint32_t)bstr_len(htp_tx_request_method(tx)));
}
/* protocol */
if (htp_tx_request_protocol(tx) != NULL) {
- jb_set_string_from_bytes(js, "protocol", bstr_ptr(htp_tx_request_protocol(tx)),
+ SCJbSetStringFromBytes(js, "protocol", bstr_ptr(htp_tx_request_protocol(tx)),
(uint32_t)bstr_len(htp_tx_request_protocol(tx)));
}
/* response status */
const int resp = htp_tx_response_status_number(tx);
if (resp > 0) {
- jb_set_uint(js, "status", (uint32_t)resp);
+ SCJbSetUint(js, "status", (uint32_t)resp);
} else if (htp_tx_response_status(tx) != NULL) {
- jb_set_string_from_bytes(js, "status_string", bstr_ptr(htp_tx_response_status(tx)),
+ SCJbSetStringFromBytes(js, "status_string", bstr_ptr(htp_tx_response_status(tx)),
(uint32_t)bstr_len(htp_tx_response_status(tx)));
}
const htp_header_t *h_location = htp_tx_response_header(tx, "location");
if (h_location != NULL) {
- jb_set_string_from_bytes(js, "redirect", htp_header_value_ptr(h_location),
+ SCJbSetStringFromBytes(js, "redirect", htp_header_value_ptr(h_location),
(uint32_t)htp_header_value_len(h_location));
}
/* length */
- jb_set_uint(js, "length", htp_tx_response_message_len(tx));
+ SCJbSetUint(js, "length", htp_tx_response_message_len(tx));
}
static void EveHttpLogJSONHeaders(
- JsonBuilder *js, uint32_t direction, htp_tx_t *tx, LogHttpFileCtx *http_ctx)
+ SCJsonBuilder *js, uint32_t direction, htp_tx_t *tx, LogHttpFileCtx *http_ctx)
{
const htp_headers_t *headers = direction & LOG_HTTP_REQ_HEADERS ? htp_tx_request_headers(tx)
: htp_tx_response_headers(tx);
char name[MAX_SIZE_HEADER_NAME] = {0};
char value[MAX_SIZE_HEADER_VALUE] = {0};
size_t n = htp_headers_size(headers);
- JsonBuilderMark mark = { 0, 0, 0 };
- jb_get_mark(js, &mark);
+ SCJsonBuilderMark mark = { 0, 0, 0 };
+ SCJbGetMark(js, &mark);
bool array_empty = true;
- jb_open_array(js, direction & LOG_HTTP_REQ_HEADERS ? "request_headers" : "response_headers");
+ SCJbOpenArray(js, direction & LOG_HTTP_REQ_HEADERS ? "request_headers" : "response_headers");
for (size_t i = 0; i < n; i++) {
const htp_header_t *h = htp_headers_get_index(headers, i);
if ((http_ctx->flags & direction) == 0 && http_ctx->fields != 0) {
}
}
array_empty = false;
- jb_start_object(js);
+ SCJbStartObject(js);
size_t size_name = htp_header_name_len(h) < MAX_SIZE_HEADER_NAME - 1
? htp_header_name_len(h)
: MAX_SIZE_HEADER_NAME - 1;
memcpy(name, htp_header_name_ptr(h), size_name);
name[size_name] = '\0';
- jb_set_string(js, "name", name);
+ SCJbSetString(js, "name", name);
size_t size_value = htp_header_value_len(h) < MAX_SIZE_HEADER_VALUE - 1
? htp_header_value_len(h)
: MAX_SIZE_HEADER_VALUE - 1;
memcpy(value, htp_header_value_ptr(h), size_value);
value[size_value] = '\0';
- jb_set_string(js, "value", value);
- jb_close(js);
+ SCJbSetString(js, "value", value);
+ SCJbClose(js);
}
if (array_empty) {
- jb_restore_mark(js, &mark);
+ SCJbRestoreMark(js, &mark);
} else {
// Close array.
- jb_close(js);
+ SCJbClose(js);
}
}
-static void BodyPrintableBuffer(JsonBuilder *js, HtpBody *body, const char *key)
+static void BodyPrintableBuffer(SCJsonBuilder *js, HtpBody *body, const char *key)
{
if (body->sb != NULL && body->sb->region.buf != NULL) {
uint32_t offset = 0;
uint8_t printable_buf[body_data_len + 1];
PrintStringsToBuffer(printable_buf, &offset, body_data_len + 1, body_data, body_data_len);
if (offset > 0) {
- jb_set_string(js, key, (char *)printable_buf);
+ SCJbSetString(js, key, (char *)printable_buf);
}
}
}
-void EveHttpLogJSONBodyPrintable(JsonBuilder *js, Flow *f, uint64_t tx_id)
+void EveHttpLogJSONBodyPrintable(SCJsonBuilder *js, Flow *f, uint64_t tx_id)
{
HtpState *htp_state = (HtpState *)FlowGetAppState(f);
if (htp_state) {
}
}
-static void BodyBase64Buffer(JsonBuilder *js, HtpBody *body, const char *key)
+static void BodyBase64Buffer(SCJsonBuilder *js, HtpBody *body, const char *key)
{
if (body->sb != NULL && body->sb->region.buf != NULL) {
const uint8_t *body_data;
return;
}
- jb_set_base64(js, key, body_data, body_data_len);
+ SCJbSetBase64(js, key, body_data, body_data_len);
}
}
-void EveHttpLogJSONBodyBase64(JsonBuilder *js, Flow *f, uint64_t tx_id)
+void EveHttpLogJSONBodyBase64(SCJsonBuilder *js, Flow *f, uint64_t tx_id)
{
HtpState *htp_state = (HtpState *)FlowGetAppState(f);
if (htp_state) {
}
/* JSON format logging */
-static void EveHttpLogJSON(JsonHttpLogThread *aft, JsonBuilder *js, htp_tx_t *tx, uint64_t tx_id)
+static void EveHttpLogJSON(JsonHttpLogThread *aft, SCJsonBuilder *js, htp_tx_t *tx, uint64_t tx_id)
{
LogHttpFileCtx *http_ctx = aft->httplog_ctx;
- jb_open_object(js, "http");
+ SCJbOpenObject(js, "http");
EveHttpLogJSONBasic(js, tx);
if (http_ctx->flags & LOG_HTTP_EXTENDED)
if (http_ctx->flags & LOG_HTTP_RES_HEADERS || http_ctx->fields != 0)
EveHttpLogJSONHeaders(js, LOG_HTTP_RES_HEADERS, tx, http_ctx);
- jb_close(js);
+ SCJbClose(js);
}
static int JsonHttpLogger(ThreadVars *tv, void *thread_data, const Packet *p, Flow *f, void *alstate, void *txptr, uint64_t tx_id)
htp_tx_t *tx = txptr;
JsonHttpLogThread *jhl = (JsonHttpLogThread *)thread_data;
- JsonBuilder *js = CreateEveHeaderWithTxId(
+ SCJsonBuilder *js = CreateEveHeaderWithTxId(
p, LOG_DIR_FLOW, "http", NULL, tx_id, jhl->httplog_ctx->eve_ctx);
if (unlikely(js == NULL))
return TM_ECODE_OK;
if (have_xff_ip) {
if (xff_cfg->flags & XFF_EXTRADATA) {
- jb_set_string(js, "xff", buffer);
+ SCJbSetString(js, "xff", buffer);
}
else if (xff_cfg->flags & XFF_OVERWRITE) {
if (p->flowflags & FLOW_PKT_TOCLIENT) {
- jb_set_string(js, "dest_ip", buffer);
+ SCJbSetString(js, "dest_ip", buffer);
} else {
- jb_set_string(js, "src_ip", buffer);
+ SCJbSetString(js, "src_ip", buffer);
}
}
}
}
OutputJsonBuilderBuffer(tv, p, p->flow, js, jhl->ctx);
- jb_free(js);
+ SCJbFree(js);
SCReturnInt(TM_ECODE_OK);
}
-bool EveHttpAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *js)
+bool EveHttpAddMetadata(const Flow *f, uint64_t tx_id, SCJsonBuilder *js)
{
HtpState *htp_state = (HtpState *)FlowGetAppState(f);
if (htp_state) {
void JsonHttpLogRegister(void);
-bool EveHttpAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *js);
-void EveHttpLogJSONBodyPrintable(JsonBuilder *js, Flow *f, uint64_t tx_id);
-void EveHttpLogJSONBodyBase64(JsonBuilder *js, Flow *f, uint64_t tx_id);
+bool EveHttpAddMetadata(const Flow *f, uint64_t tx_id, SCJsonBuilder *js);
+void EveHttpLogJSONBodyPrintable(SCJsonBuilder *js, Flow *f, uint64_t tx_id);
+void EveHttpLogJSONBodyBase64(SCJsonBuilder *js, Flow *f, uint64_t tx_id);
#endif /* SURICATA_OUTPUT_JSON_HTTP_H */
OutputJsonThreadCtx *ctx;
} LogIKELogThread;
-bool EveIKEAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *js)
+bool EveIKEAddMetadata(const Flow *f, uint64_t tx_id, SCJsonBuilder *js)
{
IKEState *state = FlowGetAppState(f);
if (state) {
void *tx, uint64_t tx_id)
{
LogIKELogThread *thread = thread_data;
- JsonBuilder *jb =
+ SCJsonBuilder *jb =
CreateEveHeader((Packet *)p, LOG_DIR_PACKET, "ike", NULL, thread->ikelog_ctx->eve_ctx);
if (unlikely(jb == NULL)) {
return TM_ECODE_FAILED;
OutputJsonBuilderBuffer(tv, p, p->flow, jb, thread->ctx);
- jb_free(jb);
+ SCJbFree(jb);
return TM_ECODE_OK;
error:
- jb_free(jb);
+ SCJbFree(jb);
return TM_ECODE_FAILED;
}
void JsonIKELogRegister(void);
-bool EveIKEAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *js);
+bool EveIKEAddMetadata(const Flow *f, uint64_t tx_id, SCJsonBuilder *js);
#endif /* SURICATA_OUTPUT_JSON_IKE_H */
static int MetadataJson(ThreadVars *tv, OutputJsonThreadCtx *aft, const Packet *p)
{
- JsonBuilder *js = CreateEveHeader(p, LOG_DIR_PACKET, "metadata", NULL, aft->ctx);
+ SCJsonBuilder *js = CreateEveHeader(p, LOG_DIR_PACKET, "metadata", NULL, aft->ctx);
if (unlikely(js == NULL))
return TM_ECODE_OK;
}
OutputJsonBuilderBuffer(tv, p, p->flow, js, aft);
- jb_free(js);
+ SCJbFree(js);
return TM_ECODE_OK;
}
OutputJsonThreadCtx *ctx;
} LogMQTTLogThread;
-bool JsonMQTTAddMetadata(void *vtx, JsonBuilder *js)
+bool JsonMQTTAddMetadata(void *vtx, SCJsonBuilder *js)
{
return SCMqttLoggerLog(vtx, MQTT_DEFAULT_FLAGS, MQTT_DEFAULT_MAXLOGLEN, js);
}
dir = LOG_DIR_FLOW_TOSERVER;
}
- JsonBuilder *js = CreateEveHeader(p, dir, "mqtt", NULL, thread->mqttlog_ctx->eve_ctx);
+ SCJsonBuilder *js = CreateEveHeader(p, dir, "mqtt", NULL, thread->mqttlog_ctx->eve_ctx);
if (unlikely(js == NULL)) {
return TM_ECODE_FAILED;
}
goto error;
OutputJsonBuilderBuffer(tv, p, p->flow, js, thread->ctx);
- jb_free(js);
+ SCJbFree(js);
return TM_ECODE_OK;
error:
- jb_free(js);
+ SCJbFree(js);
return TM_ECODE_FAILED;
}
#define SURICATA_OUTPUT_JSON_MQTT_H
void JsonMQTTLogRegister(void);
-bool JsonMQTTAddMetadata(void *vtx, JsonBuilder *js);
+bool JsonMQTTAddMetadata(void *vtx, SCJsonBuilder *js);
#endif /* SURICATA_OUTPUT_JSON_MQTT_H */
#include "stream-tcp-private.h"
-static JsonBuilder *CreateEveHeaderFromNetFlow(const Flow *f, int dir)
+static SCJsonBuilder *CreateEveHeaderFromNetFlow(const Flow *f, int dir)
{
char timebuf[64];
char srcip[46] = {0}, dstip[46] = {0};
Port sp, dp;
- JsonBuilder *js = jb_new_object();
+ SCJsonBuilder *js = SCJbNewObject();
if (unlikely(js == NULL))
return NULL;
}
/* time */
- jb_set_string(js, "timestamp", timebuf);
+ SCJbSetString(js, "timestamp", timebuf);
CreateEveFlowId(js, (const Flow *)f);
/* input interface */
if (f->livedev) {
- jb_set_string(js, "in_iface", f->livedev->dev);
+ SCJbSetString(js, "in_iface", f->livedev->dev);
}
JB_SET_STRING(js, "event_type", "netflow");
/* vlan */
if (f->vlan_idx > 0) {
- jb_open_array(js, "vlan");
- jb_append_uint(js, f->vlan_id[0]);
+ SCJbOpenArray(js, "vlan");
+ SCJbAppendUint(js, f->vlan_id[0]);
if (f->vlan_idx > 1) {
- jb_append_uint(js, f->vlan_id[1]);
+ SCJbAppendUint(js, f->vlan_id[1]);
}
if (f->vlan_idx > 2) {
- jb_append_uint(js, f->vlan_id[2]);
+ SCJbAppendUint(js, f->vlan_id[2]);
}
- jb_close(js);
+ SCJbClose(js);
}
/* tuple */
- jb_set_string(js, "src_ip", srcip);
+ SCJbSetString(js, "src_ip", srcip);
switch(f->proto) {
case IPPROTO_ICMP:
break;
case IPPROTO_UDP:
case IPPROTO_TCP:
case IPPROTO_SCTP:
- jb_set_uint(js, "src_port", sp);
+ SCJbSetUint(js, "src_port", sp);
break;
}
- jb_set_string(js, "dest_ip", dstip);
+ SCJbSetString(js, "dest_ip", dstip);
switch(f->proto) {
case IPPROTO_ICMP:
break;
case IPPROTO_UDP:
case IPPROTO_TCP:
case IPPROTO_SCTP:
- jb_set_uint(js, "dest_port", dp);
+ SCJbSetUint(js, "dest_port", dp);
break;
}
if (SCProtoNameValid(f->proto)) {
- jb_set_string(js, "proto", known_proto[f->proto]);
+ SCJbSetString(js, "proto", known_proto[f->proto]);
} else {
char proto[4];
snprintf(proto, sizeof(proto), "%"PRIu8"", f->proto);
- jb_set_string(js, "proto", proto);
+ SCJbSetString(js, "proto", proto);
}
switch (f->proto) {
code = f->icmp_d.code;
}
- jb_set_uint(js, "icmp_type", type);
- jb_set_uint(js, "icmp_code", code);
+ SCJbSetUint(js, "icmp_type", type);
+ SCJbSetUint(js, "icmp_code", code);
break;
}
case IPPROTO_ESP:
- jb_set_uint(js, "spi", f->esp.spi);
+ SCJbSetUint(js, "spi", f->esp.spi);
break;
}
return js;
}
/* JSON format logging */
-static void NetFlowLogEveToServer(JsonBuilder *js, Flow *f)
+static void NetFlowLogEveToServer(SCJsonBuilder *js, Flow *f)
{
- jb_set_string(js, "app_proto",
- AppProtoToString(f->alproto_ts ? f->alproto_ts : f->alproto));
+ SCJbSetString(js, "app_proto", AppProtoToString(f->alproto_ts ? f->alproto_ts : f->alproto));
- jb_open_object(js, "netflow");
+ SCJbOpenObject(js, "netflow");
- jb_set_uint(js, "pkts", f->todstpktcnt);
- jb_set_uint(js, "bytes", f->todstbytecnt);
+ SCJbSetUint(js, "pkts", f->todstpktcnt);
+ SCJbSetUint(js, "bytes", f->todstbytecnt);
char timebuf1[64], timebuf2[64];
CreateIsoTimeString(f->startts, timebuf1, sizeof(timebuf1));
CreateIsoTimeString(f->lastts, timebuf2, sizeof(timebuf2));
- jb_set_string(js, "start", timebuf1);
- jb_set_string(js, "end", timebuf2);
+ SCJbSetString(js, "start", timebuf1);
+ SCJbSetString(js, "end", timebuf2);
uint64_t age = (SCTIME_SECS(f->lastts) - SCTIME_SECS(f->startts));
- jb_set_uint(js, "age", age);
+ SCJbSetUint(js, "age", age);
- jb_set_uint(js, "min_ttl", f->min_ttl_toserver);
- jb_set_uint(js, "max_ttl", f->max_ttl_toserver);
+ SCJbSetUint(js, "min_ttl", f->min_ttl_toserver);
+ SCJbSetUint(js, "max_ttl", f->max_ttl_toserver);
/* Close netflow. */
- jb_close(js);
+ SCJbClose(js);
/* TCP */
if (f->proto == IPPROTO_TCP) {
- jb_open_object(js, "tcp");
+ SCJbOpenObject(js, "tcp");
TcpSession *ssn = f->protoctx;
char hexflags[3];
snprintf(hexflags, sizeof(hexflags), "%02x",
ssn ? ssn->client.tcp_flags : 0);
- jb_set_string(js, "tcp_flags", hexflags);
+ SCJbSetString(js, "tcp_flags", hexflags);
EveTcpFlags(ssn ? ssn->client.tcp_flags : 0, js);
- jb_close(js);
+ SCJbClose(js);
}
}
-static void NetFlowLogEveToClient(JsonBuilder *js, Flow *f)
+static void NetFlowLogEveToClient(SCJsonBuilder *js, Flow *f)
{
- jb_set_string(js, "app_proto",
- AppProtoToString(f->alproto_tc ? f->alproto_tc : f->alproto));
+ SCJbSetString(js, "app_proto", AppProtoToString(f->alproto_tc ? f->alproto_tc : f->alproto));
- jb_open_object(js, "netflow");
+ SCJbOpenObject(js, "netflow");
- jb_set_uint(js, "pkts", f->tosrcpktcnt);
- jb_set_uint(js, "bytes", f->tosrcbytecnt);
+ SCJbSetUint(js, "pkts", f->tosrcpktcnt);
+ SCJbSetUint(js, "bytes", f->tosrcbytecnt);
char timebuf1[64], timebuf2[64];
CreateIsoTimeString(f->startts, timebuf1, sizeof(timebuf1));
CreateIsoTimeString(f->lastts, timebuf2, sizeof(timebuf2));
- jb_set_string(js, "start", timebuf1);
- jb_set_string(js, "end", timebuf2);
+ SCJbSetString(js, "start", timebuf1);
+ SCJbSetString(js, "end", timebuf2);
uint64_t age = (SCTIME_SECS(f->lastts) - SCTIME_SECS(f->startts));
- jb_set_uint(js, "age", age);
+ SCJbSetUint(js, "age", age);
/* To client is zero if we did not see any packet */
if (f->tosrcpktcnt) {
- jb_set_uint(js, "min_ttl", f->min_ttl_toclient);
- jb_set_uint(js, "max_ttl", f->max_ttl_toclient);
+ SCJbSetUint(js, "min_ttl", f->min_ttl_toclient);
+ SCJbSetUint(js, "max_ttl", f->max_ttl_toclient);
}
/* Close netflow. */
- jb_close(js);
+ SCJbClose(js);
/* TCP */
if (f->proto == IPPROTO_TCP) {
- jb_open_object(js, "tcp");
+ SCJbOpenObject(js, "tcp");
TcpSession *ssn = f->protoctx;
char hexflags[3];
snprintf(hexflags, sizeof(hexflags), "%02x",
ssn ? ssn->server.tcp_flags : 0);
- jb_set_string(js, "tcp_flags", hexflags);
+ SCJbSetString(js, "tcp_flags", hexflags);
EveTcpFlags(ssn ? ssn->server.tcp_flags : 0, js);
- jb_close(js);
+ SCJbClose(js);
}
}
SCEnter();
OutputJsonThreadCtx *jhl = thread_data;
- JsonBuilder *jb = CreateEveHeaderFromNetFlow(f, 0);
+ SCJsonBuilder *jb = CreateEveHeaderFromNetFlow(f, 0);
if (unlikely(jb == NULL))
return TM_ECODE_OK;
NetFlowLogEveToServer(jb, f);
EveAddCommonOptions(&jhl->ctx->cfg, NULL, f, jb, LOG_DIR_FLOW_TOSERVER);
OutputJsonBuilderBuffer(tv, NULL, f, jb, jhl);
- jb_free(jb);
+ SCJbFree(jb);
/* only log a response record if we actually have seen response packets */
if (f->tosrcpktcnt) {
NetFlowLogEveToClient(jb, f);
EveAddCommonOptions(&jhl->ctx->cfg, NULL, f, jb, LOG_DIR_FLOW_TOCLIENT);
OutputJsonBuilderBuffer(tv, NULL, f, jb, jhl);
- jb_free(jb);
+ SCJbFree(jb);
}
SCReturnInt(TM_ECODE_OK);
}
#include "rust.h"
-bool EveNFSAddMetadataRPC(const Flow *f, uint64_t tx_id, JsonBuilder *jb)
+bool EveNFSAddMetadataRPC(const Flow *f, uint64_t tx_id, SCJsonBuilder *jb)
{
NFSState *state = FlowGetAppState(f);
if (state) {
return false;
}
-bool EveNFSAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *jb)
+bool EveNFSAddMetadata(const Flow *f, uint64_t tx_id, SCJsonBuilder *jb)
{
NFSState *state = FlowGetAppState(f);
if (state) {
if (rs_nfs_tx_logging_is_filtered(state, nfstx))
return TM_ECODE_OK;
- JsonBuilder *jb = CreateEveHeader(p, LOG_DIR_PACKET, "nfs", NULL, thread->ctx);
+ SCJsonBuilder *jb = CreateEveHeader(p, LOG_DIR_PACKET, "nfs", NULL, thread->ctx);
if (unlikely(jb == NULL)) {
return TM_ECODE_OK;
}
- jb_open_object(jb, "rpc");
+ SCJbOpenObject(jb, "rpc");
rs_rpc_log_json_response(tx, jb);
- jb_close(jb);
+ SCJbClose(jb);
- jb_open_object(jb, "nfs");
+ SCJbOpenObject(jb, "nfs");
rs_nfs_log_json_response(state, tx, jb);
- jb_close(jb);
+ SCJbClose(jb);
MemBufferReset(thread->buffer);
OutputJsonBuilderBuffer(tv, p, p->flow, jb, thread);
- jb_free(jb);
+ SCJbFree(jb);
return TM_ECODE_OK;
}
void JsonNFSLogRegister(void);
-bool EveNFSAddMetadataRPC(const Flow *f, uint64_t tx_id, JsonBuilder *jb);
-bool EveNFSAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *jb);
+bool EveNFSAddMetadataRPC(const Flow *f, uint64_t tx_id, SCJsonBuilder *jb);
+bool EveNFSAddMetadata(const Flow *f, uint64_t tx_id, SCJsonBuilder *jb);
#endif /* SURICATA_OUTPUT_JSON_NFS_H */
OutputJsonThreadCtx *ctx;
} LogPgsqlLogThread;
-bool JsonPgsqlAddMetadata(void *vtx, JsonBuilder *jb)
+bool JsonPgsqlAddMetadata(void *vtx, SCJsonBuilder *jb)
{
return SCPgsqlLogger(vtx, PGSQL_DEFAULTS, jb);
}
LogPgsqlLogThread *thread = thread_data;
SCLogDebug("Logging pgsql transaction %" PRIu64 ".", tx_id);
- JsonBuilder *jb =
+ SCJsonBuilder *jb =
CreateEveHeader(p, LOG_DIR_FLOW, "pgsql", NULL, thread->pgsqllog_ctx->eve_ctx);
if (unlikely(jb == NULL)) {
return TM_ECODE_FAILED;
}
OutputJsonBuilderBuffer(tv, p, p->flow, jb, thread->ctx);
- jb_free(jb);
+ SCJbFree(jb);
return TM_ECODE_OK;
error:
- jb_free(jb);
+ SCJbFree(jb);
return TM_ECODE_FAILED;
}
#define SURICATA_OUTPUT_JSON_PGSQL_H
void JsonPgsqlLogRegister(void);
-bool JsonPgsqlAddMetadata(void *vtx, JsonBuilder *jb);
+bool JsonPgsqlAddMetadata(void *vtx, SCJsonBuilder *jb);
#endif /* SURICATA_OUTPUT_JSON_PGSQL_H */
#include "output-json-smb.h"
#include "rust.h"
-bool EveSMBAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *jb)
+bool EveSMBAddMetadata(const Flow *f, uint64_t tx_id, SCJsonBuilder *jb)
{
SMBState *state = FlowGetAppState(f);
if (state) {
{
OutputJsonThreadCtx *thread = thread_data;
- JsonBuilder *jb = CreateEveHeader(p, LOG_DIR_FLOW, "smb", NULL, thread->ctx);
+ SCJsonBuilder *jb = CreateEveHeader(p, LOG_DIR_FLOW, "smb", NULL, thread->ctx);
if (unlikely(jb == NULL)) {
return TM_ECODE_FAILED;
}
- jb_open_object(jb, "smb");
+ SCJbOpenObject(jb, "smb");
if (!SCSmbLogJsonResponse(jb, state, tx)) {
goto error;
}
- jb_close(jb);
+ SCJbClose(jb);
OutputJsonBuilderBuffer(tv, p, p->flow, jb, thread);
- jb_free(jb);
+ SCJbFree(jb);
return TM_ECODE_OK;
error:
- jb_free(jb);
+ SCJbFree(jb);
return TM_ECODE_FAILED;
}
#define SURICATA_OUTPUT_JSON_SMB_H
void JsonSMBLogRegister(void);
-bool EveSMBAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *jb);
+bool EveSMBAddMetadata(const Flow *f, uint64_t tx_id, SCJsonBuilder *jb);
#endif /* SURICATA_OUTPUT_JSON_SMB_H */
#include "output-json-smtp.h"
#include "output-json-email-common.h"
-static void EveSmtpDataLogger(void *state, void *vtx, JsonBuilder *js)
+static void EveSmtpDataLogger(void *state, void *vtx, SCJsonBuilder *js)
{
SMTPTransaction *tx = vtx;
SMTPString *rcptto_str;
if (((SMTPState *)state)->helo) {
- jb_set_string(js, "helo", (const char *)((SMTPState *)state)->helo);
+ SCJbSetString(js, "helo", (const char *)((SMTPState *)state)->helo);
}
if (tx->mail_from) {
- jb_set_string(js, "mail_from", (const char *)tx->mail_from);
+ SCJbSetString(js, "mail_from", (const char *)tx->mail_from);
}
if (!TAILQ_EMPTY(&tx->rcpt_to_list)) {
- jb_open_array(js, "rcpt_to");
+ SCJbOpenArray(js, "rcpt_to");
TAILQ_FOREACH(rcptto_str, &tx->rcpt_to_list, next) {
- jb_append_string(js, (char *)rcptto_str->str);
+ SCJbAppendString(js, (char *)rcptto_str->str);
}
- jb_close(js);
+ SCJbClose(js);
}
}
SCEnter();
JsonEmailLogThread *jhl = (JsonEmailLogThread *)thread_data;
- JsonBuilder *jb = CreateEveHeaderWithTxId(
+ SCJsonBuilder *jb = CreateEveHeaderWithTxId(
p, LOG_DIR_FLOW, "smtp", NULL, tx_id, jhl->emaillog_ctx->eve_ctx);
if (unlikely(jb == NULL))
return TM_ECODE_OK;
- jb_open_object(jb, "smtp");
+ SCJbOpenObject(jb, "smtp");
EveSmtpDataLogger(state, tx, jb);
- jb_close(jb);
+ SCJbClose(jb);
EveEmailLogJson(jhl, jb, p, f, state, tx, tx_id);
OutputJsonBuilderBuffer(tv, p, p->flow, jb, jhl->ctx);
- jb_free(jb);
+ SCJbFree(jb);
SCReturnInt(TM_ECODE_OK);
}
-bool EveSMTPAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *js)
+bool EveSMTPAddMetadata(const Flow *f, uint64_t tx_id, SCJsonBuilder *js)
{
SMTPState *smtp_state = (SMTPState *)FlowGetAppState(f);
if (smtp_state) {
#define SURICATA_OUTPUT_JSON_SMTP_H
void JsonSmtpLogRegister(void);
-bool EveSMTPAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *js);
+bool EveSMTPAddMetadata(const Flow *f, uint64_t tx_id, SCJsonBuilder *js);
#endif /* SURICATA_OUTPUT_JSON_SMTP_H */
OutputJsonThreadCtx *ctx;
} JsonTlsLogThread;
-static void JsonTlsLogSubject(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogSubject(SCJsonBuilder *js, SSLState *ssl_state)
{
if (ssl_state->server_connp.cert0_subject) {
- jb_set_string(js, "subject",
- ssl_state->server_connp.cert0_subject);
+ SCJbSetString(js, "subject", ssl_state->server_connp.cert0_subject);
}
}
-static void JsonTlsLogIssuer(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogIssuer(SCJsonBuilder *js, SSLState *ssl_state)
{
if (ssl_state->server_connp.cert0_issuerdn) {
- jb_set_string(js, "issuerdn",
- ssl_state->server_connp.cert0_issuerdn);
+ SCJbSetString(js, "issuerdn", ssl_state->server_connp.cert0_issuerdn);
}
}
-static void JsonTlsLogSAN(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogSAN(SCJsonBuilder *js, SSLState *ssl_state)
{
if (ssl_state->server_connp.cert0_sans_len > 0) {
- jb_open_array(js, "subjectaltname");
+ SCJbOpenArray(js, "subjectaltname");
for (uint16_t i = 0; i < ssl_state->server_connp.cert0_sans_len; i++) {
- jb_append_string(js, ssl_state->server_connp.cert0_sans[i]);
+ SCJbAppendString(js, ssl_state->server_connp.cert0_sans[i]);
}
- jb_close(js);
+ SCJbClose(js);
}
}
-static void JsonTlsLogSessionResumed(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogSessionResumed(SCJsonBuilder *js, SSLState *ssl_state)
{
if (ssl_state->flags & SSL_AL_FLAG_SESSION_RESUMED) {
/* Only log a session as 'resumed' if a certificate has not
ssl_state->server_connp.cert0_subject == NULL) &&
(ssl_state->flags & SSL_AL_FLAG_STATE_SERVER_HELLO) &&
((ssl_state->flags & SSL_AL_FLAG_LOG_WITHOUT_CERT) == 0)) {
- jb_set_bool(js, "session_resumed", true);
+ SCJbSetBool(js, "session_resumed", true);
}
}
}
-static void JsonTlsLogFingerprint(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogFingerprint(SCJsonBuilder *js, SSLState *ssl_state)
{
if (ssl_state->server_connp.cert0_fingerprint) {
- jb_set_string(js, "fingerprint",
- ssl_state->server_connp.cert0_fingerprint);
+ SCJbSetString(js, "fingerprint", ssl_state->server_connp.cert0_fingerprint);
}
}
-static void JsonTlsLogSni(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogSni(SCJsonBuilder *js, SSLState *ssl_state)
{
if (ssl_state->client_connp.sni) {
- jb_set_string(js, "sni",
- ssl_state->client_connp.sni);
+ SCJbSetString(js, "sni", ssl_state->client_connp.sni);
}
}
-static void JsonTlsLogSerial(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogSerial(SCJsonBuilder *js, SSLState *ssl_state)
{
if (ssl_state->server_connp.cert0_serial) {
- jb_set_string(js, "serial",
- ssl_state->server_connp.cert0_serial);
+ SCJbSetString(js, "serial", ssl_state->server_connp.cert0_serial);
}
}
-static void JsonTlsLogVersion(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogVersion(SCJsonBuilder *js, SSLState *ssl_state)
{
char ssl_version[SSL_VERSION_MAX_STRLEN];
SSLVersionToString(ssl_state->server_connp.version, ssl_version);
- jb_set_string(js, "version", ssl_version);
+ SCJbSetString(js, "version", ssl_version);
}
-static void JsonTlsLogNotBefore(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogNotBefore(SCJsonBuilder *js, SSLState *ssl_state)
{
if (ssl_state->server_connp.cert0_not_before != 0) {
sc_x509_log_timestamp(js, "notbefore", ssl_state->server_connp.cert0_not_before);
}
}
-static void JsonTlsLogNotAfter(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogNotAfter(SCJsonBuilder *js, SSLState *ssl_state)
{
if (ssl_state->server_connp.cert0_not_after != 0) {
sc_x509_log_timestamp(js, "notafter", ssl_state->server_connp.cert0_not_after);
}
}
-static void JsonTlsLogJa3Hash(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogJa3Hash(SCJsonBuilder *js, SSLState *ssl_state)
{
if (ssl_state->client_connp.ja3_hash != NULL) {
- jb_set_string(js, "hash",
- ssl_state->client_connp.ja3_hash);
+ SCJbSetString(js, "hash", ssl_state->client_connp.ja3_hash);
}
}
-static void JsonTlsLogJa3String(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogJa3String(SCJsonBuilder *js, SSLState *ssl_state)
{
if ((ssl_state->client_connp.ja3_str != NULL) &&
ssl_state->client_connp.ja3_str->data != NULL) {
- jb_set_string(js, "string",
- ssl_state->client_connp.ja3_str->data);
+ SCJbSetString(js, "string", ssl_state->client_connp.ja3_str->data);
}
}
-static void JsonTlsLogJa3(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogJa3(SCJsonBuilder *js, SSLState *ssl_state)
{
if ((ssl_state->client_connp.ja3_hash != NULL) ||
((ssl_state->client_connp.ja3_str != NULL) &&
ssl_state->client_connp.ja3_str->data != NULL)) {
- jb_open_object(js, "ja3");
+ SCJbOpenObject(js, "ja3");
JsonTlsLogJa3Hash(js, ssl_state);
JsonTlsLogJa3String(js, ssl_state);
- jb_close(js);
+ SCJbClose(js);
}
}
-static void JsonTlsLogSCJA4(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogSCJA4(SCJsonBuilder *js, SSLState *ssl_state)
{
if (ssl_state->client_connp.ja4 != NULL) {
uint8_t buffer[JA4_HEX_LEN];
/* JA4 hash has 36 characters */
SCJA4GetHash(ssl_state->client_connp.ja4, (uint8_t(*)[JA4_HEX_LEN])buffer);
- jb_set_string_from_bytes(js, "ja4", buffer, 36);
+ SCJbSetStringFromBytes(js, "ja4", buffer, 36);
}
}
-static void JsonTlsLogJa3SHash(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogJa3SHash(SCJsonBuilder *js, SSLState *ssl_state)
{
if (ssl_state->server_connp.ja3_hash != NULL) {
- jb_set_string(js, "hash",
- ssl_state->server_connp.ja3_hash);
+ SCJbSetString(js, "hash", ssl_state->server_connp.ja3_hash);
}
}
-static void JsonTlsLogJa3SString(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogJa3SString(SCJsonBuilder *js, SSLState *ssl_state)
{
if ((ssl_state->server_connp.ja3_str != NULL) &&
ssl_state->server_connp.ja3_str->data != NULL) {
- jb_set_string(js, "string",
- ssl_state->server_connp.ja3_str->data);
+ SCJbSetString(js, "string", ssl_state->server_connp.ja3_str->data);
}
}
-static void JsonTlsLogJa3S(JsonBuilder *js, SSLState *ssl_state)
+static void JsonTlsLogJa3S(SCJsonBuilder *js, SSLState *ssl_state)
{
if ((ssl_state->server_connp.ja3_hash != NULL) ||
((ssl_state->server_connp.ja3_str != NULL) &&
ssl_state->server_connp.ja3_str->data != NULL)) {
- jb_open_object(js, "ja3s");
+ SCJbOpenObject(js, "ja3s");
JsonTlsLogJa3SHash(js, ssl_state);
JsonTlsLogJa3SString(js, ssl_state);
- jb_close(js);
+ SCJbClose(js);
}
}
-static void JsonTlsLogAlpns(JsonBuilder *js, SSLStateConnp *connp, const char *object)
+static void JsonTlsLogAlpns(SCJsonBuilder *js, SSLStateConnp *connp, const char *object)
{
if (TAILQ_EMPTY(&connp->alpns)) {
return;
return;
}
- jb_open_array(js, object);
+ SCJbOpenArray(js, object);
TAILQ_FOREACH (a, &connp->alpns, next) {
- jb_append_string_from_bytes(js, a->alpn, a->size);
+ SCJbAppendStringFromBytes(js, a->alpn, a->size);
}
- jb_close(js);
+ SCJbClose(js);
}
-static void JsonTlsLogCertificate(JsonBuilder *js, SSLStateConnp *connp)
+static void JsonTlsLogCertificate(SCJsonBuilder *js, SSLStateConnp *connp)
{
if (TAILQ_EMPTY(&connp->certs)) {
return;
return;
}
- jb_set_base64(js, "certificate", cert->cert_data, cert->cert_len);
+ SCJbSetBase64(js, "certificate", cert->cert_data, cert->cert_len);
}
-static void JsonTlsLogChain(JsonBuilder *js, SSLStateConnp *connp)
+static void JsonTlsLogChain(SCJsonBuilder *js, SSLStateConnp *connp)
{
if (TAILQ_EMPTY(&connp->certs)) {
return;
}
- jb_open_array(js, "chain");
+ SCJbOpenArray(js, "chain");
SSLCertsChain *cert;
TAILQ_FOREACH (cert, &connp->certs, next) {
- jb_append_base64(js, cert->cert_data, cert->cert_len);
+ SCJbAppendBase64(js, cert->cert_data, cert->cert_len);
}
- jb_close(js);
+ SCJbClose(js);
}
static bool HasClientCert(SSLStateConnp *connp)
}
static void JsonTlsLogClientCert(
- JsonBuilder *js, SSLStateConnp *connp, const bool log_cert, const bool log_chain)
+ SCJsonBuilder *js, SSLStateConnp *connp, const bool log_cert, const bool log_chain)
{
if (connp->cert0_subject != NULL) {
- jb_set_string(js, "subject", connp->cert0_subject);
+ SCJbSetString(js, "subject", connp->cert0_subject);
}
if (connp->cert0_issuerdn != NULL) {
- jb_set_string(js, "issuerdn", connp->cert0_issuerdn);
+ SCJbSetString(js, "issuerdn", connp->cert0_issuerdn);
}
if (connp->cert0_fingerprint) {
- jb_set_string(js, "fingerprint", connp->cert0_fingerprint);
+ SCJbSetString(js, "fingerprint", connp->cert0_fingerprint);
}
if (connp->cert0_serial) {
- jb_set_string(js, "serial", connp->cert0_serial);
+ SCJbSetString(js, "serial", connp->cert0_serial);
}
if (connp->cert0_not_before != 0) {
char timebuf[64];
SCTime_t ts = SCTIME_FROM_SECS(connp->cert0_not_before);
CreateUtcIsoTimeString(ts, timebuf, sizeof(timebuf));
- jb_set_string(js, "notbefore", timebuf);
+ SCJbSetString(js, "notbefore", timebuf);
}
if (connp->cert0_not_after != 0) {
char timebuf[64];
SCTime_t ts = SCTIME_FROM_SECS(connp->cert0_not_after);
CreateUtcIsoTimeString(ts, timebuf, sizeof(timebuf));
- jb_set_string(js, "notafter", timebuf);
+ SCJbSetString(js, "notafter", timebuf);
}
if (log_cert) {
}
}
-static void JsonTlsLogFields(JsonBuilder *js, SSLState *ssl_state, uint64_t fields)
+static void JsonTlsLogFields(SCJsonBuilder *js, SSLState *ssl_state, uint64_t fields)
{
/* tls subject */
if (fields & LOG_TLS_FIELD_SUBJECT)
const bool log_cert = (fields & LOG_TLS_FIELD_CLIENT_CERT) != 0;
const bool log_chain = (fields & LOG_TLS_FIELD_CLIENT_CHAIN) != 0;
if (HasClientCert(&ssl_state->client_connp)) {
- jb_open_object(js, "client");
+ SCJbOpenObject(js, "client");
JsonTlsLogClientCert(js, &ssl_state->client_connp, log_cert, log_chain);
- jb_close(js);
+ SCJbClose(js);
}
}
}
-bool JsonTlsLogJSONExtended(void *vtx, JsonBuilder *tjs)
+bool JsonTlsLogJSONExtended(void *vtx, SCJsonBuilder *tjs)
{
SSLState *state = (SSLState *)vtx;
- jb_open_object(tjs, "tls");
+ SCJbOpenObject(tjs, "tls");
JsonTlsLogFields(tjs, state, EXTENDED_FIELDS);
- return jb_close(tjs);
+ return SCJbClose(tjs);
}
static int JsonTlsLogger(ThreadVars *tv, void *thread_data, const Packet *p,
return 0;
}
- JsonBuilder *js = CreateEveHeader(p, LOG_DIR_FLOW, "tls", NULL, aft->tlslog_ctx->eve_ctx);
+ SCJsonBuilder *js = CreateEveHeader(p, LOG_DIR_FLOW, "tls", NULL, aft->tlslog_ctx->eve_ctx);
if (unlikely(js == NULL)) {
return 0;
}
- jb_open_object(js, "tls");
+ SCJbOpenObject(js, "tls");
JsonTlsLogFields(js, ssl_state, tls_ctx->fields);
/* print original application level protocol when it have been changed
because of STARTTLS, HTTP CONNECT, or similar. */
if (f->alproto_orig != ALPROTO_UNKNOWN) {
- jb_set_string(js, "from_proto",
- AppLayerGetProtoName(f->alproto_orig));
+ SCJbSetString(js, "from_proto", AppLayerGetProtoName(f->alproto_orig));
}
/* Close the tls object. */
- jb_close(js);
+ SCJbClose(js);
OutputJsonBuilderBuffer(tv, p, p->flow, js, aft->ctx);
- jb_free(js);
+ SCJbFree(js);
return 0;
}
void JsonTlsLogRegister(void);
-/* For JsonBuilder. */
+/* For SCJsonBuilder. */
#include "rust.h"
-bool JsonTlsLogJSONExtended(void *vtx, JsonBuilder *js);
+bool JsonTlsLogJSONExtended(void *vtx, SCJsonBuilder *js);
#endif /* SURICATA_OUTPUT_JSON_TLS_H */
#define MAX_JSON_SIZE 2048
static void OutputJsonDeInitCtx(OutputCtx *);
-static void CreateEveCommunityFlowId(JsonBuilder *js, const Flow *f, const uint16_t seed);
+static void CreateEveCommunityFlowId(SCJsonBuilder *js, const Flow *f, const uint16_t seed);
static int CreateJSONEther(
- JsonBuilder *parent, const Packet *p, const Flow *f, enum OutputJsonLogDirection dir);
+ SCJsonBuilder *parent, const Packet *p, const Flow *f, enum OutputJsonLogDirection dir);
static const char *TRAFFIC_ID_PREFIX = "traffic/id/";
static const char *TRAFFIC_LABEL_PREFIX = "traffic/label/";
/* Default Sensor ID value */
static int64_t sensor_id = -1; /* -1 = not defined */
-void EveFileInfo(JsonBuilder *jb, const File *ff, const uint64_t tx_id, const uint16_t flags)
+void EveFileInfo(SCJsonBuilder *jb, const File *ff, const uint64_t tx_id, const uint16_t flags)
{
- jb_set_string_from_bytes(jb, "filename", ff->name, ff->name_len);
+ SCJbSetStringFromBytes(jb, "filename", ff->name, ff->name_len);
if (ff->sid_cnt > 0) {
- jb_open_array(jb, "sid");
+ SCJbOpenArray(jb, "sid");
for (uint32_t i = 0; ff->sid != NULL && i < ff->sid_cnt; i++) {
- jb_append_uint(jb, ff->sid[i]);
+ SCJbAppendUint(jb, ff->sid[i]);
}
- jb_close(jb);
+ SCJbClose(jb);
}
#ifdef HAVE_MAGIC
if (ff->magic)
- jb_set_string(jb, "magic", (char *)ff->magic);
+ SCJbSetString(jb, "magic", (char *)ff->magic);
#endif
- jb_set_bool(jb, "gaps", ff->flags & FILE_HAS_GAPS);
+ SCJbSetBool(jb, "gaps", ff->flags & FILE_HAS_GAPS);
switch (ff->state) {
case FILE_STATE_CLOSED:
JB_SET_STRING(jb, "state", "CLOSED");
if (ff->flags & FILE_MD5) {
- jb_set_hex(jb, "md5", (uint8_t *)ff->md5, (uint32_t)sizeof(ff->md5));
+ SCJbSetHex(jb, "md5", (uint8_t *)ff->md5, (uint32_t)sizeof(ff->md5));
}
if (ff->flags & FILE_SHA1) {
- jb_set_hex(jb, "sha1", (uint8_t *)ff->sha1, (uint32_t)sizeof(ff->sha1));
+ SCJbSetHex(jb, "sha1", (uint8_t *)ff->sha1, (uint32_t)sizeof(ff->sha1));
}
break;
case FILE_STATE_TRUNCATED:
}
if (ff->flags & FILE_SHA256) {
- jb_set_hex(jb, "sha256", (uint8_t *)ff->sha256, (uint32_t)sizeof(ff->sha256));
+ SCJbSetHex(jb, "sha256", (uint8_t *)ff->sha256, (uint32_t)sizeof(ff->sha256));
}
if (flags & FILE_STORED) {
JB_SET_TRUE(jb, "stored");
- jb_set_uint(jb, "file_id", ff->file_store_id);
+ SCJbSetUint(jb, "file_id", ff->file_store_id);
} else {
JB_SET_FALSE(jb, "stored");
if (flags & FILE_STORE) {
}
}
- jb_set_uint(jb, "size", FileTrackedSize(ff));
+ SCJbSetUint(jb, "size", FileTrackedSize(ff));
if (ff->end > 0) {
- jb_set_uint(jb, "start", ff->start);
- jb_set_uint(jb, "end", ff->end);
+ SCJbSetUint(jb, "start", ff->start);
+ SCJbSetUint(jb, "end", ff->end);
}
- jb_set_uint(jb, "tx_id", tx_id);
+ SCJbSetUint(jb, "tx_id", tx_id);
}
-static void EveAddPacketVars(const Packet *p, JsonBuilder *js_vars)
+static void EveAddPacketVars(const Packet *p, SCJsonBuilder *js_vars)
{
if (p == NULL || p->pktvar == NULL) {
return;
while (pv != NULL) {
if (pv->key || pv->id > 0) {
if (!open) {
- jb_open_array(js_vars, "pktvars");
+ SCJbOpenArray(js_vars, "pktvars");
open = true;
}
- jb_start_object(js_vars);
+ SCJbStartObject(js_vars);
if (pv->key != NULL) {
uint32_t offset = 0;
uint8_t printable_buf[len + 1];
offset = 0;
PrintStringsToBuffer(printable_buf, &offset, len + 1, pv->value, pv->value_len);
- jb_set_string(js_vars, (char *)keybuf, (char *)printable_buf);
+ SCJbSetString(js_vars, (char *)keybuf, (char *)printable_buf);
} else {
const char *varname = VarNameStoreLookupById(pv->id, VAR_TYPE_PKT_VAR);
uint32_t len = pv->value_len;
uint8_t printable_buf[len + 1];
uint32_t offset = 0;
PrintStringsToBuffer(printable_buf, &offset, len + 1, pv->value, pv->value_len);
- jb_set_string(js_vars, varname, (char *)printable_buf);
+ SCJbSetString(js_vars, varname, (char *)printable_buf);
}
- jb_close(js_vars);
+ SCJbClose(js_vars);
}
pv = pv->next;
}
if (open) {
- jb_close(js_vars);
+ SCJbClose(js_vars);
}
}
return false;
}
-static void EveAddFlowVars(const Flow *f, JsonBuilder *js_root, JsonBuilder **js_traffic)
+static void EveAddFlowVars(const Flow *f, SCJsonBuilder *js_root, SCJsonBuilder **js_traffic)
{
if (f == NULL || f->flowvar == NULL) {
return;
}
- JsonBuilder *js_flowvars = NULL;
- JsonBuilder *js_traffic_id = NULL;
- JsonBuilder *js_traffic_label = NULL;
- JsonBuilder *js_flowints = NULL;
- JsonBuilder *js_flowbits = NULL;
+ SCJsonBuilder *js_flowvars = NULL;
+ SCJsonBuilder *js_traffic_id = NULL;
+ SCJsonBuilder *js_traffic_label = NULL;
+ SCJsonBuilder *js_flowints = NULL;
+ SCJsonBuilder *js_flowbits = NULL;
GenericVar *gv = f->flowvar;
while (gv != NULL) {
if (gv->type == DETECT_FLOWVAR || gv->type == DETECT_FLOWINT) {
VAR_TYPE_FLOW_VAR);
if (varname) {
if (js_flowvars == NULL) {
- js_flowvars = jb_new_array();
+ js_flowvars = SCJbNewArray();
if (js_flowvars == NULL)
break;
}
PrintStringsToBuffer(printable_buf, &offset, len + 1, fv->data.fv_str.value,
fv->data.fv_str.value_len);
- jb_start_object(js_flowvars);
- jb_set_string(js_flowvars, varname, (char *)printable_buf);
- jb_close(js_flowvars);
+ SCJbStartObject(js_flowvars);
+ SCJbSetString(js_flowvars, varname, (char *)printable_buf);
+ SCJbClose(js_flowvars);
}
} else if (fv->datatype == FLOWVAR_TYPE_STR && fv->key != NULL) {
if (js_flowvars == NULL) {
- js_flowvars = jb_new_array();
+ js_flowvars = SCJbNewArray();
if (js_flowvars == NULL)
break;
}
PrintStringsToBuffer(printable_buf, &offset, len + 1, fv->data.fv_str.value,
fv->data.fv_str.value_len);
- jb_start_object(js_flowvars);
- jb_set_string(js_flowvars, (const char *)keybuf, (char *)printable_buf);
- jb_close(js_flowvars);
+ SCJbStartObject(js_flowvars);
+ SCJbSetString(js_flowvars, (const char *)keybuf, (char *)printable_buf);
+ SCJbClose(js_flowvars);
} else if (fv->datatype == FLOWVAR_TYPE_INT) {
const char *varname = VarNameStoreLookupById(fv->idx,
VAR_TYPE_FLOW_INT);
if (varname) {
if (js_flowints == NULL) {
- js_flowints = jb_new_object();
+ js_flowints = SCJbNewObject();
if (js_flowints == NULL)
break;
}
- jb_set_uint(js_flowints, varname, fv->data.fv_int.value);
+ SCJbSetUint(js_flowints, varname, fv->data.fv_int.value);
}
}
if (varname) {
if (SCStringHasPrefix(varname, TRAFFIC_ID_PREFIX)) {
if (js_traffic_id == NULL) {
- js_traffic_id = jb_new_array();
+ js_traffic_id = SCJbNewArray();
if (unlikely(js_traffic_id == NULL)) {
break;
}
}
- jb_append_string(js_traffic_id, &varname[traffic_id_prefix_len]);
+ SCJbAppendString(js_traffic_id, &varname[traffic_id_prefix_len]);
} else if (SCStringHasPrefix(varname, TRAFFIC_LABEL_PREFIX)) {
if (js_traffic_label == NULL) {
- js_traffic_label = jb_new_array();
+ js_traffic_label = SCJbNewArray();
if (unlikely(js_traffic_label == NULL)) {
break;
}
}
- jb_append_string(js_traffic_label, &varname[traffic_label_prefix_len]);
+ SCJbAppendString(js_traffic_label, &varname[traffic_label_prefix_len]);
} else {
if (js_flowbits == NULL) {
- js_flowbits = jb_new_array();
+ js_flowbits = SCJbNewArray();
if (unlikely(js_flowbits == NULL))
break;
}
- jb_append_string(js_flowbits, varname);
+ SCJbAppendString(js_flowbits, varname);
}
}
}
gv = gv->next;
}
if (js_flowbits) {
- jb_close(js_flowbits);
- jb_set_object(js_root, "flowbits", js_flowbits);
- jb_free(js_flowbits);
+ SCJbClose(js_flowbits);
+ SCJbSetObject(js_root, "flowbits", js_flowbits);
+ SCJbFree(js_flowbits);
}
if (js_flowints) {
- jb_close(js_flowints);
- jb_set_object(js_root, "flowints", js_flowints);
- jb_free(js_flowints);
+ SCJbClose(js_flowints);
+ SCJbSetObject(js_root, "flowints", js_flowints);
+ SCJbFree(js_flowints);
}
if (js_flowvars) {
- jb_close(js_flowvars);
- jb_set_object(js_root, "flowvars", js_flowvars);
- jb_free(js_flowvars);
+ SCJbClose(js_flowvars);
+ SCJbSetObject(js_root, "flowvars", js_flowvars);
+ SCJbFree(js_flowvars);
}
if (js_traffic_id != NULL || js_traffic_label != NULL) {
- *js_traffic = jb_new_object();
+ *js_traffic = SCJbNewObject();
if (likely(*js_traffic != NULL)) {
if (js_traffic_id != NULL) {
- jb_close(js_traffic_id);
- jb_set_object(*js_traffic, "id", js_traffic_id);
- jb_free(js_traffic_id);
+ SCJbClose(js_traffic_id);
+ SCJbSetObject(*js_traffic, "id", js_traffic_id);
+ SCJbFree(js_traffic_id);
}
if (js_traffic_label != NULL) {
- jb_close(js_traffic_label);
- jb_set_object(*js_traffic, "label", js_traffic_label);
- jb_free(js_traffic_label);
+ SCJbClose(js_traffic_label);
+ SCJbSetObject(*js_traffic, "label", js_traffic_label);
+ SCJbFree(js_traffic_label);
}
- jb_close(*js_traffic);
+ SCJbClose(*js_traffic);
}
}
}
-void EveAddMetadata(const Packet *p, const Flow *f, JsonBuilder *js)
+void EveAddMetadata(const Packet *p, const Flow *f, SCJsonBuilder *js)
{
if ((p && p->pktvar) || (f && f->flowvar)) {
- JsonBuilder *js_vars = jb_new_object();
+ SCJsonBuilder *js_vars = SCJbNewObject();
if (js_vars) {
if (f && f->flowvar) {
- JsonBuilder *js_traffic = NULL;
+ SCJsonBuilder *js_traffic = NULL;
EveAddFlowVars(f, js_vars, &js_traffic);
if (js_traffic != NULL) {
- jb_set_object(js, "traffic", js_traffic);
- jb_free(js_traffic);
+ SCJbSetObject(js, "traffic", js_traffic);
+ SCJbFree(js_traffic);
}
}
if (p && p->pktvar) {
EveAddPacketVars(p, js_vars);
}
- jb_close(js_vars);
- jb_set_object(js, "metadata", js_vars);
- jb_free(js_vars);
+ SCJbClose(js_vars);
+ SCJbSetObject(js, "metadata", js_vars);
+ SCJbFree(js_vars);
}
}
}
void EveAddCommonOptions(const OutputJsonCommonSettings *cfg, const Packet *p, const Flow *f,
- JsonBuilder *js, enum OutputJsonLogDirection dir)
+ SCJsonBuilder *js, enum OutputJsonLogDirection dir)
{
if (cfg->include_metadata) {
EveAddMetadata(p, f, js);
CreateEveCommunityFlowId(js, f, cfg->community_id_seed);
}
if (f != NULL && f->tenant_id > 0) {
- jb_set_uint(js, "tenant_id", f->tenant_id);
+ SCJbSetUint(js, "tenant_id", f->tenant_id);
}
}
* \param js JSON object
* \param max_length If non-zero, restricts the number of packet data bytes handled.
*/
-void EvePacket(const Packet *p, JsonBuilder *js, uint32_t max_length)
+void EvePacket(const Packet *p, SCJsonBuilder *js, uint32_t max_length)
{
uint32_t max_len = max_length == 0 ? GET_PKT_LEN(p) : max_length;
- jb_set_base64(js, "packet", GET_PKT_DATA(p), max_len);
+ SCJbSetBase64(js, "packet", GET_PKT_DATA(p), max_len);
- if (!jb_open_object(js, "packet_info")) {
+ if (!SCJbOpenObject(js, "packet_info")) {
return;
}
- if (!jb_set_uint(js, "linktype", p->datalink)) {
- jb_close(js);
+ if (!SCJbSetUint(js, "linktype", p->datalink)) {
+ SCJbClose(js);
return;
}
const char *dl_name = DatalinkValueToName(p->datalink);
- // Intentionally ignore the return value from jb_set_string and proceed
+ // Intentionally ignore the return value from SCJbSetString and proceed
// so the jb object is closed
- (void)jb_set_string(js, "linktype_name", dl_name == NULL ? "n/a" : dl_name);
+ (void)SCJbSetString(js, "linktype_name", dl_name == NULL ? "n/a" : dl_name);
- jb_close(js);
+ SCJbClose(js);
}
/** \brief jsonify tcp flags field
* Only add 'true' fields in an attempt to keep things reasonably compact.
*/
-void EveTcpFlags(const uint8_t flags, JsonBuilder *js)
+void EveTcpFlags(const uint8_t flags, SCJsonBuilder *js)
{
if (flags & TH_SYN)
JB_SET_TRUE(js, "syn");
return false;
}
-static void CreateEveCommunityFlowId(JsonBuilder *js, const Flow *f, const uint16_t seed)
+static void CreateEveCommunityFlowId(SCJsonBuilder *js, const Flow *f, const uint16_t seed)
{
unsigned char buf[COMMUNITY_ID_BUF_SIZE];
if (f->flags & FLOW_IPV4) {
if (CalculateCommunityFlowIdv4(f, seed, buf)) {
- jb_set_string(js, "community_id", (const char *)buf);
+ SCJbSetString(js, "community_id", (const char *)buf);
}
} else if (f->flags & FLOW_IPV6) {
if (CalculateCommunityFlowIdv6(f, seed, buf)) {
- jb_set_string(js, "community_id", (const char *)buf);
+ SCJbSetString(js, "community_id", (const char *)buf);
}
}
}
-void CreateEveFlowId(JsonBuilder *js, const Flow *f)
+void CreateEveFlowId(SCJsonBuilder *js, const Flow *f)
{
if (f == NULL) {
return;
}
int64_t flow_id = FlowGetId(f);
- jb_set_uint(js, "flow_id", flow_id);
+ SCJbSetUint(js, "flow_id", flow_id);
if (f->parent_id) {
- jb_set_uint(js, "parent_id", f->parent_id);
+ SCJbSetUint(js, "parent_id", f->parent_id);
}
}
-void JSONFormatAndAddMACAddr(JsonBuilder *js, const char *key, const uint8_t *val, bool is_array)
+void JSONFormatAndAddMACAddr(SCJsonBuilder *js, const char *key, const uint8_t *val, bool is_array)
{
char eth_addr[19];
(void) snprintf(eth_addr, 19, "%02x:%02x:%02x:%02x:%02x:%02x",
val[0], val[1], val[2], val[3], val[4], val[5]);
if (is_array) {
- jb_append_string(js, eth_addr);
+ SCJbAppendString(js, eth_addr);
} else {
- jb_set_string(js, key, eth_addr);
+ SCJbSetString(js, key, eth_addr);
}
}
/* only required to traverse the MAC address set */
typedef struct JSONMACAddrInfo {
- JsonBuilder *src, *dst;
+ SCJsonBuilder *src, *dst;
} JSONMACAddrInfo;
static int MacSetIterateToJSON(uint8_t *val, MacSetSide side, void *data)
}
static int CreateJSONEther(
- JsonBuilder *js, const Packet *p, const Flow *f, enum OutputJsonLogDirection dir)
+ SCJsonBuilder *js, const Packet *p, const Flow *f, enum OutputJsonLogDirection dir)
{
if (p != NULL) {
/* this is a packet context, so we need to add scalar fields */
if (PacketIsEthernet(p)) {
const EthernetHdr *ethh = PacketGetEthernet(p);
- jb_open_object(js, "ether");
- jb_set_uint(js, "ether_type", ethh->eth_type);
+ SCJbOpenObject(js, "ether");
+ SCJbSetUint(js, "ether_type", ethh->eth_type);
const uint8_t *src;
const uint8_t *dst;
switch (dir) {
}
JSONFormatAndAddMACAddr(js, "src_mac", src, false);
JSONFormatAndAddMACAddr(js, "dest_mac", dst, false);
- jb_close(js);
+ SCJbClose(js);
} else if (f != NULL) {
/* When pseudopackets do not have associated ethernet metadata,
use the first set of mac addresses stored with their flow.
uint8_t *src = MacSetGetFirst(ms, MAC_SET_SRC);
uint8_t *dst = MacSetGetFirst(ms, MAC_SET_DST);
if (dst != NULL && src != NULL) {
- jb_open_object(js, "ether");
+ SCJbOpenObject(js, "ether");
JSONFormatAndAddMACAddr(js, "src_mac", src, false);
JSONFormatAndAddMACAddr(js, "dest_mac", dst, false);
- jb_close(js);
+ SCJbClose(js);
}
}
}
append to arrays */
MacSet *ms = FlowGetStorageById(f, MacSetGetFlowStorageID());
if (ms != NULL && MacSetSize(ms) > 0) {
- jb_open_object(js, "ether");
+ SCJbOpenObject(js, "ether");
JSONMACAddrInfo info;
- info.dst = jb_new_array();
- info.src = jb_new_array();
+ info.dst = SCJbNewArray();
+ info.src = SCJbNewArray();
int ret = MacSetForEach(ms, MacSetIterateToJSON, &info);
if (unlikely(ret != 0)) {
/* should not happen, JSONFlowAppendMACAddrs is sane */
- jb_free(info.dst);
- jb_free(info.src);
- jb_close(js);
+ SCJbFree(info.dst);
+ SCJbFree(info.src);
+ SCJbClose(js);
return ret;
}
- jb_close(info.dst);
- jb_close(info.src);
+ SCJbClose(info.dst);
+ SCJbClose(info.src);
/* case is handling netflow too so may need to revert */
if (dir == LOG_DIR_FLOW_TOCLIENT) {
- jb_set_object(js, "dest_macs", info.src);
- jb_set_object(js, "src_macs", info.dst);
+ SCJbSetObject(js, "dest_macs", info.src);
+ SCJbSetObject(js, "src_macs", info.dst);
} else {
DEBUG_VALIDATE_BUG_ON(dir != LOG_DIR_FLOW_TOSERVER && dir != LOG_DIR_FLOW);
- jb_set_object(js, "dest_macs", info.dst);
- jb_set_object(js, "src_macs", info.src);
+ SCJbSetObject(js, "dest_macs", info.dst);
+ SCJbSetObject(js, "src_macs", info.src);
}
- jb_free(info.dst);
- jb_free(info.src);
- jb_close(js);
+ SCJbFree(info.dst);
+ SCJbFree(info.src);
+ SCJbClose(js);
}
}
return 0;
}
-JsonBuilder *CreateEveHeader(const Packet *p, enum OutputJsonLogDirection dir,
+SCJsonBuilder *CreateEveHeader(const Packet *p, enum OutputJsonLogDirection dir,
const char *event_type, JsonAddrInfo *addr, OutputJsonCtx *eve_ctx)
{
char timebuf[64];
const Flow *f = (const Flow *)p->flow;
- JsonBuilder *js = jb_new_object();
+ SCJsonBuilder *js = SCJbNewObject();
if (unlikely(js == NULL)) {
return NULL;
}
CreateIsoTimeString(p->ts, timebuf, sizeof(timebuf));
- jb_set_string(js, "timestamp", timebuf);
+ SCJbSetString(js, "timestamp", timebuf);
CreateEveFlowId(js, f);
/* sensor id */
if (sensor_id >= 0) {
- jb_set_uint(js, "sensor_id", sensor_id);
+ SCJbSetUint(js, "sensor_id", sensor_id);
}
/* input interface */
if (p->livedev) {
- jb_set_string(js, "in_iface", p->livedev->dev);
+ SCJbSetString(js, "in_iface", p->livedev->dev);
}
/* pcap_cnt */
if (p->pcap_cnt != 0) {
- jb_set_uint(js, "pcap_cnt", p->pcap_cnt);
+ SCJbSetUint(js, "pcap_cnt", p->pcap_cnt);
}
if (event_type) {
- jb_set_string(js, "event_type", event_type);
+ SCJbSetString(js, "event_type", event_type);
}
/* vlan */
if (p->vlan_idx > 0) {
- jb_open_array(js, "vlan");
- jb_append_uint(js, p->vlan_id[0]);
+ SCJbOpenArray(js, "vlan");
+ SCJbAppendUint(js, p->vlan_id[0]);
if (p->vlan_idx > 1) {
- jb_append_uint(js, p->vlan_id[1]);
+ SCJbAppendUint(js, p->vlan_id[1]);
}
if (p->vlan_idx > 2) {
- jb_append_uint(js, p->vlan_id[2]);
+ SCJbAppendUint(js, p->vlan_id[2]);
}
- jb_close(js);
+ SCJbClose(js);
}
/* 5-tuple */
addr = &addr_info;
}
if (addr->src_ip[0] != '\0') {
- jb_set_string(js, "src_ip", addr->src_ip);
+ SCJbSetString(js, "src_ip", addr->src_ip);
}
if (addr->log_port) {
- jb_set_uint(js, "src_port", addr->sp);
+ SCJbSetUint(js, "src_port", addr->sp);
}
if (addr->dst_ip[0] != '\0') {
- jb_set_string(js, "dest_ip", addr->dst_ip);
+ SCJbSetString(js, "dest_ip", addr->dst_ip);
}
if (addr->log_port) {
- jb_set_uint(js, "dest_port", addr->dp);
+ SCJbSetUint(js, "dest_port", addr->dp);
}
if (addr->proto[0] != '\0') {
- jb_set_string(js, "proto", addr->proto);
+ SCJbSetString(js, "proto", addr->proto);
}
/* icmp */
switch (p->proto) {
case IPPROTO_ICMP:
if (PacketIsICMPv4(p)) {
- jb_set_uint(js, "icmp_type", p->icmp_s.type);
- jb_set_uint(js, "icmp_code", p->icmp_s.code);
+ SCJbSetUint(js, "icmp_type", p->icmp_s.type);
+ SCJbSetUint(js, "icmp_code", p->icmp_s.code);
}
break;
case IPPROTO_ICMPV6:
if (PacketIsICMPv6(p)) {
- jb_set_uint(js, "icmp_type", PacketGetICMPv6(p)->type);
- jb_set_uint(js, "icmp_code", PacketGetICMPv6(p)->code);
+ SCJbSetUint(js, "icmp_type", PacketGetICMPv6(p)->type);
+ SCJbSetUint(js, "icmp_code", PacketGetICMPv6(p)->code);
}
break;
}
- jb_set_string(js, "pkt_src", PktSrcToString(p->pkt_src));
+ SCJbSetString(js, "pkt_src", PktSrcToString(p->pkt_src));
if (eve_ctx != NULL) {
EveAddCommonOptions(&eve_ctx->cfg, p, f, js, dir);
return js;
}
-JsonBuilder *CreateEveHeaderWithTxId(const Packet *p, enum OutputJsonLogDirection dir,
+SCJsonBuilder *CreateEveHeaderWithTxId(const Packet *p, enum OutputJsonLogDirection dir,
const char *event_type, JsonAddrInfo *addr, uint64_t tx_id, OutputJsonCtx *eve_ctx)
{
- JsonBuilder *js = CreateEveHeader(p, dir, event_type, addr, eve_ctx);
+ SCJsonBuilder *js = CreateEveHeader(p, dir, event_type, addr, eve_ctx);
if (unlikely(js == NULL))
return NULL;
/* tx id for correlation with other events */
- jb_set_uint(js, "tx_id", tx_id);
+ SCJbSetUint(js, "tx_id", tx_id);
return js;
}
}
void OutputJsonBuilderBuffer(
- ThreadVars *tv, const Packet *p, Flow *f, JsonBuilder *js, OutputJsonThreadCtx *ctx)
+ ThreadVars *tv, const Packet *p, Flow *f, SCJsonBuilder *js, OutputJsonThreadCtx *ctx)
{
LogFileCtx *file_ctx = ctx->file_ctx;
MemBuffer **buffer = &ctx->buffer;
if (file_ctx->sensor_name) {
- jb_set_string(js, "host", file_ctx->sensor_name);
+ SCJbSetString(js, "host", file_ctx->sensor_name);
}
if (file_ctx->is_pcap_offline) {
- jb_set_string(js, "pcap_filename", PcapFileGetFilename());
+ SCJbSetString(js, "pcap_filename", PcapFileGetFilename());
}
SCEveRunCallbacks(tv, p, f, js);
- jb_close(js);
+ SCJbClose(js);
MemBufferReset(*buffer);
MemBufferWriteRaw((*buffer), (const uint8_t *)file_ctx->prefix, file_ctx->prefix_len);
}
- size_t jslen = jb_len(js);
- DEBUG_VALIDATE_BUG_ON(jb_len(js) > UINT32_MAX);
+ size_t jslen = SCJbLen(js);
+ DEBUG_VALIDATE_BUG_ON(SCJbLen(js) > UINT32_MAX);
size_t remaining = MEMBUFFER_SIZE(*buffer) - MEMBUFFER_OFFSET(*buffer);
if (jslen >= remaining) {
size_t expand_by = jslen + 1 - remaining;
* message to hopefully identify the event_type. */
char partial[120];
size_t partial_len = MIN(sizeof(partial), jslen);
- memcpy(partial, jb_ptr(js), partial_len - 1);
+ memcpy(partial, SCJbPtr(js), partial_len - 1);
partial[partial_len - 1] = '\0';
SCLogWarning("Formatted JSON EVE record too large, will be dropped: %s", partial);
ctx->too_large_warning = true;
}
}
- MemBufferWriteRaw((*buffer), jb_ptr(js), (uint32_t)jslen);
+ MemBufferWriteRaw((*buffer), SCJbPtr(js), (uint32_t)jslen);
LogFileWrite(file_ctx, *buffer);
}
json_t *SCJsonString(const char *val);
-void CreateEveFlowId(JsonBuilder *js, const Flow *f);
-void EveFileInfo(JsonBuilder *js, const File *file, const uint64_t tx_id, const uint16_t flags);
-void EveTcpFlags(uint8_t flags, JsonBuilder *js);
-void EvePacket(const Packet *p, JsonBuilder *js, uint32_t max_length);
-JsonBuilder *CreateEveHeader(const Packet *p, enum OutputJsonLogDirection dir,
+void CreateEveFlowId(SCJsonBuilder *js, const Flow *f);
+void EveFileInfo(SCJsonBuilder *js, const File *file, const uint64_t tx_id, const uint16_t flags);
+void EveTcpFlags(uint8_t flags, SCJsonBuilder *js);
+void EvePacket(const Packet *p, SCJsonBuilder *js, uint32_t max_length);
+SCJsonBuilder *CreateEveHeader(const Packet *p, enum OutputJsonLogDirection dir,
const char *event_type, JsonAddrInfo *addr, OutputJsonCtx *eve_ctx);
-JsonBuilder *CreateEveHeaderWithTxId(const Packet *p, enum OutputJsonLogDirection dir,
+SCJsonBuilder *CreateEveHeaderWithTxId(const Packet *p, enum OutputJsonLogDirection dir,
const char *event_type, JsonAddrInfo *addr, uint64_t tx_id, OutputJsonCtx *eve_ctx);
int OutputJSONBuffer(json_t *js, LogFileCtx *file_ctx, MemBuffer **buffer);
void OutputJsonBuilderBuffer(
- ThreadVars *tv, const Packet *p, Flow *f, JsonBuilder *js, OutputJsonThreadCtx *ctx);
+ ThreadVars *tv, const Packet *p, Flow *f, SCJsonBuilder *js, OutputJsonThreadCtx *ctx);
OutputInitResult OutputJsonInitCtx(SCConfNode *);
OutputInitResult OutputJsonLogInitSub(SCConfNode *conf, OutputCtx *parent_ctx);
TmEcode JsonLogThreadDeinit(ThreadVars *t, void *data);
void EveAddCommonOptions(const OutputJsonCommonSettings *cfg, const Packet *p, const Flow *f,
- JsonBuilder *js, enum OutputJsonLogDirection dir);
+ SCJsonBuilder *js, enum OutputJsonLogDirection dir);
int OutputJsonLogFlush(ThreadVars *tv, void *thread_data, const Packet *p);
-void EveAddMetadata(const Packet *p, const Flow *f, JsonBuilder *js);
+void EveAddMetadata(const Packet *p, const Flow *f, SCJsonBuilder *js);
int OutputJSONMemBufferCallback(const char *str, size_t size, void *data);
OutputJsonThreadCtx *CreateEveThreadCtx(ThreadVars *t, OutputJsonCtx *ctx);
void FreeEveThreadCtx(OutputJsonThreadCtx *ctx);
-void JSONFormatAndAddMACAddr(JsonBuilder *js, const char *key, const uint8_t *val, bool is_array);
+void JSONFormatAndAddMACAddr(SCJsonBuilder *js, const char *key, const uint8_t *val, bool is_array);
void OutputJsonFlush(OutputJsonThreadCtx *ctx);
#endif /* SURICATA_OUTPUT_JSON_H */
return TM_ECODE_FAILED;
}
- JsonBuilder *js = CreateEveHeader(p, dir, al->name, NULL, thread->ctx);
+ SCJsonBuilder *js = CreateEveHeader(p, dir, al->name, NULL, thread->ctx);
if (unlikely(js == NULL)) {
return TM_ECODE_FAILED;
}
}
OutputJsonBuilderBuffer(tv, p, p->flow, js, thread);
- jb_free(js);
+ SCJbFree(js);
return TM_ECODE_OK;
error:
- jb_free(js);
+ SCJbFree(js);
return TM_ECODE_FAILED;
}
void OutputSetupActiveLoggers(void);
void OutputClearActiveLoggers(void);
-typedef bool (*EveJsonSimpleTxLogFunc)(void *, struct JsonBuilder *);
+typedef bool (*EveJsonSimpleTxLogFunc)(void *, struct SCJsonBuilder *);
typedef struct EveJsonSimpleAppLayerLogger {
EveJsonSimpleTxLogFunc LogTx;
#include "rust-context.h"
#include "rust-bindings.h"
-#define JB_SET_STRING(jb, key, val) jb_set_formatted((jb), "\"" key "\":\"" val "\"")
-#define JB_SET_TRUE(jb, key) jb_set_formatted((jb), "\"" key "\":true")
-#define JB_SET_FALSE(jb, key) jb_set_formatted((jb), "\"" key "\":false")
+#define JB_SET_STRING(jb, key, val) SCJbSetFormatted((jb), "\"" key "\":\"" val "\"")
+#define JB_SET_TRUE(jb, key) SCJbSetFormatted((jb), "\"" key "\":true")
+#define JB_SET_FALSE(jb, key) SCJbSetFormatted((jb), "\"" key "\":false")
#endif /* !SURICATA_RUST_H */
const char *file, unsigned line, const char *function, const char *module,
const char *message)
{
- JsonBuilder *js = jb_new_object();
+ SCJsonBuilder *js = SCJbNewObject();
if (unlikely(js == NULL))
goto error;
char timebuf[64];
CreateIsoTimeString(tval, timebuf, sizeof(timebuf));
- jb_set_string(js, "timestamp", timebuf);
+ SCJbSetString(js, "timestamp", timebuf);
const char *s = SCMapEnumValueToName(log_level, sc_log_level_map);
if (s != NULL) {
- jb_set_string(js, "log_level", s);
+ SCJbSetString(js, "log_level", s);
} else {
JB_SET_STRING(js, "log_level", "INVALID");
}
JB_SET_STRING(js, "event_type", "engine");
- jb_open_object(js, "engine");
+ SCJbOpenObject(js, "engine");
if (message)
- jb_set_string(js, "message", message);
+ SCJbSetString(js, "message", message);
if (t_thread_name[0] != '\0') {
- jb_set_string(js, "thread_name", t_thread_name);
+ SCJbSetString(js, "thread_name", t_thread_name);
}
if (module) {
int dn_len = 0;
const char *dn_name;
dn_name = SCTransformModule(module, &dn_len);
- jb_set_string(js, "module", dn_name);
+ SCJbSetString(js, "module", dn_name);
}
if (log_level >= SC_LOG_DEBUG) {
if (function)
- jb_set_string(js, "function", function);
+ SCJbSetString(js, "function", function);
if (file)
- jb_set_string(js, "file", file);
+ SCJbSetString(js, "file", file);
if (line > 0)
- jb_set_uint(js, "line", line);
+ SCJbSetUint(js, "line", line);
}
- jb_close(js); // engine
+ SCJbClose(js); // engine
- jb_close(js);
- memcpy(buffer, jb_ptr(js), MIN(buffer_size, jb_len(js)));
+ SCJbClose(js);
+ memcpy(buffer, SCJbPtr(js), MIN(buffer_size, SCJbLen(js)));
- jb_free(js);
+ SCJbFree(js);
return 0;