mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Change from_json to return an error rather than print it.
This commit is contained in:
parent
8054547712
commit
9ef579b09e
25 changed files with 24 additions and 36 deletions
|
@ -1477,6 +1477,7 @@ function from_json_default_key_mapper(s: string): string
|
||||||
type from_json_result: record {
|
type from_json_result: record {
|
||||||
v: any &optional; ##< Parsed value.
|
v: any &optional; ##< Parsed value.
|
||||||
valid: bool; ##< True if parsing was successful.
|
valid: bool; ##< True if parsing was successful.
|
||||||
|
err: string &optional; ## Error string if unsuccessful.
|
||||||
};
|
};
|
||||||
|
|
||||||
# TCP values for :zeek:see:`endpoint` *state* field.
|
# TCP values for :zeek:see:`endpoint` *state* field.
|
||||||
|
|
|
@ -5240,7 +5240,7 @@ function to_json%(val: any, only_loggable: bool &default=F, field_escape_pattern
|
||||||
## when keys are not valid field identifiers, or represent reserved
|
## when keys are not valid field identifiers, or represent reserved
|
||||||
## keywords like **port** or **type**.
|
## keywords like **port** or **type**.
|
||||||
##
|
##
|
||||||
## returns: A value of type t.
|
## returns: A record either contining a value of type t as field v with valid=T or valid=F and err contains the error.
|
||||||
##
|
##
|
||||||
## .. zeek:see:: to_json
|
## .. zeek:see:: to_json
|
||||||
function from_json%(s: string, t: any, key_func: string_mapper &default=from_json_default_key_mapper%): from_json_result
|
function from_json%(s: string, t: any, key_func: string_mapper &default=from_json_default_key_mapper%): from_json_result
|
||||||
|
@ -5276,7 +5276,7 @@ function from_json%(s: string, t: any, key_func: string_mapper &default=from_jso
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rval->Assign(valid_idx, false);
|
rval->Assign(valid_idx, false);
|
||||||
zeek::emit_builtin_error(res.error().c_str());
|
rval->Assign(result_type->FieldOffset("err"), res.error().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
return std::move(rval);
|
return std::move(rval);
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
[v={
|
[v={
|
||||||
fe80::/64,
|
fe80::/64,
|
||||||
192.168.0.0/16
|
192.168.0.0/16
|
||||||
}, valid=T]
|
}, valid=T, err=<uninitialized>]
|
||||||
[v=[1, 3, 4], valid=T]
|
[v=[1, 3, 4], valid=T, err=<uninitialized>]
|
||||||
|
|
|
@ -1,3 +1 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
error in <...>/from_json.zeek, line 8: required field Foo$hello is missing in JSON (from_json({"t":null}, to_any_coerce Foo, from_json_default_key_mapper))
|
|
||||||
error in <...>/from_json.zeek, line 9: required field Foo$hello is null in JSON (from_json({"hello": null, "t": true}, to_any_coerce Foo, from_json_default_key_mapper))
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
[v=<uninitialized>, valid=F]
|
[v=<uninitialized>, valid=F, err=required field Foo$hello is missing in JSON]
|
||||||
[v=<uninitialized>, valid=F]
|
[v=<uninitialized>, valid=F, err=required field Foo$hello is null in JSON]
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
[v=[hello=Hello!], valid=T]
|
[v=[hello=Hello!], valid=T, err=<uninitialized>]
|
||||||
|
|
|
@ -1,2 +1 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
error in <...>/from_json.zeek, line 7: required field Foo$id_field is missing in JSON (from_json({"id-field": "Hello!"}, to_any_coerce Foo, from_json_default_key_mapper))
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
[v=<uninitialized>, valid=F]
|
[v=<uninitialized>, valid=F, err=required field Foo$id_field is missing in JSON]
|
||||||
[v=[id_field=Hello!], valid=T]
|
[v=[id_field=Hello!], valid=T, err=<uninitialized>]
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
[v=<uninitialized>, valid=F]
|
[v=<uninitialized>, valid=F, err=<uninitialized>]
|
||||||
|
|
|
@ -1,2 +1 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
error in <...>/from_json.zeek, line 4: JSON parse error: Missing a closing quotation mark in string. Offset: 5 (from_json({"hel, to_any_coerce string_vec, from_json_default_key_mapper))
|
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
[v=<uninitialized>, valid=F]
|
[v=<uninitialized>, valid=F, err=JSON parse error: Missing a closing quotation mark in string. Offset: 5]
|
||||||
|
|
|
@ -1,3 +1 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
error in <...>/from_json.zeek, line 9: cannot convert JSON type 'array' to Zeek type 'bool' (from_json([], to_any_coerce bool_t, from_json_default_key_mapper))
|
|
||||||
error in <...>/from_json.zeek, line 10: cannot convert JSON type 'string' to Zeek type 'bool' (from_json({"a": "hello"}, to_any_coerce Foo, from_json_default_key_mapper))
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
[v=<uninitialized>, valid=F]
|
[v=<uninitialized>, valid=F, err=cannot convert JSON type 'array' to Zeek type 'bool']
|
||||||
[v=<uninitialized>, valid=F]
|
[v=<uninitialized>, valid=F, err=cannot convert JSON type 'string' to Zeek type 'bool']
|
||||||
|
|
|
@ -1,2 +1 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
error in <...>/from_json.zeek, line 4: cannot convert JSON type 'array' to Zeek type 'table' (from_json([], to_any_coerce table_string_of_string, from_json_default_key_mapper))
|
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
[v=<uninitialized>, valid=F]
|
[v=<uninitialized>, valid=F, err=cannot convert JSON type 'array' to Zeek type 'table']
|
||||||
|
|
|
@ -1,3 +1 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
error in <...>/from_json.zeek, line 8: wrong port format, string must be <...>/(tcp|udp|icmp|unknown)/ (from_json("80", to_any_coerce port_t, from_json_default_key_mapper))
|
|
||||||
error in <...>/from_json.zeek, line 9: wrong port format, object must have 'port' and 'proto' members (from_json({}, to_any_coerce port_t, from_json_default_key_mapper))
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
[v=80/tcp, valid=T]
|
[v=80/tcp, valid=T, err=<uninitialized>]
|
||||||
[v=<uninitialized>, valid=F]
|
[v=<uninitialized>, valid=F, err=wrong port format, string must be /[0-9]{1,5}\/(tcp|udp|icmp|unknown)/]
|
||||||
[v=<uninitialized>, valid=F]
|
[v=<uninitialized>, valid=F, err=wrong port format, object must have 'port' and 'proto' members]
|
||||||
|
|
|
@ -1,3 +1 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
error in <...>/from_json.zeek, line 5: index type doesn't match (from_json([[1, false], [2]], to_any_coerce set_t, from_json_default_key_mapper))
|
|
||||||
error in <...>/from_json.zeek, line 6: cannot convert JSON type 'number' to Zeek type 'bool' (from_json([[1, false], [2, 1]], to_any_coerce set_t, from_json_default_key_mapper))
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
[v=<uninitialized>, valid=F]
|
[v=<uninitialized>, valid=F, err=index type doesn't match]
|
||||||
[v=<uninitialized>, valid=F]
|
[v=<uninitialized>, valid=F, err=cannot convert JSON type 'number' to Zeek type 'bool']
|
||||||
|
|
|
@ -1,3 +1,2 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
error: error compiling pattern /^?(.|\n)*(([[:print:]]{-}[[:alnum:]]foo))/
|
error: error compiling pattern /^?(.|\n)*(([[:print:]]{-}[[:alnum:]]foo))/
|
||||||
error in <...>/from_json.zeek, line 5: error compiling pattern (from_json("/([[:print:]]{-}[[:alnum:]]foo)/", to_any_coerce pattern_t, from_json_default_key_mapper))
|
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
[v=<uninitialized>, valid=F]
|
[v=<uninitialized>, valid=F, err=error compiling pattern]
|
||||||
|
|
|
@ -1,2 +1 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
error in <...>/from_json.zeek, line 7: 'Yellow' is not a valid enum for 'Color'. (from_json("Yellow", to_any_coerce Color, from_json_default_key_mapper))
|
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
[v=<uninitialized>, valid=F]
|
[v=<uninitialized>, valid=F, err='Yellow' is not a valid enum for 'Color'.]
|
||||||
|
|
|
@ -7,4 +7,4 @@ aa:bb::/32,
|
||||||
[2001:db8::1, 8080/udp]
|
[2001:db8::1, 8080/udp]
|
||||||
}, tbl={
|
}, tbl={
|
||||||
[192.168.0.1, 80/tcp] = foo
|
[192.168.0.1, 80/tcp] = foo
|
||||||
}], valid=T]
|
}], valid=T, err=<uninitialized>]
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
[v=aoeu, valid=T]
|
[v=aoeu, valid=T, err=<uninitialized>]
|
||||||
type
|
type
|
||||||
double
|
double
|
||||||
vector of int
|
vector of int
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue