aboutsummaryrefslogtreecommitdiff
path: root/src/service/rest/json_reclaim.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/service/rest/json_reclaim.c')
-rw-r--r--src/service/rest/json_reclaim.c55
1 files changed, 12 insertions, 43 deletions
diff --git a/src/service/rest/json_reclaim.c b/src/service/rest/json_reclaim.c
index b1ca7a4a5..3b43a37e4 100644
--- a/src/service/rest/json_reclaim.c
+++ b/src/service/rest/json_reclaim.c
@@ -170,9 +170,7 @@ static int
170parse_ticket (void *cls, json_t *root, struct GNUNET_JSON_Specification *spec) 170parse_ticket (void *cls, json_t *root, struct GNUNET_JSON_Specification *spec)
171{ 171{
172 struct GNUNET_RECLAIM_Ticket *ticket; 172 struct GNUNET_RECLAIM_Ticket *ticket;
173 const char *rnd_str; 173 const char *gns_str;
174 const char *aud_str;
175 const char *id_str;
176 int unpack_state; 174 int unpack_state;
177 175
178 GNUNET_assert (NULL != root); 176 GNUNET_assert (NULL != root);
@@ -185,13 +183,9 @@ parse_ticket (void *cls, json_t *root, struct GNUNET_JSON_Specification *spec)
185 } 183 }
186 // interpret single ticket 184 // interpret single ticket
187 unpack_state = json_unpack (root, 185 unpack_state = json_unpack (root,
188 "{s:s, s:s, s:s!}", 186 "{s:s}",
189 "rnd", 187 "gns_name",
190 &rnd_str, 188 &gns_str);
191 "audience",
192 &aud_str,
193 "issuer",
194 &id_str);
195 if (0 != unpack_state) 189 if (0 != unpack_state)
196 { 190 {
197 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 191 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -199,36 +193,7 @@ parse_ticket (void *cls, json_t *root, struct GNUNET_JSON_Specification *spec)
199 return GNUNET_SYSERR; 193 return GNUNET_SYSERR;
200 } 194 }
201 ticket = GNUNET_new (struct GNUNET_RECLAIM_Ticket); 195 ticket = GNUNET_new (struct GNUNET_RECLAIM_Ticket);
202 if (GNUNET_OK != GNUNET_STRINGS_string_to_data (rnd_str, 196 strncpy (ticket->gns_name, gns_str, sizeof (ticket->gns_name));
203 strlen (rnd_str),
204 &ticket->rnd,
205 sizeof(ticket->rnd)))
206 {
207 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Rnd invalid\n");
208 GNUNET_free (ticket);
209 return GNUNET_SYSERR;
210 }
211 if (GNUNET_OK !=
212 GNUNET_STRINGS_string_to_data (id_str,
213 strlen (id_str),
214 &ticket->identity,
215 sizeof(ticket->identity)))
216 {
217 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Identity invalid\n");
218 GNUNET_free (ticket);
219 return GNUNET_SYSERR;
220 }
221
222 if (GNUNET_OK !=
223 GNUNET_STRINGS_string_to_data (aud_str,
224 strlen (aud_str),
225 &ticket->audience,
226 sizeof(ticket->audience)))
227 {
228 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Audience invalid\n");
229 GNUNET_free (ticket);
230 return GNUNET_SYSERR;
231 }
232 197
233 *(struct GNUNET_RECLAIM_Ticket **) spec->ptr = ticket; 198 *(struct GNUNET_RECLAIM_Ticket **) spec->ptr = ticket;
234 return GNUNET_OK; 199 return GNUNET_OK;
@@ -286,7 +251,8 @@ GNUNET_RECLAIM_JSON_spec_ticket (struct GNUNET_RECLAIM_Ticket **ticket)
286 * @return #GNUNET_OK upon successful parsing; #GNUNET_SYSERR upon error 251 * @return #GNUNET_OK upon successful parsing; #GNUNET_SYSERR upon error
287 */ 252 */
288static int 253static int
289parse_credential (void *cls, json_t *root, struct GNUNET_JSON_Specification *spec) 254parse_credential (void *cls, json_t *root, struct GNUNET_JSON_Specification *
255 spec)
290{ 256{
291 struct GNUNET_RECLAIM_Credential *cred; 257 struct GNUNET_RECLAIM_Credential *cred;
292 const char *name_str = NULL; 258 const char *name_str = NULL;
@@ -325,9 +291,12 @@ parse_credential (void *cls, json_t *root, struct GNUNET_JSON_Specification *spe
325 "Error json object has a wrong format!\n"); 291 "Error json object has a wrong format!\n");
326 return GNUNET_SYSERR; 292 return GNUNET_SYSERR;
327 } 293 }
328 if (json_is_string (val_json)) { 294 if (json_is_string (val_json))
295 {
329 val_str = GNUNET_strdup (json_string_value (val_json)); 296 val_str = GNUNET_strdup (json_string_value (val_json));
330 } else { 297 }
298 else
299 {
331 val_str = json_dumps (val_json, JSON_COMPACT); 300 val_str = json_dumps (val_json, JSON_COMPACT);
332 } 301 }
333 type = GNUNET_RECLAIM_credential_typename_to_number (type_str); 302 type = GNUNET_RECLAIM_credential_typename_to_number (type_str);