aboutsummaryrefslogtreecommitdiff
path: root/example/ndpiReader.c
diff options
context:
space:
mode:
authorAlfredo Cardigliano <alfredo.cardigliano@gmail.com>2019-09-10 14:47:47 +0200
committerAlfredo Cardigliano <alfredo.cardigliano@gmail.com>2019-09-10 14:47:47 +0200
commitb96b61844389fbf9334033eae7dfd3f2d6dc3828 (patch)
tree0d84cd87e8292b41f8774e5c44f0f46c8e6939d2 /example/ndpiReader.c
parent65bdd0de9a420cd319fd7812bde81354e6eed825 (diff)
nDPI serialization: uint key compression, new deserialization API
Diffstat (limited to 'example/ndpiReader.c')
-rw-r--r--example/ndpiReader.c74
1 files changed, 34 insertions, 40 deletions
diff --git a/example/ndpiReader.c b/example/ndpiReader.c
index 5998a37b5..479586369 100644
--- a/example/ndpiReader.c
+++ b/example/ndpiReader.c
@@ -3418,7 +3418,8 @@ void serializerUnitTest() {
assert(ndpi_init_deserializer(&deserializer, &serializer) != -1);
while(1) {
- ndpi_serialization_element_type et = ndpi_deserialize_get_nextitem_type(&deserializer);
+ ndpi_serialization_type kt, et;
+ et = ndpi_deserialize_get_item_type(&deserializer, &kt);
if(et == ndpi_serialization_unknown)
break;
@@ -3426,63 +3427,56 @@ void serializerUnitTest() {
u_int32_t k32, v32;
ndpi_string ks, vs;
float vf;
-
+
+ switch(kt) {
+ case ndpi_serialization_uint32:
+ ndpi_deserialize_key_uint32(&deserializer, &k32);
+ if(trace) printf("%u=", k32);
+ break;
+ case ndpi_serialization_string:
+ ndpi_deserialize_key_string(&deserializer, &ks);
+ if (trace) {
+ u_int8_t bkp = ks.str[ks.str_len];
+ ks.str[ks.str_len] = '\0';
+ printf("%s=", ks.str);
+ ks.str[ks.str_len] = bkp;
+ }
+ break;
+ default:
+ printf("Unsupported TLV key type %u\n", kt);
+ return;
+ }
+
switch(et) {
- case ndpi_serialization_uint32_uint32:
- assert(ndpi_deserialize_uint32_uint32(&deserializer, &k32, &v32) != -1);
- if(trace) printf("%u=%u\n", k32, v32);
+ case ndpi_serialization_uint32:
+ assert(ndpi_deserialize_value_uint32(&deserializer, &v32) != -1);
+ if(trace) printf("%u\n", v32);
break;
- case ndpi_serialization_uint32_string:
- assert(ndpi_deserialize_uint32_string(&deserializer, &k32, &vs) != -1);
+ case ndpi_serialization_string:
+ assert(ndpi_deserialize_value_string(&deserializer, &vs) != -1);
if(trace) {
u_int8_t bkp = vs.str[vs.str_len];
-
vs.str[vs.str_len] = '\0';
- printf("%u=%s\n", k32, vs.str);
+ printf("%s\n", vs.str);
vs.str[vs.str_len] = bkp;
}
break;
- case ndpi_serialization_string_string:
- assert(ndpi_deserialize_string_string(&deserializer, &ks, &vs) != -1);
- if(trace) {
- u_int8_t bkpk = ks.str[ks.str_len], bkp = vs.str[vs.str_len];
-
- ks.str[ks.str_len] = vs.str[vs.str_len] = '\0';
- printf("%s=%s\n", ks.str, vs.str);
- ks.str[ks.str_len] = bkpk, vs.str[vs.str_len] = bkp;
- }
- break;
-
- case ndpi_serialization_string_uint32:
- assert(ndpi_deserialize_string_uint32(&deserializer, &ks, &v32) != -1);
- if(trace) {
- u_int8_t bkpk = ks.str[ks.str_len];
-
- ks.str[ks.str_len] = '\0';
- printf("%s=%u\n", ks.str, v32);
- ks.str[ks.str_len] = bkpk;
- }
- break;
-
- case ndpi_serialization_string_float:
- assert(ndpi_deserialize_string_float(&deserializer, &ks, &vf) != -1);
- if(trace) {
- u_int8_t bkpk = ks.str[ks.str_len];
-
- ks.str[ks.str_len] = '\0';
- printf("%s=%f\n", ks.str, vf);
- ks.str[ks.str_len] = bkpk;
- }
+ case ndpi_serialization_float:
+ assert(ndpi_deserialize_value_float(&deserializer, &vf) != -1);
+ if(trace) printf("%f\n", vf);
break;
default:
+ if (trace) printf("\n");
printf("serializerUnitTest: unsupported type %u detected!\n", et);
return;
break;
}
}
+
+ ndpi_deserialize_next(&deserializer);
}
ndpi_term_serializer(&serializer);