summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2023-02-25 01:20:23 +0100
committerToni Uhlig <matzeton@googlemail.com>2023-02-27 01:20:23 +0100
commit0a959993bc3b448e28f780f1388a6064f0a039a3 (patch)
tree16a6f2730a4c2d3bd29d44604df1404acd0c23c8 /examples
parent4236aafa0dc68caeea85c785c83524ecb2b87783 (diff)
Improved:
* Gitlab-CI: build nDPId executable from CLI * C-Simple: log affected JSON line on READ/PARSE error * Sklearn: quality of life changes Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/c-simple/c-simple.c10
-rwxr-xr-xexamples/py-machine-learning/sklearn-random-forest.py17
2 files changed, 23 insertions, 4 deletions
diff --git a/examples/c-simple/c-simple.c b/examples/c-simple/c-simple.c
index a923d1424..642611f07 100644
--- a/examples/c-simple/c-simple.c
+++ b/examples/c-simple/c-simple.c
@@ -253,14 +253,20 @@ int main(int argc, char ** argv)
enum nDPIsrvd_parse_return parse_ret = nDPIsrvd_parse_all(sock);
if (parse_ret != PARSE_NEED_MORE_DATA)
{
- printf("Could not parse json string: %s\n", nDPIsrvd_enum_to_string(parse_ret));
+ printf("Could not parse json string %s: %.*s\n",
+ nDPIsrvd_enum_to_string(parse_ret),
+ nDPIsrvd_json_buffer_length(sock),
+ nDPIsrvd_json_buffer_string(sock));
break;
}
}
if (main_thread_shutdown == 0 && read_ret != READ_OK)
{
- printf("Parse read %s\n", nDPIsrvd_enum_to_string(read_ret));
+ printf("Parse read %s at JSON: %.*s\n",
+ nDPIsrvd_enum_to_string(read_ret),
+ nDPIsrvd_json_buffer_length(sock),
+ nDPIsrvd_json_buffer_string(sock));
}
return 1;
diff --git a/examples/py-machine-learning/sklearn-random-forest.py b/examples/py-machine-learning/sklearn-random-forest.py
index 9103bb427..275376ba2 100755
--- a/examples/py-machine-learning/sklearn-random-forest.py
+++ b/examples/py-machine-learning/sklearn-random-forest.py
@@ -168,6 +168,9 @@ def onJsonLineRecvd(json_dict, instance, current_flow, global_user_data):
return True
def isProtoClass(proto_class, line):
+ if type(proto_class) != list or type(line) != str:
+ raise TypeError('Invalid type: {}/{}.'.format(type(proto_class), type(line)))
+
s = line.lower()
for x in range(len(proto_class)):
@@ -278,9 +281,19 @@ if __name__ == '__main__':
for line in reader:
try:
X += getRelevantFeaturesCSV(line)
- y += [isProtoClass(args.proto_class, line['proto'])]
except RuntimeError as err:
- print('Error: `{}\'\non line {}: {}'.format(err, reader.line_num - 1, line))
+ print('Runtime Error: `{}\'\non line {}: {}'.format(err, reader.line_num - 1, line))
+ continue
+ except TypeError as err:
+ print('Type Error: `{}\'\non line {}: {}'.format(err, reader.line_num - 1, line))
+ continue
+
+ try:
+ y += [isProtoClass(args.proto_class, line['proto'])]
+ except TypeError as err:
+ X.pop()
+ print('Type Error: `{}\'\non line {}: {}'.format(err, reader.line_num - 1, line))
+ continue
sys.stderr.write('CSV data set contains {} entries.\n'.format(len(X)))