papi: remove shared memory transport
[vpp.git] / src / vat2 / jsonconvert.c
index ec06628..645f7d4 100644 (file)
@@ -42,7 +42,8 @@ int vl_api_u8_string_fromjson(cJSON *o, u8 *s, int len)
     unformat_input_t input;
     char *p = cJSON_GetStringValue(o);
     unformat_init_string (&input, p, strlen(p));
-    unformat(&input, "0x%U", unformat_hex_string, s);
+    if (!unformat (&input, "0x%U", unformat_hex_string, s))
+      return -1;
     return 0;
 }
 
@@ -59,7 +60,8 @@ u8string_fromjson(cJSON *o, char *fieldname)
 
     char *p = cJSON_GetStringValue(item);
     unformat_init_string (&input, p, strlen(p));
-    unformat(&input, "0x%U", unformat_hex_string, &s);
+    if (!unformat (&input, "0x%U", unformat_hex_string, &s))
+      return 0;
     return s;
 }
 
@@ -67,7 +69,8 @@ int
 u8string_fromjson2(cJSON *o, char *fieldname, u8 *data)
 {
     u8 *s = u8string_fromjson(o, fieldname);
-    if (!s) return 0;
+    if (!s)
+      return -1;
     memcpy(data, s, vec_len(s));
     vec_free(s);
     return 0;
@@ -258,78 +261,103 @@ format_ip6_address (u8 * s, va_list * args)
   return s;
 }
 
-void *vl_api_ip4_address_t_fromjson(void *mp, int *len, cJSON *o, vl_api_ip4_address_t *a)
+int
+vl_api_ip4_address_t_fromjson (void **mp, int *len, cJSON *o,
+                              vl_api_ip4_address_t *a)
 {
     unformat_input_t input;
     char *p = cJSON_GetStringValue(o);
-    if (!p) return 0;
+    if (!p)
+      return -1;
     unformat_init_string (&input, p, strlen(p));
-    unformat(&input, "%U", unformat_ip4_address, a);
-    return mp;
+    if (!unformat (&input, "%U", unformat_ip4_address, a))
+      return -1;
+    return 0;
 }
 
-void *vl_api_ip4_prefix_t_fromjson(void *mp, int *len, cJSON *o, vl_api_ip4_prefix_t *a)
+int
+vl_api_ip4_prefix_t_fromjson (void **mp, int *len, cJSON *o,
+                             vl_api_ip4_prefix_t *a)
 {
     unformat_input_t input;
     char *p = cJSON_GetStringValue(o);
-    if (!p) return 0;
+    if (!p)
+      return -1;
     unformat_init_string (&input, p, strlen(p));
-    unformat(&input, "%U/%d", unformat_ip4_address, &a->address, &a->len);
-    return mp;
+    if (!unformat (&input, "%U/%d", unformat_ip4_address, &a->address,
+                  &a->len))
+      return -1;
+    return 0;
 }
 
-void *vl_api_ip4_address_with_prefix_t_fromjson(void *mp, int *len, cJSON *o, vl_api_ip4_prefix_t *a)
+int
+vl_api_ip4_address_with_prefix_t_fromjson (void **mp, int *len, cJSON *o,
+                                          vl_api_ip4_prefix_t *a)
 {
   return vl_api_ip4_prefix_t_fromjson(mp, len, o, a);
 }
-void *vl_api_ip6_address_t_fromjson(void *mp, int *len, cJSON *o, vl_api_ip6_address_t *a)
+int
+vl_api_ip6_address_t_fromjson (void **mp, int *len, cJSON *o,
+                              vl_api_ip6_address_t *a)
 {
     unformat_input_t input;
     char *p = cJSON_GetStringValue(o);
-    if (!p) return 0;
+    if (!p)
+      return -1;
     unformat_init_string (&input, p, strlen(p));
-    unformat(&input, "%U", unformat_ip6_address, a);
-    return mp;
+    if (!unformat (&input, "%U", unformat_ip6_address, a))
+      return -1;
+    return 0;
 }
 
