#include "platform.h"
#include "gnunet_rest_plugin.h"
#include <gnunet_rest_lib.h>
#include <gnunet_util_lib.h>
#include <jansson.h>
#include "config_plugin.h"
Go to the source code of this file.
Data Structures | |
struct | Plugin |
Handle for a plugin. More... | |
struct | RequestHandle |
The request handle. More... | |
Macros | |
#define | GNUNET_REST_API_NS_CONFIG "/config" |
Functions | |
static void | cleanup_handle (struct RequestHandle *handle) |
Cleanup request handle. More... | |
static void | do_error (void *cls) |
Task run on shutdown. More... | |
static void | add_sections (void *cls, const char *section, const char *option, const char *value) |
static void | add_section_contents (void *cls, const char *section, const char *option, const char *value) |
static void | get_cont (struct GNUNET_REST_RequestHandle *con_handle, const char *url, void *cls) |
Handle rest request. More... | |
static struct GNUNET_CONFIGURATION_Handle * | set_value (struct GNUNET_CONFIGURATION_Handle *config, const char *section, const char *option, json_t *value) |
static void | set_cont (struct GNUNET_REST_RequestHandle *con_handle, const char *url, void *cls) |
Handle REST POST request. More... | |
static void | options_cont (struct GNUNET_REST_RequestHandle *con_handle, const char *url, void *cls) |
Handle rest request. More... | |
enum GNUNET_GenericReturnValue | REST_config_process_request (void *plugin, struct GNUNET_REST_RequestHandle *conndata_handle, GNUNET_REST_ResultProcessor proc, void *proc_cls) |
Function processing the REST call. More... | |
void | REST_config_done (struct GNUNET_REST_Plugin *api) |
Exit point from the plugin. More... | |
void * | REST_config_init (const struct GNUNET_CONFIGURATION_Handle *c) |
Entry point for the plugin. More... | |
Variables | |
const struct GNUNET_CONFIGURATION_Handle * | config_cfg |
static struct RequestHandle * | requests_head |
DLL. More... | |
static struct RequestHandle * | requests_tail |
DLL. More... | |
#define GNUNET_REST_API_NS_CONFIG "/config" |
Definition at line 34 of file config_plugin.c.
|
static |
Cleanup request handle.
handle | Handle to clean up |
Definition at line 102 of file config_plugin.c.
References GNUNET_CONTAINER_DLL_remove, GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_log, handle, requests_head, and requests_tail.
Referenced by do_error(), get_cont(), options_cont(), REST_config_done(), REST_config_process_request(), and set_cont().
|
static |
Task run on shutdown.
Cleans up everything.
cls | unused |
Definition at line 120 of file config_plugin.c.
References cleanup_handle(), GNUNET_REST_create_response(), and handle.
Referenced by get_cont(), and set_cont().
|
static |
Definition at line 132 of file config_plugin.c.
References value.
Referenced by get_cont().
|
static |
Definition at line 153 of file config_plugin.c.
References value.
Referenced by get_cont().
|
static |
Handle rest request.
handle | the lookup handle |
Definition at line 170 of file config_plugin.c.
References add_section_contents(), add_sections(), cleanup_handle(), config_cfg, do_error(), GNUNET_assert, GNUNET_CONFIGURATION_iterate(), GNUNET_CONFIGURATION_iterate_section_values(), GNUNET_free, GNUNET_REST_API_NS_CONFIG, GNUNET_REST_create_response(), GNUNET_SCHEDULER_add_now(), handle, MHD_HTTP_BAD_REQUEST, MHD_HTTP_OK, response, and result.
Referenced by REST_config_process_request().
|
static |
Definition at line 213 of file config_plugin.c.
References config, GNUNET_CONFIGURATION_set_value_number(), GNUNET_CONFIGURATION_set_value_string(), and value.
Referenced by set_cont().
|
static |
Handle REST POST request.
handle | the lookup handle |
Definition at line 242 of file config_plugin.c.
References cleanup_handle(), config_cfg, config_file, DIR_SEPARATOR_STR, do_error(), getenv(), GNUNET_asprintf(), GNUNET_CONFIGURATION_dup(), GNUNET_CONFIGURATION_write(), GNUNET_ERROR_TYPE_ERROR, GNUNET_free, GNUNET_log, GNUNET_memcpy, GNUNET_OS_project_data_gnunet(), GNUNET_REST_API_NS_CONFIG, GNUNET_REST_create_response(), GNUNET_SCHEDULER_add_now(), GNUNET_strdup, handle, MHD_HTTP_BAD_REQUEST, MHD_HTTP_OK, set_value(), and value.
Referenced by REST_config_process_request().
|
static |
Handle rest request.
handle | the lookup handle |
Definition at line 354 of file config_plugin.c.
References cleanup_handle(), GNUNET_assert, GNUNET_REST_create_response(), handle, and MHD_HTTP_OK.
Referenced by REST_config_process_request().
enum GNUNET_GenericReturnValue REST_config_process_request | ( | void * | plugin, |
struct GNUNET_REST_RequestHandle * | conndata_handle, | ||
GNUNET_REST_ResultProcessor | proc, | ||
void * | proc_cls | ||
) |
Function processing the REST call.
method | HTTP method |
url | URL of the HTTP request |
data | body of the HTTP request (optional) |
data_size | length of the body |
proc | callback function for the result |
proc_cls | closure for proc |
Definition at line 371 of file config_plugin.c.
References cleanup_handle(), get_cont(), GNUNET_CONTAINER_DLL_insert, GNUNET_new, GNUNET_NO, GNUNET_REST_API_NS_CONFIG, GNUNET_REST_handle_request(), GNUNET_REST_HANDLER_END, GNUNET_strdup, GNUNET_YES, handle, handlers, options_cont(), plugin, GNUNET_REST_RequestHandler::proc, requests_head, requests_tail, set_cont(), and GNUNET_REST_RequestHandle::url.
Referenced by run().
void REST_config_done | ( | struct GNUNET_REST_Plugin * | api | ) |
Exit point from the plugin.
cls | the plugin context (as returned by "init") |
Definition at line 406 of file config_plugin.c.
References Plugin::api, cleanup_handle(), GNUNET_BLOCK_PluginFunctions::cls, GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_log, plugin, and requests_head.
Referenced by do_shutdown().
void * REST_config_init | ( | const struct GNUNET_CONFIGURATION_Handle * | c | ) |
Entry point for the plugin.
cls | the "struct GNUNET_NAMESTORE_PluginEnvironment*" |
Definition at line 426 of file config_plugin.c.
References _, GNUNET_REST_Plugin::cls, config_cfg, GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_new, GNUNET_REST_API_NS_CONFIG, GNUNET_REST_Plugin::name, and plugin.
Referenced by run().
const struct GNUNET_CONFIGURATION_Handle* config_cfg |
Definition at line 44 of file config_plugin.c.
Referenced by get_cont(), REST_config_init(), and set_cont().
|
static |
DLL.
Definition at line 88 of file config_plugin.c.
Referenced by cleanup_handle(), REST_config_done(), and REST_config_process_request().
|
static |
DLL.
Definition at line 93 of file config_plugin.c.
Referenced by cleanup_handle(), and REST_config_process_request().