aboutsummaryrefslogtreecommitdiff
path: root/example/ndpiReader.c
diff options
context:
space:
mode:
Diffstat (limited to 'example/ndpiReader.c')
-rw-r--r--example/ndpiReader.c152
1 files changed, 81 insertions, 71 deletions
diff --git a/example/ndpiReader.c b/example/ndpiReader.c
index 0a992b286..b40b7d30e 100644
--- a/example/ndpiReader.c
+++ b/example/ndpiReader.c
@@ -3082,87 +3082,95 @@ void automataUnitTest() {
void serializerUnitTest() {
ndpi_serializer serializer, deserializer;
- int i;
+ int i, loop_id;
u_int8_t trace = 0;
- ndpi_serialization_format fmt = ndpi_serialization_format_tlv;
-
- //trace = 1;
- //fmt = ndpi_serialization_format_json;
- //fmt = ndpi_serialization_format_csv;
+ ndpi_serialization_format fmt;
- assert(ndpi_init_serializer(&serializer, fmt) != -1);
-
- for(i=0; i<16; i++) {
- char kbuf[32], vbuf[32];
- snprintf(kbuf, sizeof(kbuf), "Key %d", i);
- snprintf(vbuf, sizeof(vbuf), "Value %d", i);
- assert(ndpi_serialize_uint32_uint32(&serializer, i, i*i) != -1);
- assert(ndpi_serialize_uint32_string(&serializer, i, "Data") != -1);
- assert(ndpi_serialize_string_string(&serializer, kbuf, vbuf) != -1);
- assert(ndpi_serialize_string_uint32(&serializer, kbuf, i*i) != -1);
- assert(ndpi_serialize_string_float(&serializer, kbuf, (float)(i*i), "%f") != -1);
- if ((i&0x3) == 0x3) ndpi_serialize_end_of_record(&serializer);
- }
+ for(loop_id=0; loop_id<3; loop_id++) {
+ switch(loop_id) {
+ case 0:
+ fmt = ndpi_serialization_format_tlv;
+ break;
- if (fmt == ndpi_serialization_format_json) {
+ case 1:
+ fmt = ndpi_serialization_format_json;
+ break;
- assert(ndpi_serialize_start_of_list(&serializer, "List") != -1);
+ case 2:
+ fmt = ndpi_serialization_format_csv;
+ break;
+ }
+ assert(ndpi_init_serializer(&serializer, fmt) != -1);
- for(i=0; i<4; i++) {
+ for(i=0; i<16; i++) {
char kbuf[32], vbuf[32];
- snprintf(kbuf, sizeof(kbuf), "Ignored");
- snprintf(vbuf, sizeof(vbuf), "Item %d", i);
+ snprintf(kbuf, sizeof(kbuf), "Key %d", i);
+ snprintf(vbuf, sizeof(vbuf), "Value %d", i);
assert(ndpi_serialize_uint32_uint32(&serializer, i, i*i) != -1);
+ assert(ndpi_serialize_uint32_string(&serializer, i, "Data") != -1);
assert(ndpi_serialize_string_string(&serializer, kbuf, vbuf) != -1);
+ assert(ndpi_serialize_string_uint32(&serializer, kbuf, i*i) != -1);
assert(ndpi_serialize_string_float(&serializer, kbuf, (float)(i*i), "%f") != -1);
+ if ((i&0x3) == 0x3) ndpi_serialize_end_of_record(&serializer);
}
- assert(ndpi_serialize_end_of_list(&serializer) != -1);
- assert(ndpi_serialize_string_string(&serializer, "Last", "Ok") != -1);
- if(trace) {
- u_int32_t buffer_len = 0;
- char *buffer = ndpi_serializer_get_buffer(&serializer, &buffer_len);
- printf("%s\n", buffer);
- exit(0);
- }
+ if (fmt == ndpi_serialization_format_json) {
+ assert(ndpi_serialize_start_of_list(&serializer, "List") != -1);
- } else if (fmt == ndpi_serialization_format_csv) {
+ for(i=0; i<4; i++) {
+ char kbuf[32], vbuf[32];
+ snprintf(kbuf, sizeof(kbuf), "Ignored");
+ snprintf(vbuf, sizeof(vbuf), "Item %d", i);
+ assert(ndpi_serialize_uint32_uint32(&serializer, i, i*i) != -1);
+ assert(ndpi_serialize_string_string(&serializer, kbuf, vbuf) != -1);
+ assert(ndpi_serialize_string_float(&serializer, kbuf, (float)(i*i), "%f") != -1);
+ }
+ assert(ndpi_serialize_end_of_list(&serializer) != -1);
+ assert(ndpi_serialize_string_string(&serializer, "Last", "Ok") != -1);
+
+ if(trace) {
+ u_int32_t buffer_len = 0;
+ char *buffer = ndpi_serializer_get_buffer(&serializer, &buffer_len);
+ printf("%s\n", buffer);
+ exit(0);
+ }
+ } else if (fmt == ndpi_serialization_format_csv) {
+ if(trace) {
+ u_int32_t buffer_len = 0;
+ char *buffer;
- if(trace) {
- u_int32_t buffer_len = 0;
- char *buffer;
+ buffer = ndpi_serializer_get_header(&serializer, &buffer_len);
+ printf("%s\n", buffer);
- buffer = ndpi_serializer_get_header(&serializer, &buffer_len);
- printf("%s\n", buffer);
+ buffer = ndpi_serializer_get_buffer(&serializer, &buffer_len);
+ printf("%s\n", buffer);
- buffer = ndpi_serializer_get_buffer(&serializer, &buffer_len);
- printf("%s\n", buffer);
+ exit(0);
+ }
- exit(0);
- }
+ } else {
+ if(trace)
+ printf("Serialization size: %u\n", ndpi_serializer_get_buffer_len(&serializer));
- } else {
- if(trace)
- printf("Serialization size: %u\n", ndpi_serializer_get_buffer_len(&serializer));
+ assert(ndpi_init_deserializer(&deserializer, &serializer) != -1);
- assert(ndpi_init_deserializer(&deserializer, &serializer) != -1);
+ while(1) {
+ ndpi_serialization_type kt, et;
- while(1) {
- ndpi_serialization_type kt, et;
- et = ndpi_deserialize_get_item_type(&deserializer, &kt);
+ et = ndpi_deserialize_get_item_type(&deserializer, &kt);
- if(et == ndpi_serialization_unknown)
- break;
- else {
- u_int32_t k32, v32;
- ndpi_string ks, vs;
- float vf;
+ if(et == ndpi_serialization_unknown)
+ break;
+ else {
+ u_int32_t k32, v32;
+ ndpi_string ks, vs;
+ float vf;
- switch(kt) {
+ switch(kt) {
case ndpi_serialization_uint32:
ndpi_deserialize_key_uint32(&deserializer, &k32);
if(trace) printf("%u=", k32);
- break;
+ break;
case ndpi_serialization_string:
ndpi_deserialize_key_string(&deserializer, &ks);
if (trace) {
@@ -3171,17 +3179,18 @@ void serializerUnitTest() {
printf("%s=", ks.str);
ks.str[ks.str_len] = bkp;
}
- break;
+ break;
default:
- printf("Unsupported TLV key type %u\n", kt);
- return;
- }
+ printf("ERROR: Unsupported TLV key type %u\n", kt);
+ // exit(0);
+ return;
+ }
- switch(et) {
+ switch(et) {
case ndpi_serialization_uint32:
assert(ndpi_deserialize_value_uint32(&deserializer, &v32) != -1);
if(trace) printf("%u\n", v32);
- break;
+ break;
case ndpi_serialization_string:
assert(ndpi_deserialize_value_string(&deserializer, &vs) != -1);
@@ -3191,25 +3200,26 @@ void serializerUnitTest() {
printf("%s\n", vs.str);
vs.str[vs.str_len] = bkp;
}
- break;
+ break;
case ndpi_serialization_float:
assert(ndpi_deserialize_value_float(&deserializer, &vf) != -1);
if(trace) printf("%f\n", vf);
- break;
+ break;
default:
if (trace) printf("\n");
printf("serializerUnitTest: unsupported type %u detected!\n", et);
- return;
- }
- }
+ return;
+ }
+ }
- ndpi_deserialize_next(&deserializer);
+ ndpi_deserialize_next(&deserializer);
+ }
}
- }
- ndpi_term_serializer(&serializer);
+ ndpi_term_serializer(&serializer);
+ }
}
/* *********************************************** */