-void *vl_api_ip6_prefix_t_fromjson(void *mp, int *len, cJSON *o, vl_api_ip6_prefix_t *a)
+int
+vl_api_ip6_prefix_t_fromjson (void **mp, int *len, cJSON *o,
+                             vl_api_ip6_prefix_t *a)
 {
   unformat_input_t input;
   char *p = cJSON_GetStringValue(o);
-  if (!p) return 0;
+  if (!p)
+    return -1;
   unformat_init_string (&input, p, strlen(p));
-  unformat(&input, "%U/%d", unformat_ip6_address, &a->address, &a->len);
-  return mp;
+  if (!unformat (&input, "%U/%d", unformat_ip6_address, &a->address, &a->len))
+    return -1;
+  return 0;
 }
 
-void *vl_api_ip6_address_with_prefix_t_fromjson(void *mp, int *len, cJSON *o, vl_api_ip6_prefix_t *a)
+int
+vl_api_ip6_address_with_prefix_t_fromjson (void **mp, int *len, cJSON *o,
+                                          vl_api_ip6_prefix_t *a)
 {
   return vl_api_ip6_prefix_t_fromjson(mp, len, o, a);
 }
 
-void *vl_api_address_t_fromjson(void *mp, int *len, cJSON *o, vl_api_address_t *a)
+int
+vl_api_address_t_fromjson (void **mp, int *len, cJSON *o, vl_api_address_t *a)
 {
   unformat_input_t input;
 
   char *p = cJSON_GetStringValue(o);
-  if (!p) return 0;
+  if (!p)
+    return -1;
   unformat_init_string (&input, p, strlen(p));
   if (unformat (&input, "%U", unformat_ip4_address, &a->un.ip4))
     a->af = ADDRESS_IP4;
   else if (unformat (&input, "%U", unformat_ip6_address, &a->un.ip6))
     a->af = ADDRESS_IP6;
   else
-    return (0);
-  return mp;
+    return -1;
+  return 0;
 }
 
-void *vl_api_prefix_t_fromjson(void *mp, int *len, cJSON *o, vl_api_prefix_t *a)
+int
+vl_api_prefix_t_fromjson (void **mp, int *len, cJSON *o, vl_api_prefix_t *a)
 {
   unformat_input_t input;
 
   char *p = cJSON_GetStringValue(o);
 
-  if (!p) return 0;
+  if (!p)
+    return -1;
   unformat_init_string (&input, p, strlen(p));
   int plen;
   if (unformat (&input, "%U/%d", unformat_ip4_address, &a->address.un.ip4, &plen))
@@ -337,12 +365,14 @@ void *vl_api_prefix_t_fromjson(void *mp, int *len, cJSON *o, vl_api_prefix_t *a)
   else if (unformat (&input, "%U/%d", unformat_ip6_address, &a->address.un.ip6, &plen))
     a->address.af = ADDRESS_IP6;
   else
-    return (0);
+    return -1;
   a->len = plen;
-  return mp;
+  return 0;
 }
 
-void *vl_api_address_with_prefix_t_fromjson(void *mp, int *len, cJSON *o, vl_api_prefix_t *a)
+int
+vl_api_address_with_prefix_t_fromjson (void **mp, int *len, cJSON *o,
+                                      vl_api_prefix_t *a)
 {
   return vl_api_prefix_t_fromjson(mp, len, o, a);
 }
@@ -375,14 +405,17 @@ unformat_mac_address (unformat_input_t * input, va_list * args)
   return (0);
 }
 
-void *vl_api_mac_address_t_fromjson(void *mp, int *len, cJSON *o, vl_api_mac_address_t *a)
+int
+vl_api_mac_address_t_fromjson (void **mp, int *len, cJSON *o,
+                              vl_api_mac_address_t *a)
 {
   unformat_input_t input;
 
   char *p = cJSON_GetStringValue(o);
   unformat_init_string (&input, p, strlen(p));
-  unformat(&input, "%U", unformat_mac_address, a);
-  return mp;
+  if (!unformat (&input, "%U", unformat_mac_address, a))
+    return -1;
+  return 0;
 }
 
 /* Format an IP4 address. */
@@ -411,16 +444,6 @@ format_vl_api_interface_index_t (u8 *s, va_list *args)
   return format (s, "%u", *a);
 }
 
-uword
-unformat_vl_api_interface_index_t (unformat_input_t * input, va_list * args)
-{
-    u32 *a = va_arg (*args, u32 *);
-
-    if (!unformat (input, "%u", a))
-        return 0;
-    return 1;
-}
-
 void
 vl_api_string_cJSON_AddToObject(cJSON * const object, const char * const name, vl_api_string_t *astr)
 {