aboutsummaryrefslogtreecommitdiff
path: root/src/identity
diff options
context:
space:
mode:
authorMartin Schanzenbach <mschanzenbach@posteo.de>2015-03-25 17:19:54 +0000
committerMartin Schanzenbach <mschanzenbach@posteo.de>2015-03-25 17:19:54 +0000
commit19c380f237708910a12f14e98960919e9fe6d865 (patch)
tree0f5ede8bd4b834b0acd083423c2828cadb4b3665 /src/identity
parent5afc084a9c29b980bf00fddd7372fa15db63de76 (diff)
downloadgnunet-19c380f237708910a12f14e98960919e9fe6d865.tar.gz
gnunet-19c380f237708910a12f14e98960919e9fe6d865.zip
-more rest handling
Diffstat (limited to 'src/identity')
-rw-r--r--src/identity/plugin_rest_identity.c38
1 files changed, 25 insertions, 13 deletions
diff --git a/src/identity/plugin_rest_identity.c b/src/identity/plugin_rest_identity.c
index ea611128d..75c65466c 100644
--- a/src/identity/plugin_rest_identity.c
+++ b/src/identity/plugin_rest_identity.c
@@ -285,12 +285,15 @@ get_ego_for_subsys (void *cls,
285 * @param handle the RequestHandle 285 * @param handle the RequestHandle
286 */ 286 */
287void 287void
288ego_info_response (struct RequestHandle *handle) 288ego_info_response (struct RestConnectionDataHandle *con,
289 const char *url,
290 void *cls)
289{ 291{
290 const char *egoname; 292 const char *egoname;
291 char *keystring; 293 char *keystring;
292 char *result_str; 294 char *result_str;
293 char *subsys_val; 295 char *subsys_val;
296 struct RequestHandle *handle = cls;
294 struct EgoEntry *ego_entry; 297 struct EgoEntry *ego_entry;
295 struct GNUNET_HashCode key; 298 struct GNUNET_HashCode key;
296 struct MHD_Response *resp; 299 struct MHD_Response *resp;
@@ -414,9 +417,12 @@ create_finished (void *cls, const char *emsg)
414} 417}
415 418
416static void 419static void
417ego_create_cont (struct RequestHandle *handle) 420ego_create_cont (struct RestConnectionDataHandle *con,
421 const char *url,
422 void *cls)
418{ 423{
419 const char* egoname; 424 const char* egoname;
425 struct RequestHandle *handle = cls;
420 char term_data[handle->data_size+1]; 426 char term_data[handle->data_size+1];
421 struct EgoEntry *ego_entry; 427 struct EgoEntry *ego_entry;
422 struct MHD_Response *resp; 428 struct MHD_Response *resp;
@@ -500,10 +506,13 @@ ego_create_cont (struct RequestHandle *handle)
500} 506}
501 507
502void 508void
503subsys_set_cont (struct RequestHandle *handle) 509subsys_set_cont (struct RestConnectionDataHandle *con,
510 const char *url,
511 void *cls)
504{ 512{
505 const char *egoname; 513 const char *egoname;
506 const char *subsys; 514 const char *subsys;
515 struct RequestHandle *handle = cls;
507 char term_data[handle->data_size+1]; 516 char term_data[handle->data_size+1];
508 struct EgoEntry *ego_entry; 517 struct EgoEntry *ego_entry;
509 struct MHD_Response *resp; 518 struct MHD_Response *resp;
@@ -604,11 +613,14 @@ subsys_set_cont (struct RequestHandle *handle)
604} 613}
605 614
606void 615void
607ego_delete_cont (struct RequestHandle *handle) 616ego_delete_cont (struct RestConnectionDataHandle *con_handle,
617 const char* url,
618 void *cls)
608{ 619{
609 const char *egoname; 620 const char *egoname;
610 struct EgoEntry *ego_entry; 621 struct EgoEntry *ego_entry;
611 struct MHD_Response *resp; 622 struct MHD_Response *resp;
623 struct RequestHandle *handle = cls;
612 int ego_exists = GNUNET_NO; 624 int ego_exists = GNUNET_NO;
613 625
614 if (strlen (API_NAMESPACE) >= strlen (handle->url)) 626 if (strlen (API_NAMESPACE) >= strlen (handle->url))
@@ -645,15 +657,15 @@ ego_delete_cont (struct RequestHandle *handle)
645void 657void
646init_cont (struct RequestHandle *handle) 658init_cont (struct RequestHandle *handle)
647{ 659{
648 if (0 == strcasecmp (handle->method, MHD_HTTP_METHOD_GET)) 660 static const struct GNUNET_REST_RestConnectionHandler handlers[] = {
649 ego_info_response (handle); 661 {MHD_HTTP_METHOD_GET, API_NAMESPACE, &ego_info_response},
650 else if (0 == strcasecmp (handle->method, MHD_HTTP_METHOD_POST)) 662 {MHD_HTTP_METHOD_POST, API_NAMESPACE, &ego_create_cont},
651 ego_create_cont (handle); 663 {MHD_HTTP_METHOD_PUT, API_NAMESPACE, &subsys_set_cont},
652 else if (0 == strcasecmp (handle->method, MHD_HTTP_METHOD_PUT)) 664 {MHD_HTTP_METHOD_DELETE, API_NAMESPACE, &ego_delete_cont},
653 subsys_set_cont (handle); 665 GNUNET_REST_HANDLER_END
654 else if (0 == strcasecmp (handle->method, MHD_HTTP_METHOD_DELETE)) 666 };
655 ego_delete_cont (handle); 667
656 else 668 if (GNUNET_NO == GNUNET_REST_handle_request (handle->conndata_handle, handlers, handle))
657 GNUNET_SCHEDULER_add_now (&do_error, handle); 669 GNUNET_SCHEDULER_add_now (&do_error, handle);
658} 670}
659 671