diff options
Diffstat (limited to 'src/service/rest/json_reclaim.c')
-rw-r--r-- | src/service/rest/json_reclaim.c | 55 |
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 | |||
170 | parse_ticket (void *cls, json_t *root, struct GNUNET_JSON_Specification *spec) | 170 | parse_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 | */ |
288 | static int | 253 | static int |
289 | parse_credential (void *cls, json_t *root, struct GNUNET_JSON_Specification *spec) | 254 | parse_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); |