peerstore service implementation More...
#include "platform.h"
#include "gnunet_peerstore_service.h"
#include "gnunet_protocols.h"
#include "gnunet_util_lib.h"
#include "peerstore.h"
#include "gnunet_peerstore_plugin.h"
#include "peerstore_common.h"
#include "gnunet_hello_uri_lib.h"
Go to the source code of this file.
Data Structures | |
struct | Monitor |
A peerstore monitor. More... | |
struct | Iteration |
A peerstore iteration operation. More... | |
struct | PeerstoreClient |
A peerstore client. More... | |
struct | StoreRecordContext |
struct | IterationProcResult |
Context for iteration operations passed from run_iteration_round to iterate_proc as closure. More... | |
Macros | |
#define | EXPIRED_RECORDS_CLEANUP_INTERVAL 300 /* 5mins */ |
Interval for expired records cleanup (in seconds) More... | |
Functions | |
static void | shutdown_task (void *cls) |
Task run during shutdown. More... | |
static void | expire_records_continuation (void *cls, int success) |
Continuation to expire_records called by the peerstore plugin. More... | |
static void | cleanup_expired_records (void *cls) |
Deletes any expired records from storage. More... | |
static void | monitor_sync (struct Monitor *mc) |
Send 'sync' message to zone monitor, we're now in sync. More... | |
static void | watch_notifier (struct GNUNET_PEERSTORE_Record *record) |
Given a new record, notifies watchers. More... | |
static void | iterate_proc (void *cls, uint64_t seq, const struct GNUNET_PEERSTORE_Record *record, const char *emsg) |
Process results for zone iteration from database. More... | |
static void | destroy_iteration (struct Iteration *ic) |
static void | iteration_done_client_continue (struct Iteration *ic) |
Function called once we are done with the iteration and allow the zone iteration client to send us more messages. More... | |
static void | run_iteration_round (struct Iteration *ic, uint64_t limit) |
Perform the next round of the zone iteration. More... | |
static int | check_iterate_start (void *cls, const struct PeerstoreIterationStartMessage *srm) |
Check an iterate request from client. More... | |
static void | handle_iterate_start (void *cls, const struct PeerstoreIterationStartMessage *srm) |
Handle an iterate request from client. More... | |
static void | handle_iterate_stop (void *cls, const struct PeerstoreIterationStopMessage *zis_msg) |
Handles a #GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATION_STOP message. More... | |
static void | handle_iterate_next (void *cls, const struct PeerstoreIterationNextMessage *is_msg) |
Handles a #GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATION_NEXT message. More... | |
static void | monitor_iteration_next (void *cls) |
Obtain the next datum during the monitor's initial iteration. More... | |
static void | monitor_iterate_cb (void *cls, uint64_t seq, const struct GNUNET_PEERSTORE_Record *record, const char *emsg) |
A GNUNET_NAMESTORE_RecordIterator for monitors. More... | |
static int | check_monitor_start (void *cls, const struct PeerstoreMonitorStartMessage *srm) |
Check a monitor request from client. More... | |
static void | handle_monitor_start (void *cls, const struct PeerstoreMonitorStartMessage *msm) |
Handle an iterate request from client. More... | |
static void | handle_monitor_next (void *cls, const struct PeerstoreMonitorNextMessage *nm) |
Handles a GNUNET_MESSAGE_TYPE_PEERSTORE_MONITOR_NEXT message. More... | |
static void | store_record_continuation (void *cls, int success) |
Continuation of store_record called by the peerstore plugin. More... | |
static int | check_store (void *cls, const struct PeerstoreRecordMessage *srm) |
Check a store request from client. More... | |
static void | handle_store (void *cls, const struct PeerstoreRecordMessage *srm) |
Handle a store request from client. More... | |
static void * | client_connect_cb (void *cls, struct GNUNET_SERVICE_Client *client, struct GNUNET_MQ_Handle *mq) |
A client disconnected. More... | |
static void | client_disconnect_cb (void *cls, struct GNUNET_SERVICE_Client *client, void *app_cls) |
A client disconnected. More... | |
static void | store_hello_continuation (void *cls, int success) |
static int | hosts_directory_scan_callback (void *cls, const char *fullname) |
static void | run (void *cls, const struct GNUNET_CONFIGURATION_Handle *c, struct GNUNET_SERVICE_Handle *service) |
Peerstore service runner. More... | |
GNUNET_SERVICE_MAIN (GNUNET_OS_project_data_gnunet(), "peerstore", GNUNET_SERVICE_OPTION_SOFT_SHUTDOWN, &run, &client_connect_cb, &client_disconnect_cb, NULL, GNUNET_MQ_hd_var_size(store, GNUNET_MESSAGE_TYPE_PEERSTORE_STORE, struct PeerstoreRecordMessage, NULL), GNUNET_MQ_hd_var_size(iterate_start, GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATE_START, struct PeerstoreIterationStartMessage, NULL), GNUNET_MQ_hd_fixed_size(iterate_stop, GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATE_STOP, struct PeerstoreIterationStopMessage, NULL), GNUNET_MQ_hd_fixed_size(iterate_next, GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATE_NEXT, struct PeerstoreIterationNextMessage, NULL), GNUNET_MQ_hd_var_size(monitor_start, GNUNET_MESSAGE_TYPE_PEERSTORE_MONITOR_START, struct PeerstoreMonitorStartMessage, NULL), GNUNET_MQ_hd_fixed_size(monitor_next, GNUNET_MESSAGE_TYPE_PEERSTORE_MONITOR_NEXT, struct PeerstoreMonitorNextMessage, NULL), GNUNET_MQ_handler_end()) | |
Define "main" method using service macro. More... | |
Variables | |
static const struct GNUNET_CONFIGURATION_Handle * | cfg |
Our configuration. More... | |
static char * | db_lib_name |
Database plugin library name. More... | |
static struct GNUNET_PEERSTORE_PluginFunctions * | db |
Database handle. More... | |
static struct GNUNET_SCHEDULER_Task * | expire_task |
Task run to clean up expired records. More... | |
static struct Monitor * | monitors_head |
Monitor DLL. More... | |
static struct Monitor * | monitors_tail |
Monitor DLL. More... | |
static struct GNUNET_NotificationContext * | monitor_nc |
Notification context shared by all monitors. More... | |
peerstore service implementation
Definition in file gnunet-service-peerstore.c.
#define EXPIRED_RECORDS_CLEANUP_INTERVAL 300 /* 5mins */ |
Interval for expired records cleanup (in seconds)
Definition at line 39 of file gnunet-service-peerstore.c.
|
static |
Task run during shutdown.
cls | unused |
Definition at line 290 of file gnunet-service-peerstore.c.
References db, db_lib_name, expire_task, GNUNET_break, GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_log, GNUNET_notification_context_destroy(), GNUNET_PLUGIN_unload(), GNUNET_SCHEDULER_cancel(), and monitor_nc.
Referenced by run().
|
static |
Continuation to expire_records called by the peerstore plugin.
cls | unused |
success | count of records deleted or GNUNET_SYSERR |
Definition at line 351 of file gnunet-service-peerstore.c.
References cleanup_expired_records(), expire_task, EXPIRED_RECORDS_CLEANUP_INTERVAL, GNUNET_assert, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_SCHEDULER_add_delayed(), GNUNET_TIME_relative_multiply(), and GNUNET_TIME_UNIT_SECONDS.
Referenced by cleanup_expired_records().
|
static |
Deletes any expired records from storage.
Definition at line 322 of file gnunet-service-peerstore.c.
References cleanup_expired_records(), GNUNET_PEERSTORE_PluginFunctions::cls, db, GNUNET_PEERSTORE_PluginFunctions::expire_records, expire_records_continuation(), expire_task, EXPIRED_RECORDS_CLEANUP_INTERVAL, GNUNET_assert, GNUNET_OK, GNUNET_SCHEDULER_add_delayed(), GNUNET_TIME_absolute_get(), GNUNET_TIME_relative_multiply(), GNUNET_TIME_UNIT_SECONDS, and ret.
Referenced by cleanup_expired_records(), expire_records_continuation(), and run().
|
static |
Send 'sync' message to zone monitor, we're now in sync.
zm | monitor that is now in sync |
Definition at line 370 of file gnunet-service-peerstore.c.
References env, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_MESSAGE_TYPE_PEERSTORE_MONITOR_SYNC, GNUNET_MQ_msg, GNUNET_MQ_send(), GNUNET_NO, and mc.
Referenced by handle_monitor_start(), and monitor_iteration_next().
|
static |
Given a new record, notifies watchers.
record | changed record to update watchers with |
Definition at line 391 of file gnunet-service-peerstore.c.
References env, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_MESSAGE_TYPE_PEERSTORE_RECORD, GNUNET_MQ_send(), GNUNET_YES, mc, monitors_head, PEERSTORE_create_record_mq_envelope(), and record().
Referenced by store_record_continuation().
|
static |
Process results for zone iteration from database.
cls | struct ZoneIterationProcResult |
seq | sequence number of the record, MUST NOT BE ZERO |
zone_key | the zone key |
name | name |
rd_count | number of records for this name |
rd | record data |
Definition at line 454 of file gnunet-service-peerstore.c.
References env, GNUNET_break, GNUNET_ERROR_TYPE_DEBUG, GNUNET_ERROR_TYPE_ERROR, GNUNET_log, GNUNET_MESSAGE_TYPE_PEERSTORE_RECORD, GNUNET_MQ_send(), IterationProcResult::ic, IterationProcResult::limit, PeerstoreClient::mq, Iteration::pc, PEERSTORE_create_record_mq_envelope(), record(), Iteration::request_id, and Iteration::seq.
Referenced by run_iteration_round().
|
static |
Definition at line 496 of file gnunet-service-peerstore.c.
References GNUNET_free, Iteration::key, and Iteration::sub_system.
Referenced by client_disconnect_cb(), handle_iterate_stop(), and iteration_done_client_continue().
|
static |
Function called once we are done with the iteration and allow the zone iteration client to send us more messages.
zi | zone iteration we are processing |
Definition at line 511 of file gnunet-service-peerstore.c.
References PeerstoreClient::client, destroy_iteration(), env, GNUNET_CONTAINER_DLL_remove, GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATE_END, GNUNET_MQ_msg, GNUNET_MQ_send(), GNUNET_OK, GNUNET_SERVICE_client_continue(), PeerstoreClient::mq, PeerstoreClient::op_head, PeerstoreClient::op_tail, Iteration::pc, Iteration::request_id, PeerstoreResultMessage::result, PeerstoreResultMessage::rid, and Iteration::send_end.
Referenced by run_iteration_round().
|
static |
Perform the next round of the zone iteration.
ic | iterator to process |
limit | number of results to return in one pass |
Definition at line 538 of file gnunet-service-peerstore.c.
References GNUNET_PEERSTORE_PluginFunctions::cls, db, duration, GNUNET_break, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_SYSERR, GNUNET_TIME_absolute_get(), GNUNET_TIME_absolute_get_duration(), GNUNET_TIME_relative_divide(), GNUNET_YES, IterationProcResult::ic, iterate_proc(), GNUNET_PEERSTORE_PluginFunctions::iterate_records, iteration_done_client_continue(), Iteration::key, IterationProcResult::limit, Iteration::peer, Iteration::peer_set, Iteration::send_end, Iteration::seq, start, and Iteration::sub_system.
Referenced by handle_iterate_next(), and handle_iterate_start().
|
static |
Check an iterate request from client.
cls | client identification of the client |
srm | the actual message |
Definition at line 581 of file gnunet-service-peerstore.c.
References GNUNET_break, GNUNET_OK, GNUNET_SYSERR, PeerstoreIterationStartMessage::header, PeerstoreIterationStartMessage::key_size, GNUNET_MessageHeader::size, size, and PeerstoreIterationStartMessage::sub_system_size.
|
static |
Handle an iterate request from client.
cls | identification of the client |
srm | the actual message |
Definition at line 608 of file gnunet-service-peerstore.c.
References GNUNET_CONTAINER_DLL_insert, GNUNET_ERROR_TYPE_DEBUG, GNUNET_i2s(), GNUNET_log, GNUNET_new, GNUNET_NO, GNUNET_strdup, GNUNET_YES, Iteration::key, PeerstoreIterationStartMessage::key_size, Iteration::offset, PeerstoreClient::op_head, PeerstoreClient::op_tail, Iteration::pc, Iteration::peer, PeerstoreIterationStartMessage::peer, Iteration::peer_set, PeerstoreIterationStartMessage::peer_set, Iteration::request_id, PeerstoreIterationStartMessage::rid, run_iteration_round(), Iteration::sub_system, and PeerstoreIterationStartMessage::sub_system_size.
|
static |
Handles a #GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATION_STOP message.
cls | the client sending the message |
zis_msg | message from the client |
Definition at line 647 of file gnunet-service-peerstore.c.
References destroy_iteration(), GNUNET_CONTAINER_DLL_remove, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_SERVICE_client_continue(), Iteration::next, pc, Iteration::request_id, and PeerstoreIterationStopMessage::rid.
|
static |
Handles a #GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATION_NEXT message.
cls | the client sending the message |
zis_msg | message from the client |
Definition at line 680 of file gnunet-service-peerstore.c.
References GNUNET_break, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_ntohll(), GNUNET_SERVICE_client_drop(), PeerstoreIterationNextMessage::limit, Iteration::next, pc, Iteration::request_id, PeerstoreIterationNextMessage::rid, and run_iteration_round().
|
static |
Obtain the next datum during the monitor's initial iteration.
Obtain the next datum during the zone monitor's zone initial iteration.
cls | monitor that does its initial iteration |
cls | zone monitor that does its initial iteration |
Definition at line 789 of file gnunet-service-peerstore.c.
References GNUNET_PEERSTORE_PluginFunctions::cls, db, GNUNET_assert, GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_log, GNUNET_NO, GNUNET_SERVICE_client_drop(), GNUNET_SYSERR, GNUNET_YES, GNUNET_PEERSTORE_PluginFunctions::iterate_records, mc, monitor_iterate_cb(), monitor_sync(), and ret.
Referenced by handle_monitor_next(), handle_monitor_start(), and monitor_iterate_cb().
|
static |
A GNUNET_NAMESTORE_RecordIterator for monitors.
cls | a 'struct ZoneMonitor *' with information about the monitor |
seq | sequence number of the record, MUST NOT BE ZERO |
zone_key | zone key of the zone |
name | name |
rd_count | number of records in rd |
rd | array of records |
Definition at line 729 of file gnunet-service-peerstore.c.
References env, GNUNET_assert, GNUNET_break, GNUNET_ERROR_TYPE_DEBUG, GNUNET_ERROR_TYPE_ERROR, GNUNET_log, GNUNET_MESSAGE_TYPE_PEERSTORE_RECORD, GNUNET_MQ_send(), GNUNET_SCHEDULER_add_now(), mc, monitor_iteration_next(), PEERSTORE_create_record_mq_envelope(), and record().
Referenced by monitor_iteration_next().
|
static |
Check a monitor request from client.
cls | client identification of the client |
srm | the actual message |
Definition at line 837 of file gnunet-service-peerstore.c.
References GNUNET_break, GNUNET_OK, GNUNET_SYSERR, PeerstoreMonitorStartMessage::header, PeerstoreMonitorStartMessage::key_size, GNUNET_MessageHeader::size, size, and PeerstoreMonitorStartMessage::sub_system_size.
|
static |
Handle an iterate request from client.
cls | identification of the client |
srm | the actual message |
Definition at line 863 of file gnunet-service-peerstore.c.
References GNUNET_CONTAINER_DLL_insert, GNUNET_ERROR_TYPE_DEBUG, GNUNET_i2s(), GNUNET_log, GNUNET_new, GNUNET_NO, GNUNET_notification_context_add(), GNUNET_SCHEDULER_add_now(), GNUNET_SERVICE_client_continue(), GNUNET_SERVICE_client_mark_monitor(), GNUNET_strdup, GNUNET_YES, PeerstoreMonitorStartMessage::iterate_first, PeerstoreMonitorStartMessage::key_size, mc, monitor_iteration_next(), monitor_nc, monitor_sync(), monitors_head, monitors_tail, PeerstoreMonitorStartMessage::peer, PeerstoreMonitorStartMessage::peer_set, and PeerstoreMonitorStartMessage::sub_system_size.
|
static |
Handles a GNUNET_MESSAGE_TYPE_PEERSTORE_MONITOR_NEXT message.
cls | the client sending the message |
nm | message from the client |
Definition at line 910 of file gnunet-service-peerstore.c.
References GNUNET_assert, GNUNET_break, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_ntohll(), GNUNET_SCHEDULER_add_now(), GNUNET_SERVICE_client_continue(), GNUNET_SERVICE_client_drop(), Monitor::limit, PeerstoreMonitorNextMessage::limit, mc, monitor_iteration_next(), monitors_head, and pc.
|
static |
Continuation of store_record called by the peerstore plugin.
cls | closure |
success | result |
Definition at line 955 of file gnunet-service-peerstore.c.
References PeerstoreClient::client, env, GNUNET_free, GNUNET_MESSAGE_TYPE_PEERSTORE_STORE_RESULT, GNUNET_MQ_msg, GNUNET_MQ_send(), GNUNET_SERVICE_client_continue(), PeerstoreClient::mq, msg, StoreRecordContext::pc, PEERSTORE_destroy_record(), StoreRecordContext::record, StoreRecordContext::rid, and watch_notifier().
Referenced by handle_store().
|
static |
Check a store request from client.
cls | client identification of the client |
srm | the actual message |
Definition at line 980 of file gnunet-service-peerstore.c.
References GNUNET_break, GNUNET_OK, GNUNET_SYSERR, PEERSTORE_destroy_record(), PEERSTORE_parse_record_message(), and record().
|
static |
Handle a store request from client.
cls | client identification of the client |
srm | the actual message |
Definition at line 1008 of file gnunet-service-peerstore.c.
References GNUNET_PEERSTORE_PluginFunctions::cls, db, GNUNET_PEERSTORE_Record::expiry, GNUNET_break, GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_i2s(), GNUNET_log, GNUNET_new, GNUNET_OK, GNUNET_SERVICE_client_drop(), GNUNET_PEERSTORE_Record::key, PeerstoreRecordMessage::options, pc, StoreRecordContext::pc, GNUNET_PEERSTORE_Record::peer, PEERSTORE_destroy_record(), PEERSTORE_parse_record_message(), StoreRecordContext::record, StoreRecordContext::rid, PeerstoreRecordMessage::rid, GNUNET_PEERSTORE_PluginFunctions::store_record, store_record_continuation(), GNUNET_PEERSTORE_Record::sub_system, GNUNET_PEERSTORE_Record::value, and GNUNET_PEERSTORE_Record::value_size.
|
static |
A client disconnected.
Remove all of its data structure entries.
cls | closure, NULL |
client | identification of the client |
mq | the message queue |
Definition at line 1052 of file gnunet-service-peerstore.c.
References PeerstoreClient::client, GNUNET_ERROR_TYPE_DEBUG, GNUNET_log, GNUNET_new, mq, GNUNET_FS_PublishContext::mq, and pc.
|
static |
A client disconnected.
Remove all of its data structure entries.
cls | closure, NULL |
client | identification of the client |
Definition at line 1074 of file gnunet-service-peerstore.c.
References destroy_iteration(), GNUNET_CONTAINER_DLL_remove, GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_log, GNUNET_SCHEDULER_cancel(), Monitor::key, monitors_head, monitors_tail, Monitor::next, pc, Monitor::pc, Monitor::sa_wait_warning, Monitor::sub_system, and Monitor::task.
|
static |
Definition at line 1116 of file gnunet-service-peerstore.c.
References GNUNET_break, GNUNET_ERROR_TYPE_ERROR, GNUNET_log, and GNUNET_OK.
Referenced by hosts_directory_scan_callback().
|
static |
Definition at line 1130 of file gnunet-service-peerstore.c.
References _, GNUNET_PEERSTORE_PluginFunctions::cls, db, GNUNET_ALIGN, GNUNET_break, GNUNET_DISK_file_test(), GNUNET_DISK_fn_read(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_ERROR_TYPE_ERROR, GNUNET_HELLO_get_expiration_time_from_msg(), GNUNET_HELLO_parser_free(), GNUNET_HELLO_parser_from_msg(), GNUNET_HELLO_parser_get_id(), GNUNET_i2s(), GNUNET_log, GNUNET_MAX_MESSAGE_SIZE, GNUNET_OK, GNUNET_PEERSTORE_HELLO_KEY, GNUNET_PEERSTORE_STOREOPTION_MULTIPLE, GNUNET_YES, consensus-simulation::parser, pid, store_hello_continuation(), and GNUNET_PEERSTORE_PluginFunctions::store_record.
Referenced by run().
|
static |
Peerstore service runner.
cls | closure |
c | configuration to use |
service | the initialized service |
Definition at line 1197 of file gnunet-service-peerstore.c.
References _, cfg, cleanup_expired_records(), db, db_lib_name, expire_task, GNUNET_asprintf(), GNUNET_CONFIGURATION_get_value_string(), GNUNET_CONFIGURATION_get_value_yesno(), GNUNET_DISK_directory_scan(), GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_log_config_missing(), GNUNET_NO, GNUNET_notification_context_create(), GNUNET_OK, GNUNET_OS_installation_get_path(), GNUNET_OS_IPK_DATADIR, GNUNET_OS_project_data_gnunet(), GNUNET_PLUGIN_load(), GNUNET_SCHEDULER_add_now(), GNUNET_SCHEDULER_add_shutdown(), GNUNET_SCHEDULER_shutdown(), GNUNET_SYSERR, GNUNET_YES, hosts_directory_scan_callback(), monitor_nc, and shutdown_task().
GNUNET_SERVICE_MAIN | ( | GNUNET_OS_project_data_gnunet() | , |
"peerstore" | , | ||
GNUNET_SERVICE_OPTION_SOFT_SHUTDOWN | , | ||
& | run, | ||
& | client_connect_cb, | ||
& | client_disconnect_cb, | ||
NULL | , | ||
GNUNET_MQ_hd_var_size(store, GNUNET_MESSAGE_TYPE_PEERSTORE_STORE, struct PeerstoreRecordMessage, NULL) | , | ||
GNUNET_MQ_hd_var_size(iterate_start, GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATE_START, struct PeerstoreIterationStartMessage, NULL) | , | ||
GNUNET_MQ_hd_fixed_size(iterate_stop, GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATE_STOP, struct PeerstoreIterationStopMessage, NULL) | , | ||
GNUNET_MQ_hd_fixed_size(iterate_next, GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATE_NEXT, struct PeerstoreIterationNextMessage, NULL) | , | ||
GNUNET_MQ_hd_var_size(monitor_start, GNUNET_MESSAGE_TYPE_PEERSTORE_MONITOR_START, struct PeerstoreMonitorStartMessage, NULL) | , | ||
GNUNET_MQ_hd_fixed_size(monitor_next, GNUNET_MESSAGE_TYPE_PEERSTORE_MONITOR_NEXT, struct PeerstoreMonitorNextMessage, NULL) | , | ||
GNUNET_MQ_handler_end() | |||
) |
Define "main" method using service macro.
|
static |
|
static |
Database plugin library name.
Definition at line 257 of file gnunet-service-peerstore.c.
Referenced by run(), and shutdown_task().
|
static |
Database handle.
Definition at line 262 of file gnunet-service-peerstore.c.
Referenced by cleanup_expired_records(), handle_store(), hosts_directory_scan_callback(), monitor_iteration_next(), run(), run_iteration_round(), and shutdown_task().
|
static |
Task run to clean up expired records.
Definition at line 267 of file gnunet-service-peerstore.c.
Referenced by cleanup_expired_records(), expire_records_continuation(), run(), and shutdown_task().
|
static |
Monitor DLL.
Definition at line 272 of file gnunet-service-peerstore.c.
Referenced by client_disconnect_cb(), handle_monitor_next(), handle_monitor_start(), and watch_notifier().
|
static |
Monitor DLL.
Definition at line 277 of file gnunet-service-peerstore.c.
Referenced by client_disconnect_cb(), and handle_monitor_start().
|
static |
Notification context shared by all monitors.
Definition at line 282 of file gnunet-service-peerstore.c.
Referenced by handle_monitor_start(), run(), and shutdown_task().