Diff for /libelwix/example/test_tlv.c between versions 1.1.2.1 and 1.1.2.2

version 1.1.2.1, 2022/01/24 16:01:49 version 1.1.2.2, 2022/01/24 17:07:24
Line 1 Line 1
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
   #include <unistd.h>
   #include <fcntl.h>
 #include <elwix.h>  #include <elwix.h>
   
   
   static void
   display(array_t *arr)
   {
           register int i;
   
           for (i = 0; i < array_Size(arr); i++) {
                   if (AIT_TYPE(array(arr, i, ait_val_t*)) == string)
                           printf("arr[%d]=%s (%d)\n", i, AIT_ADDR(array(arr, i, ait_val_t*)), 
                                           AIT_LEN(array(arr, i, ait_val_t*)));
                   else
                           printf("arr[%d]#%ld (%d)\n", i, AIT_RAW(array(arr, i, ait_val_t*)), 
                                           AIT_LEN(array(arr, i, ait_val_t*)));
           }
   }
   
 int  int
 main(int argc, char **argv)  main(int argc, char **argv)
 {  {
         array_t *arr;          array_t *arr;
        register int i;        u_char buf[BUFSIZ];
         int f, len, ret = 0;
   
         arr = ait_array2vars((const char**) argv, 42);          arr = ait_array2vars((const char**) argv, 42);
         if (!arr)          if (!arr)
                 return 1;                  return 1;
   
        for (i = 0; i < array_Size(arr); i++) {        display(arr);
                if (AIT_TYPE(array(arr, i, ait_val_t*)) == string)
                        printf("arr[%d]=%s\n", i, AIT_ADDR(array(arr, i, ait_val_t*)));        printf("\nNeeded buffer size = %d\n", ait_vars2tlv(NULL, 0, arr));
                else        printf("Serialized data to buffer = %d\n", (len = ait_vars2tlv(buf, sizeof buf, arr)));
                        printf("arr[%d]#%ld\n", i, AIT_RAW(array(arr, i, ait_val_t*)));
         f = open("test_tlv.bin", O_CREAT | O_WRONLY, 0644);
         if (f == -1) {
                 ret = 2;
                 goto err;
         }          }
           if ((len = write(f, buf, len)) == -1) {
                   ret = 3;
                   goto err;
           } else
                   printf("Wrote %d bytes to file test_tlv.bin\n", len);
   
         ait_freeVars(&arr);          ait_freeVars(&arr);
        return 0;
         arr = ait_tlv2vars(buf, len);
         if (!arr) {
                 ret = 4;
                 goto err;
         }
         printf("\n>>> Built vars array from TLV buffer\n\n");
         display(arr);
 
         arr = ait_tlv2vars(buf, sizeof buf);
         if (!arr) {
                 ret = 5;
                 goto err;
         }
         printf("\n>>> Built vars array from TLV buffer with zeros at the end\n\n");
         display(arr);
 err:
         if (f > 2)
                 close(f);
         ait_freeVars(&arr);
         return ret;
 }  }

Removed from v.1.1.2.1  
changed lines
  Added in v.1.1.2.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>