aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-07-31 22:42:45 +0200
committerChristian Grothoff <christian@grothoff.org>2021-07-31 22:42:50 +0200
commitd02ea47f57e9cc4e95382cc4571bad497039dfed (patch)
treeeb6b2bc23721b4e5419c3fb9f9a545ac64373c60
parentbe8bbf72465de3829f6827de5513c2ffc19c31b3 (diff)
downloadgnunet-d02ea47f57e9cc4e95382cc4571bad497039dfed.tar.gz
gnunet-d02ea47f57e9cc4e95382cc4571bad497039dfed.zip
JSON: allow NULL-passing to GNUNET_JSON_pack_data_varsize
-rw-r--r--src/json/json_pack.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/json/json_pack.c b/src/json/json_pack.c
index d86baff41..c61d3331f 100644
--- a/src/json/json_pack.c
+++ b/src/json/json_pack.c
@@ -33,7 +33,7 @@ GNUNET_JSON_pack_ (struct GNUNET_JSON_PackSpec spec[])
33 33
34 ret = json_object (); 34 ret = json_object ();
35 GNUNET_assert (NULL != ret); 35 GNUNET_assert (NULL != ret);
36 for (unsigned int i=0; 36 for (unsigned int i = 0;
37 NULL != spec[i].field_name; 37 NULL != spec[i].field_name;
38 i++) 38 i++)
39 { 39 {
@@ -55,7 +55,7 @@ GNUNET_JSON_pack_ (struct GNUNET_JSON_PackSpec spec[])
55 55
56 56
57struct GNUNET_JSON_PackSpec 57struct GNUNET_JSON_PackSpec
58GNUNET_JSON_pack_end_(void) 58GNUNET_JSON_pack_end_ (void)
59{ 59{
60 struct GNUNET_JSON_PackSpec ps = { 60 struct GNUNET_JSON_PackSpec ps = {
61 .field_name = NULL 61 .field_name = NULL
@@ -81,7 +81,7 @@ GNUNET_JSON_pack_bool (const char *name,
81 .field_name = name, 81 .field_name = name,
82 .object = json_boolean (b) 82 .object = json_boolean (b)
83 }; 83 };
84 84
85 return ps; 85 return ps;
86} 86}
87 87
@@ -94,8 +94,8 @@ GNUNET_JSON_pack_string (const char *name,
94 .field_name = name, 94 .field_name = name,
95 .object = json_string (s) 95 .object = json_string (s)
96 }; 96 };
97 97
98 return ps; 98 return ps;
99} 99}
100 100
101 101
@@ -107,25 +107,25 @@ GNUNET_JSON_pack_uint64 (const char *name,
107 .field_name = name, 107 .field_name = name,
108 .object = json_integer ((json_int_t) num) 108 .object = json_integer ((json_int_t) num)
109 }; 109 };
110 110
111#if JSON_INTEGER_IS_LONG_LONG 111#if JSON_INTEGER_IS_LONG_LONG
112 GNUNET_assert (num <= LLONG_MAX); 112 GNUNET_assert (num <= LLONG_MAX);
113#else 113#else
114 GNUNET_assert (num <= LONG_MAX); 114 GNUNET_assert (num <= LONG_MAX);
115#endif 115#endif
116 return ps; 116 return ps;
117} 117}
118 118
119 119
120struct GNUNET_JSON_PackSpec 120struct GNUNET_JSON_PackSpec
121GNUNET_JSON_pack_int64 (const char *name, 121GNUNET_JSON_pack_int64 (const char *name,
122 int64_t num) 122 int64_t num)
123{ 123{
124 struct GNUNET_JSON_PackSpec ps = { 124 struct GNUNET_JSON_PackSpec ps = {
125 .field_name = name, 125 .field_name = name,
126 .object = json_integer ((json_int_t) num) 126 .object = json_integer ((json_int_t) num)
127 }; 127 };
128 128
129#if JSON_INTEGER_IS_LONG_LONG 129#if JSON_INTEGER_IS_LONG_LONG
130 GNUNET_assert (num <= LLONG_MAX); 130 GNUNET_assert (num <= LLONG_MAX);
131 GNUNET_assert (num >= LLONG_MIN); 131 GNUNET_assert (num >= LLONG_MIN);
@@ -234,8 +234,10 @@ GNUNET_JSON_pack_data_varsize (const char *name,
234{ 234{
235 struct GNUNET_JSON_PackSpec ps = { 235 struct GNUNET_JSON_PackSpec ps = {
236 .field_name = name, 236 .field_name = name,
237 .object = GNUNET_JSON_from_data (blob, 237 .object = (NULL != blob)
238 blob_size) 238 ? GNUNET_JSON_from_data (blob,
239 blob_size)
240 : NULL
239 }; 241 };
240 242
241 return ps; 243 return ps;