From: Christian Grothoff Date: Fri, 17 Mar 2017 17:13:55 +0000 (+0100) Subject: more renamings relating to 'new' service now just being the 'normal' service X-Git-Tag: gnunet-0.11.0rc0~280^2~3^2~9 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=17d34d5e094c2f8a90717b07e3a711d6e2c15903;p=oweals%2Fgnunet.git more renamings relating to 'new' service now just being the 'normal' service --- diff --git a/src/arm/arm_api.c b/src/arm/arm_api.c index a61343833..56af544b1 100644 --- a/src/arm/arm_api.c +++ b/src/arm/arm_api.c @@ -753,7 +753,7 @@ change_service (struct GNUNET_ARM_Handle *h, slen = strlen (service_name) + 1; if (slen + sizeof (struct GNUNET_ARM_Message) >= - GNUNET_SERVER_MAX_MESSAGE_SIZE) + GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return NULL; diff --git a/src/arm/gnunet-service-arm.c b/src/arm/gnunet-service-arm.c index cc23ef1f6..19088c5cb 100644 --- a/src/arm/gnunet-service-arm.c +++ b/src/arm/gnunet-service-arm.c @@ -2225,7 +2225,7 @@ main (int argc, shc_chld = GNUNET_SIGNAL_handler_install (GNUNET_SIGCHLD, &sighandler_child_death); - ret = GNUNET_SERVICE_ruN_ (argc, + ret = GNUNET_SERVICE_run_ (argc, argv, "arm", GNUNET_SERVICE_OPTION_MANUAL_SHUTDOWN, diff --git a/src/ats/ats_api_scheduling.c b/src/ats/ats_api_scheduling.c index faeeb6081..81ae01b6a 100644 --- a/src/ats/ats_api_scheduling.c +++ b/src/ats/ats_api_scheduling.c @@ -657,9 +657,9 @@ GNUNET_ATS_address_add (struct GNUNET_ATS_SchedulingHandle *sh, GNUNET_break (GNUNET_ATS_NET_UNSPECIFIED != prop->scope); namelen = strlen (address->transport_name) + 1; msize = address->address_length + namelen; - if ((msize + sizeof (struct AddressUpdateMessage) >= GNUNET_SERVER_MAX_MESSAGE_SIZE) || - (address->address_length >= GNUNET_SERVER_MAX_MESSAGE_SIZE) || - (namelen >= GNUNET_SERVER_MAX_MESSAGE_SIZE) ) + if ((msize + sizeof (struct AddressUpdateMessage) >= GNUNET_MAX_MESSAGE_SIZE) || + (address->address_length >= GNUNET_MAX_MESSAGE_SIZE) || + (namelen >= GNUNET_MAX_MESSAGE_SIZE) ) { /* address too large for us, this should not happen */ GNUNET_break (0); diff --git a/src/ats/gnunet-service-ats_addresses.c b/src/ats/gnunet-service-ats_addresses.c index 1a4a33206..ba34cbacb 100644 --- a/src/ats/gnunet-service-ats_addresses.c +++ b/src/ats/gnunet-service-ats_addresses.c @@ -571,7 +571,7 @@ transmit_req_addr (struct AddressIteration *ai, msize = plugin_addr_len + plugin_name_length; GNUNET_assert (sizeof (struct PeerInformationMessage) + msize - < GNUNET_SERVER_MAX_MESSAGE_SIZE); + < GNUNET_MAX_MESSAGE_SIZE); env = GNUNET_MQ_msg_extra (msg, msize, GNUNET_MESSAGE_TYPE_ATS_ADDRESSLIST_RESPONSE); diff --git a/src/ats/gnunet-service-ats_performance.c b/src/ats/gnunet-service-ats_performance.c index 5252a71bc..07ddf0531 100644 --- a/src/ats/gnunet-service-ats_performance.c +++ b/src/ats/gnunet-service-ats_performance.c @@ -85,7 +85,7 @@ notify_client (struct GNUNET_SERVICE_Client *client, if (NULL != prop) GNUNET_break (GNUNET_ATS_NET_UNSPECIFIED != prop->scope); - GNUNET_assert (msize < GNUNET_SERVER_MAX_MESSAGE_SIZE); + GNUNET_assert (msize < GNUNET_MAX_MESSAGE_SIZE); msg = (struct PeerInformationMessage *) buf; msg->header.size = htons (msize); msg->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_PEER_INFORMATION); diff --git a/src/core/core_api.c b/src/core/core_api.c index fd789295d..ed8ce364d 100644 --- a/src/core/core_api.c +++ b/src/core/core_api.c @@ -321,7 +321,7 @@ core_mq_send_impl (struct GNUNET_MQ_Handle *mq, /* check message size for sanity */ msize = ntohs (msg->size); - if (msize >= GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (struct SendMessage)) + if (msize >= GNUNET_MAX_MESSAGE_SIZE - sizeof (struct SendMessage)) { GNUNET_break (0); GNUNET_MQ_impl_send_continue (mq); @@ -796,7 +796,7 @@ GNUNET_CORE_connect (const struct GNUNET_CONFIGURATION_Handle *cfg, h->handlers = GNUNET_MQ_copy_handlers (handlers); h->hcnt = GNUNET_MQ_count_handlers (handlers); GNUNET_assert (h->hcnt < - (GNUNET_SERVER_MAX_MESSAGE_SIZE - + (GNUNET_MAX_MESSAGE_SIZE - sizeof (struct InitMessage)) / sizeof (uint16_t)); LOG (GNUNET_ERROR_TYPE_DEBUG, "Connecting to CORE service\n"); diff --git a/src/core/gnunet-service-core.c b/src/core/gnunet-service-core.c index 31b91f12f..625bf9655 100644 --- a/src/core/gnunet-service-core.c +++ b/src/core/gnunet-service-core.c @@ -807,7 +807,7 @@ GSC_CLIENTS_deliver_message (const struct GNUNET_PeerIdentity *sender, { size_t size = msize + sizeof (struct NotifyTrafficMessage); - if (size >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (size >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; diff --git a/src/datastore/datastore_api.c b/src/datastore/datastore_api.c index ef7cd7532..c677654aa 100644 --- a/src/datastore/datastore_api.c +++ b/src/datastore/datastore_api.c @@ -1001,7 +1001,7 @@ GNUNET_DATASTORE_put (struct GNUNET_DATASTORE_Handle *h, struct DataMessage *dm; union QueueContext qc; - if (size + sizeof (*dm) >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (size + sizeof (*dm) >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return NULL; @@ -1212,7 +1212,7 @@ GNUNET_DATASTORE_remove (struct GNUNET_DATASTORE_Handle *h, struct GNUNET_MQ_Envelope *env; union QueueContext qc; - if (sizeof (*dm) + size >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (sizeof (*dm) + size >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return NULL; diff --git a/src/datastore/gnunet-service-datastore.c b/src/datastore/gnunet-service-datastore.c index bde2843a6..dabec3d6d 100644 --- a/src/datastore/gnunet-service-datastore.c +++ b/src/datastore/gnunet-service-datastore.c @@ -529,7 +529,7 @@ transmit_item (void *cls, return GNUNET_OK; } GNUNET_assert (sizeof (struct DataMessage) + size < - GNUNET_SERVER_MAX_MESSAGE_SIZE); + GNUNET_MAX_MESSAGE_SIZE); env = GNUNET_MQ_msg_extra (dm, size, GNUNET_MESSAGE_TYPE_DATASTORE_DATA); diff --git a/src/dht/dht_api.c b/src/dht/dht_api.c index ee208b50e..42ddc7b60 100644 --- a/src/dht/dht_api.c +++ b/src/dht/dht_api.c @@ -319,7 +319,7 @@ send_get_known_results (struct GNUNET_DHT_GetHandle *gh, unsigned int max; unsigned int transmission_offset; - max = (GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (*msg)) + max = (GNUNET_MAX_MESSAGE_SIZE - sizeof (*msg)) / sizeof (struct GNUNET_HashCode); transmission_offset = transmission_offset_start; while (transmission_offset < gh->seen_results_end) @@ -704,9 +704,9 @@ check_client_result (void *cls, sizeof (struct GNUNET_PeerIdentity) * (get_path_length + put_path_length); if ( (msize < meta_length) || (get_path_length > - GNUNET_SERVER_MAX_MESSAGE_SIZE / sizeof (struct GNUNET_PeerIdentity)) || + GNUNET_MAX_MESSAGE_SIZE / sizeof (struct GNUNET_PeerIdentity)) || (put_path_length > - GNUNET_SERVER_MAX_MESSAGE_SIZE / sizeof (struct GNUNET_PeerIdentity)) ) + GNUNET_MAX_MESSAGE_SIZE / sizeof (struct GNUNET_PeerIdentity)) ) { GNUNET_break (0); return GNUNET_SYSERR; @@ -998,8 +998,8 @@ GNUNET_DHT_put (struct GNUNET_DHT_Handle *handle, struct GNUNET_DHT_PutHandle *ph; msize = sizeof (struct GNUNET_DHT_ClientPutMessage) + size; - if ((msize >= GNUNET_SERVER_MAX_MESSAGE_SIZE) || - (size >= GNUNET_SERVER_MAX_MESSAGE_SIZE)) + if ((msize >= GNUNET_MAX_MESSAGE_SIZE) || + (size >= GNUNET_MAX_MESSAGE_SIZE)) { GNUNET_break (0); return NULL; @@ -1090,8 +1090,8 @@ GNUNET_DHT_get_start (struct GNUNET_DHT_Handle *handle, size_t msize; msize = sizeof (struct GNUNET_DHT_ClientGetMessage) + xquery_size; - if ((msize >= GNUNET_SERVER_MAX_MESSAGE_SIZE) || - (xquery_size >= GNUNET_SERVER_MAX_MESSAGE_SIZE)) + if ((msize >= GNUNET_MAX_MESSAGE_SIZE) || + (xquery_size >= GNUNET_MAX_MESSAGE_SIZE)) { GNUNET_break (0); return NULL; diff --git a/src/dht/gnunet-service-dht_clients.c b/src/dht/gnunet-service-dht_clients.c index 0f521a401..cb155c484 100644 --- a/src/dht/gnunet-service-dht_clients.c +++ b/src/dht/gnunet-service-dht_clients.c @@ -1166,7 +1166,7 @@ GDS_CLIENTS_handle_reply (struct GNUNET_TIME_Absolute expiration, msize = sizeof (struct GNUNET_DHT_ClientResultMessage) + data_size + (get_path_length + put_path_length) * sizeof (struct GNUNET_PeerIdentity); - if (msize >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (msize >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; diff --git a/src/dht/gnunet-service-dht_datacache.c b/src/dht/gnunet-service-dht_datacache.c index fef637cad..36047d561 100644 --- a/src/dht/gnunet-service-dht_datacache.c +++ b/src/dht/gnunet-service-dht_datacache.c @@ -72,7 +72,7 @@ GDS_DATACACHE_handle_put (struct GNUNET_TIME_Absolute expiration, _("%s request received, but have no datacache!\n"), "PUT"); return; } - if (data_size >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (data_size >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; diff --git a/src/dht/gnunet-service-dht_neighbours.c b/src/dht/gnunet-service-dht_neighbours.c index 15071edca..0309bea88 100644 --- a/src/dht/gnunet-service-dht_neighbours.c +++ b/src/dht/gnunet-service-dht_neighbours.c @@ -1423,7 +1423,7 @@ GDS_NEIGHBOURS_handle_get (enum GNUNET_BLOCK_Type type, UINT32_MAX); } msize = xquery_size + reply_bf_size; - if (msize + sizeof (struct PeerGetMessage) >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (msize + sizeof (struct PeerGetMessage) >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); GNUNET_free_non_null (reply_bf); @@ -1522,12 +1522,12 @@ GDS_NEIGHBOURS_handle_reply (const struct GNUNET_PeerIdentity *target, msize = data_size + (get_path_length + put_path_length) * sizeof (struct GNUNET_PeerIdentity); - if ((msize + sizeof (struct PeerResultMessage) >= GNUNET_SERVER_MAX_MESSAGE_SIZE) || + if ((msize + sizeof (struct PeerResultMessage) >= GNUNET_MAX_MESSAGE_SIZE) || (get_path_length > - GNUNET_SERVER_MAX_MESSAGE_SIZE / sizeof (struct GNUNET_PeerIdentity)) || + GNUNET_MAX_MESSAGE_SIZE / sizeof (struct GNUNET_PeerIdentity)) || (put_path_length > - GNUNET_SERVER_MAX_MESSAGE_SIZE / sizeof (struct GNUNET_PeerIdentity)) || - (data_size > GNUNET_SERVER_MAX_MESSAGE_SIZE)) + GNUNET_MAX_MESSAGE_SIZE / sizeof (struct GNUNET_PeerIdentity)) || + (data_size > GNUNET_MAX_MESSAGE_SIZE)) { GNUNET_break (0); return; @@ -1627,7 +1627,7 @@ check_dht_p2p_put (void *cls, sizeof (struct PeerPutMessage) + putlen * sizeof (struct GNUNET_PeerIdentity)) || (putlen > - GNUNET_SERVER_MAX_MESSAGE_SIZE / sizeof (struct GNUNET_PeerIdentity))) + GNUNET_MAX_MESSAGE_SIZE / sizeof (struct GNUNET_PeerIdentity))) { GNUNET_break_op (0); return GNUNET_SYSERR; @@ -2213,9 +2213,9 @@ check_dht_p2p_result (void *cls, put_path_length) * sizeof (struct GNUNET_PeerIdentity)) || (get_path_length > - GNUNET_SERVER_MAX_MESSAGE_SIZE / sizeof (struct GNUNET_PeerIdentity)) || + GNUNET_MAX_MESSAGE_SIZE / sizeof (struct GNUNET_PeerIdentity)) || (put_path_length > - GNUNET_SERVER_MAX_MESSAGE_SIZE / sizeof (struct GNUNET_PeerIdentity))) + GNUNET_MAX_MESSAGE_SIZE / sizeof (struct GNUNET_PeerIdentity))) { GNUNET_break_op (0); return GNUNET_SYSERR; diff --git a/src/dns/dns_api.c b/src/dns/dns_api.c index e7450a1d4..9f0dee9a9 100644 --- a/src/dns/dns_api.c +++ b/src/dns/dns_api.c @@ -317,7 +317,7 @@ GNUNET_DNS_request_answer (struct GNUNET_DNS_RequestHandle *rh, return; } if (reply_length + sizeof (struct GNUNET_DNS_Response) - >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); GNUNET_free (rh); diff --git a/src/dns/gnunet-helper-dns.c b/src/dns/gnunet-helper-dns.c index d083a9df2..5cf1967f5 100644 --- a/src/dns/gnunet-helper-dns.c +++ b/src/dns/gnunet-helper-dns.c @@ -79,7 +79,7 @@ #include "gnunet_protocols.h" /** - * Maximum size of a GNUnet message (GNUNET_SERVER_MAX_MESSAGE_SIZE) + * Maximum size of a GNUnet message (GNUNET_MAX_MESSAGE_SIZE) */ #define MAX_SIZE 65536 diff --git a/src/dns/gnunet-service-dns.c b/src/dns/gnunet-service-dns.c index 079f74ce4..ffc94afb7 100644 --- a/src/dns/gnunet-service-dns.c +++ b/src/dns/gnunet-service-dns.c @@ -347,7 +347,7 @@ request_done (struct RequestRecord *rr) } reply_len += sizeof (struct GNUNET_TUN_UdpHeader); reply_len += rr->payload_length; - if (reply_len >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (reply_len >= GNUNET_MAX_MESSAGE_SIZE) { /* response too big, drop */ GNUNET_break (0); /* how can this be? */ @@ -481,7 +481,7 @@ send_request_to_client (struct RequestRecord *rr, struct GNUNET_MQ_Envelope *env; struct GNUNET_DNS_Request *req; - if (sizeof (struct GNUNET_DNS_Request) + rr->payload_length >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (sizeof (struct GNUNET_DNS_Request) + rr->payload_length >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); cleanup_rr (rr); diff --git a/src/dv/dv_api.c b/src/dv/dv_api.c index 062f9a95f..ab521ec1f 100644 --- a/src/dv/dv_api.c +++ b/src/dv/dv_api.c @@ -437,7 +437,7 @@ GNUNET_DV_send (struct GNUNET_DV_ServiceHandle *sh, struct ConnectedPeer *peer; struct GNUNET_MQ_Envelope *env; - if (ntohs (msg->size) + sizeof (*sm) >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (ntohs (msg->size) + sizeof (*sm) >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; diff --git a/src/dv/gnunet-service-dv.c b/src/dv/gnunet-service-dv.c index 3fbd0cc03..fa1c16be8 100644 --- a/src/dv/gnunet-service-dv.c +++ b/src/dv/gnunet-service-dv.c @@ -399,7 +399,7 @@ send_data_to_plugin (const struct GNUNET_MessageHeader *message, (unsigned int) distance); size = sizeof (struct GNUNET_DV_ReceivedMessage) + ntohs (message->size); - if (size >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (size >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); /* too big */ return; @@ -537,7 +537,7 @@ forward_payload (struct DirectNeighbor *target, return; } if (sizeof (struct RouteMessage) + ntohs (payload->size) - >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; diff --git a/src/exit/gnunet-daemon-exit.c b/src/exit/gnunet-daemon-exit.c index 15a462ada..2cd3441a1 100644 --- a/src/exit/gnunet-daemon-exit.c +++ b/src/exit/gnunet-daemon-exit.c @@ -979,7 +979,7 @@ send_tcp_packet_via_tun (const struct SocketAddress *destination_address, } len += sizeof (struct GNUNET_TUN_TcpHeader); len += payload_length; - if (len >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (len >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; @@ -1079,7 +1079,7 @@ send_icmp_packet_via_tun (const struct SocketAddress *destination_address, } len += sizeof (struct GNUNET_TUN_IcmpHeader); len += payload_length; - if (len >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (len >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; @@ -1358,7 +1358,7 @@ send_udp_packet_via_tun (const struct SocketAddress *destination_address, } len += sizeof (struct GNUNET_TUN_UdpHeader); len += payload_length; - if (len >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (len >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; @@ -2884,7 +2884,7 @@ tcp_from_helper (const struct GNUNET_TUN_TcpHeader *tcp, mtcp->crc = 0; mlen = sizeof (struct GNUNET_EXIT_TcpDataMessage) + (pktlen - sizeof (struct GNUNET_TUN_TcpHeader)); - if (mlen >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (mlen >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; diff --git a/src/exit/gnunet-helper-exit-windows.c b/src/exit/gnunet-helper-exit-windows.c index 6be65ccd5..aa7a7a4a3 100644 --- a/src/exit/gnunet-helper-exit-windows.c +++ b/src/exit/gnunet-helper-exit-windows.c @@ -77,7 +77,7 @@ static boolean privilege_testing = FALSE; /** - * Maximum size of a GNUnet message (GNUNET_SERVER_MAX_MESSAGE_SIZE) + * Maximum size of a GNUnet message (GNUNET_MAX_MESSAGE_SIZE) */ #define MAX_SIZE 65536 diff --git a/src/exit/gnunet-helper-exit.c b/src/exit/gnunet-helper-exit.c index e14c6ca43..3c6f97557 100644 --- a/src/exit/gnunet-helper-exit.c +++ b/src/exit/gnunet-helper-exit.c @@ -62,7 +62,7 @@ #define DEBUG GNUNET_NO /** - * Maximum size of a GNUnet message (GNUNET_SERVER_MAX_MESSAGE_SIZE) + * Maximum size of a GNUnet message (GNUNET_MAX_MESSAGE_SIZE) */ #define MAX_SIZE 65536 diff --git a/src/fs/fs_publish.c b/src/fs/fs_publish.c index 86a58a58b..759467ba4 100644 --- a/src/fs/fs_publish.c +++ b/src/fs/fs_publish.c @@ -837,7 +837,7 @@ hash_for_index_cb (void *cls, GNUNET_assert (fn != NULL); slen = strlen (fn) + 1; if (slen >= - GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (struct IndexStartMessage)) + GNUNET_MAX_MESSAGE_SIZE - sizeof (struct IndexStartMessage)) { GNUNET_log (GNUNET_ERROR_TYPE_WARNING, _ @@ -1226,7 +1226,7 @@ fip_signal_start (void *cls, { kc = GNUNET_FS_uri_ksk_get_keyword_count (*uri); pc->reserve_entries += kc; - pc->reserve_space += GNUNET_SERVER_MAX_MESSAGE_SIZE * kc; + pc->reserve_space += GNUNET_MAX_MESSAGE_SIZE * kc; } pi.status = GNUNET_FS_STATUS_PUBLISH_START; *client_info = GNUNET_FS_publish_make_status_ (&pi, pc, fi, 0); diff --git a/src/fs/fs_search.c b/src/fs/fs_search.c index 01e65ed57..8c6f5edcf 100644 --- a/src/fs/fs_search.c +++ b/src/fs/fs_search.c @@ -1121,7 +1121,7 @@ schedule_transmit_search_request (struct GNUNET_FS_SearchContext *sc) if (0 != (sc->options & GNUNET_FS_SEARCH_OPTION_LOOPBACK_ONLY)) options |= SEARCH_MESSAGE_OPTION_LOOPBACK_ONLY; - fit = (GNUNET_SERVER_MAX_MESSAGE_SIZE - 1 - sizeof (*sm)) / sizeof (struct GNUNET_HashCode); + fit = (GNUNET_MAX_MESSAGE_SIZE - 1 - sizeof (*sm)) / sizeof (struct GNUNET_HashCode); todo = GNUNET_MIN (fit, left); env = GNUNET_MQ_msg_extra (sm, diff --git a/src/fs/gnunet-service-fs_cadet_server.c b/src/fs/gnunet-service-fs_cadet_server.c index 8567e63a2..b1a098175 100644 --- a/src/fs/gnunet-service-fs_cadet_server.c +++ b/src/fs/gnunet-service-fs_cadet_server.c @@ -289,7 +289,7 @@ handle_datastore_reply (void *cls, } return; } - if (msize > GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (msize > GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); continue_writing (sc); diff --git a/src/fs/gnunet-service-fs_cp.c b/src/fs/gnunet-service-fs_cp.c index 3f7783ded..817aed257 100644 --- a/src/fs/gnunet-service-fs_cp.c +++ b/src/fs/gnunet-service-fs_cp.c @@ -859,7 +859,7 @@ handle_p2p_reply (void *cls, size_t msize; GNUNET_assert (data_len + sizeof (struct PutMessage) < - GNUNET_SERVER_MAX_MESSAGE_SIZE); + GNUNET_MAX_MESSAGE_SIZE); GNUNET_assert (peerreq->pr == pr); prd = GSF_pending_request_get_data_ (pr); if (NULL == data) @@ -883,7 +883,7 @@ handle_p2p_reply (void *cls, gettext_noop ("# replies received for other peers"), 1, GNUNET_NO); msize = sizeof (struct PutMessage) + data_len; - if (msize >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (msize >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; diff --git a/src/fs/gnunet-service-fs_indexing.c b/src/fs/gnunet-service-fs_indexing.c index 3ce68f487..ce6bcec41 100644 --- a/src/fs/gnunet-service-fs_indexing.c +++ b/src/fs/gnunet-service-fs_indexing.c @@ -438,7 +438,7 @@ GNUNET_FS_indexing_send_list (struct GNUNET_MQ_Handle *mq) fn = pos->filename; slen = strlen (fn) + 1; if (slen + sizeof (struct IndexInfoMessage) >= - GNUNET_SERVER_MAX_MESSAGE_SIZE) + GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); break; diff --git a/src/gns/gns_api.c b/src/gns/gns_api.c index 15a59a4bc..26293f4df 100644 --- a/src/gns/gns_api.c +++ b/src/gns/gns_api.c @@ -391,7 +391,7 @@ GNUNET_GNS_lookup (struct GNUNET_GNS_Handle *handle, "Trying to lookup `%s' in GNS\n", name); nlen = strlen (name) + 1; - if (nlen >= GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (*lr)) + if (nlen >= GNUNET_MAX_MESSAGE_SIZE - sizeof (*lr)) { GNUNET_break (0); return NULL; diff --git a/src/hello/hello.c b/src/hello/hello.c index f9b21aa4f..27580275f 100644 --- a/src/hello/hello.c +++ b/src/hello/hello.c @@ -206,7 +206,7 @@ GNUNET_HELLO_create (const struct GNUNET_CRYPTO_EddsaPublicKey *public_key, void *addrgen_cls, int friend_only) { - char buffer[GNUNET_SERVER_MAX_MESSAGE_SIZE - 1 - 256 - + char buffer[GNUNET_MAX_MESSAGE_SIZE - 1 - 256 - sizeof (struct GNUNET_HELLO_Message)]; size_t max; size_t used; diff --git a/src/hostlist/gnunet-daemon-hostlist_client.c b/src/hostlist/gnunet-daemon-hostlist_client.c index a973fcc28..207cc4a81 100644 --- a/src/hostlist/gnunet-daemon-hostlist_client.c +++ b/src/hostlist/gnunet-daemon-hostlist_client.c @@ -350,7 +350,7 @@ callback_download (void *ptr, size_t nmemb, void *ctx) { - static char download_buffer[GNUNET_SERVER_MAX_MESSAGE_SIZE - 1]; + static char download_buffer[GNUNET_MAX_MESSAGE_SIZE - 1]; const char *cbuf = ptr; const struct GNUNET_MessageHeader *msg; struct HelloOffer *ho; @@ -373,7 +373,7 @@ callback_download (void *ptr, left = total; while ((left > 0) || (download_pos > 0)) { - cpy = GNUNET_MIN (left, GNUNET_SERVER_MAX_MESSAGE_SIZE - 1 - download_pos); + cpy = GNUNET_MIN (left, GNUNET_MAX_MESSAGE_SIZE - 1 - download_pos); GNUNET_memcpy (&download_buffer[download_pos], cbuf, cpy); cbuf += cpy; download_pos += cpy; @@ -1042,7 +1042,7 @@ download_hostlist () #if 0 CURL_EASY_SETOPT (curl, CURLOPT_VERBOSE, 1); #endif - CURL_EASY_SETOPT (curl, CURLOPT_BUFFERSIZE, GNUNET_SERVER_MAX_MESSAGE_SIZE); + CURL_EASY_SETOPT (curl, CURLOPT_BUFFERSIZE, GNUNET_MAX_MESSAGE_SIZE); if (0 == strncmp (current_url, "http", 4)) CURL_EASY_SETOPT (curl, CURLOPT_USERAGENT, "GNUnet"); CURL_EASY_SETOPT (curl, CURLOPT_CONNECTTIMEOUT, 60L); diff --git a/src/hostlist/gnunet-daemon-hostlist_server.c b/src/hostlist/gnunet-daemon-hostlist_server.c index 48c1a5622..3df6f1ef8 100644 --- a/src/hostlist/gnunet-daemon-hostlist_server.c +++ b/src/hostlist/gnunet-daemon-hostlist_server.c @@ -489,7 +489,7 @@ connect_handler (void *cls, return NULL; size = strlen (hostlist_uri) + 1; if (size + sizeof (struct GNUNET_MessageHeader) >= - GNUNET_SERVER_MAX_MESSAGE_SIZE) + GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return NULL; diff --git a/src/identity-provider/identity_provider_api.c b/src/identity-provider/identity_provider_api.c index 32c3cb703..845d1f753 100644 --- a/src/identity-provider/identity_provider_api.c +++ b/src/identity-provider/identity_provider_api.c @@ -440,7 +440,7 @@ GNUNET_IDENTITY_PROVIDER_issue_token (struct GNUNET_IDENTITY_PROVIDER_Handle *id size_t slen; slen = strlen (scopes) + 1; - if (slen >= GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (struct IssueMessage)) + if (slen >= GNUNET_MAX_MESSAGE_SIZE - sizeof (struct IssueMessage)) { GNUNET_break (0); return NULL; @@ -493,7 +493,7 @@ GNUNET_IDENTITY_PROVIDER_exchange_ticket (struct GNUNET_IDENTITY_PROVIDER_Handle ticket_str = GNUNET_IDENTITY_PROVIDER_ticket_to_string (ticket); slen = strlen (ticket_str) + 1; - if (slen >= GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (struct ExchangeMessage)) + if (slen >= GNUNET_MAX_MESSAGE_SIZE - sizeof (struct ExchangeMessage)) { GNUNET_free (ticket_str); GNUNET_break (0); diff --git a/src/identity/identity_api.c b/src/identity/identity_api.c index 905b3fd8b..1601ae2fd 100644 --- a/src/identity/identity_api.c +++ b/src/identity/identity_api.c @@ -671,7 +671,7 @@ GNUNET_IDENTITY_get (struct GNUNET_IDENTITY_Handle *h, if (NULL == h->mq) return NULL; slen = strlen (service_name) + 1; - if (slen >= GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (struct GetDefaultMessage)) + if (slen >= GNUNET_MAX_MESSAGE_SIZE - sizeof (struct GetDefaultMessage)) { GNUNET_break (0); return NULL; @@ -722,7 +722,7 @@ GNUNET_IDENTITY_set (struct GNUNET_IDENTITY_Handle *h, if (NULL == h->mq) return NULL; slen = strlen (service_name) + 1; - if (slen >= GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (struct SetDefaultMessage)) + if (slen >= GNUNET_MAX_MESSAGE_SIZE - sizeof (struct SetDefaultMessage)) { GNUNET_break (0); return NULL; @@ -773,7 +773,7 @@ GNUNET_IDENTITY_create (struct GNUNET_IDENTITY_Handle *h, if (NULL == h->mq) return NULL; slen = strlen (name) + 1; - if (slen >= GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (struct CreateRequestMessage)) + if (slen >= GNUNET_MAX_MESSAGE_SIZE - sizeof (struct CreateRequestMessage)) { GNUNET_break (0); return NULL; @@ -830,9 +830,9 @@ GNUNET_IDENTITY_rename (struct GNUNET_IDENTITY_Handle *h, return NULL; slen_old = strlen (old_name) + 1; slen_new = strlen (new_name) + 1; - if ( (slen_old >= GNUNET_SERVER_MAX_MESSAGE_SIZE) || - (slen_new >= GNUNET_SERVER_MAX_MESSAGE_SIZE) || - (slen_old + slen_new >= GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (struct RenameMessage)) ) + if ( (slen_old >= GNUNET_MAX_MESSAGE_SIZE) || + (slen_new >= GNUNET_MAX_MESSAGE_SIZE) || + (slen_old + slen_new >= GNUNET_MAX_MESSAGE_SIZE - sizeof (struct RenameMessage)) ) { GNUNET_break (0); return NULL; @@ -885,7 +885,7 @@ GNUNET_IDENTITY_delete (struct GNUNET_IDENTITY_Handle *h, if (NULL == h->mq) return NULL; slen = strlen (name) + 1; - if (slen >= GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (struct DeleteMessage)) + if (slen >= GNUNET_MAX_MESSAGE_SIZE - sizeof (struct DeleteMessage)) { GNUNET_break (0); return NULL; diff --git a/src/include/gnunet_bandwidth_lib.h b/src/include/gnunet_bandwidth_lib.h index 178ddaaac..967d50dea 100644 --- a/src/include/gnunet_bandwidth_lib.h +++ b/src/include/gnunet_bandwidth_lib.h @@ -133,7 +133,7 @@ struct GNUNET_BANDWIDTH_Tracker /** * Maximum number of seconds over which bandwidth may "accumulate". * Note that additionally, we also always allow at least - * #GNUNET_SERVER_MAX_MESSAGE_SIZE to accumulate. + * #GNUNET_MAX_MESSAGE_SIZE to accumulate. */ uint32_t max_carry_s__; }; @@ -214,10 +214,10 @@ GNUNET_BANDWIDTH_value_max (struct GNUNET_BANDWIDTH_Value32NBO b1, /** * Initialize bandwidth tracker. Note that in addition to the * 'max_carry_s' limit, we also always allow at least - * #GNUNET_SERVER_MAX_MESSAGE_SIZE to accumulate. So if the + * #GNUNET_MAX_MESSAGE_SIZE to accumulate. So if the * bytes-per-second limit is so small that within 'max_carry_s' not - * even #GNUNET_SERVER_MAX_MESSAGE_SIZE is allowed to accumulate, it is - * ignored and replaced by #GNUNET_SERVER_MAX_MESSAGE_SIZE (which is in + * even #GNUNET_MAX_MESSAGE_SIZE is allowed to accumulate, it is + * ignored and replaced by #GNUNET_MAX_MESSAGE_SIZE (which is in * bytes). * * @param av tracker to initialize @@ -238,10 +238,10 @@ GNUNET_BANDWIDTH_tracker_init (struct GNUNET_BANDWIDTH_Tracker *av, /** * Initialize bandwidth tracker. Note that in addition to the * 'max_carry_s' limit, we also always allow at least - * GNUNET_SERVER_MAX_MESSAGE_SIZE to accumulate. So if the + * GNUNET_MAX_MESSAGE_SIZE to accumulate. So if the * bytes-per-second limit is so small that within 'max_carry_s' not - * even GNUNET_SERVER_MAX_MESSAGE_SIZE is allowed to accumulate, it is - * ignored and replaced by GNUNET_SERVER_MAX_MESSAGE_SIZE (which is in + * even GNUNET_MAX_MESSAGE_SIZE is allowed to accumulate, it is + * ignored and replaced by GNUNET_MAX_MESSAGE_SIZE (which is in * bytes). * * @param av tracker to initialize diff --git a/src/include/gnunet_constants.h b/src/include/gnunet_constants.h index 1d0232cea..1c48298a0 100644 --- a/src/include/gnunet_constants.h +++ b/src/include/gnunet_constants.h @@ -40,6 +40,8 @@ extern "C" #endif #endif + + /** * Bandwidth (in/out) to assume initially (before either peer has * communicated any particular preference). Should be rather low; set diff --git a/src/include/gnunet_service_lib.h b/src/include/gnunet_service_lib.h index c506fc6fa..aacafe956 100644 --- a/src/include/gnunet_service_lib.h +++ b/src/include/gnunet_service_lib.h @@ -1,6 +1,6 @@ /* This file is part of GNUnet. - Copyright (C) 2009-2013, 2016 GNUnet e.V. + Copyright (C) 2009-2013, 2016, 2017 GNUnet e.V. GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -46,27 +46,6 @@ extern "C" #include "gnunet_configuration_lib.h" #include "gnunet_mq_lib.h" -/** - * Largest supported message (to be precise, one byte more - * than the largest possible message, so tests involving - * this value should check for messages being smaller than - * this value). NOTE: legacy name. - */ -#define GNUNET_SERVER_MAX_MESSAGE_SIZE 65536 - -/** - * Smallest supported message. NOTE: legacy name. - */ -#define GNUNET_SERVER_MIN_BUFFER_SIZE sizeof (struct GNUNET_MessageHeader) - -/** - * Timeout we use on TCP connect before trying another - * result from the DNS resolver. Actual value used - * is this value divided by the number of address families. - * Default is 5s. NOTE: legacy name. - */ -#define GNUNET_CONNECTION_CONNECT_RETRY_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5) - /** * Options for the service (bitmask). @@ -95,51 +74,6 @@ enum GNUNET_SERVICE_Options - -/** - * Opaque handle for a service. - */ -struct GNUNET_SERVICE_Context; - - -/** - * Run a service startup sequence within an existing - * initialized system. - * - * @param service_name our service name - * @param cfg configuration to use - * @param options service options - * @return NULL on error, service handle - * @deprecated - */ -struct GNUNET_SERVICE_Context * -GNUNET_SERVICE_start (const char *service_name, - const struct GNUNET_CONFIGURATION_Handle *cfg, - enum GNUNET_SERVICE_Options options); - - -/** - * Get the NULL-terminated array of listen sockets for this service. - * - * @param ctx service context to query - * @return NULL if there are no listen sockets, otherwise NULL-terminated - * array of listen sockets. - * @deprecated - */ -struct GNUNET_NETWORK_Handle *const * -GNUNET_SERVICE_get_listen_sockets (struct GNUNET_SERVICE_Context *ctx); - - -/** - * Stop a service that was started with #GNUNET_SERVICE_start. - * - * @param sctx the service context returned from the start function - * @deprecated - */ -void -GNUNET_SERVICE_stop (struct GNUNET_SERVICE_Context *sctx); - - /* **************** NEW SERVICE API ********************** */ /** @@ -218,7 +152,7 @@ typedef void * dropped. Additionally, clients can be dropped at any time using * #GNUNET_SERVICE_client_drop(). * - * The service must be stopped using #GNUNET_SERVICE_stoP(). + * The service must be stopped using #GNUNET_SERVICE_stop(). * * @param service_name name of the service to run * @param cfg configuration to use @@ -231,7 +165,7 @@ typedef void * @return NULL on error */ struct GNUNET_SERVICE_Handle * -GNUNET_SERVICE_starT (const char *service_name, +GNUNET_SERVICE_start (const char *service_name, const struct GNUNET_CONFIGURATION_Handle *cfg, GNUNET_SERVICE_ConnectHandler connect_cb, GNUNET_SERVICE_DisconnectHandler disconnect_cb, @@ -240,12 +174,12 @@ GNUNET_SERVICE_starT (const char *service_name, /** - * Stops a service that was started with #GNUNET_SERVICE_starT(). + * Stops a service that was started with #GNUNET_SERVICE_start(). * * @param srv service to stop */ void -GNUNET_SERVICE_stoP (struct GNUNET_SERVICE_Handle *srv); +GNUNET_SERVICE_stop (struct GNUNET_SERVICE_Handle *srv); /** @@ -290,7 +224,7 @@ GNUNET_SERVICE_stoP (struct GNUNET_SERVICE_Handle *srv); * @return 0 on success, non-zero on error */ int -GNUNET_SERVICE_ruN_ (int argc, +GNUNET_SERVICE_run_ (int argc, char *const *argv, const char *service_name, enum GNUNET_SERVICE_Options options, @@ -366,7 +300,7 @@ GNUNET_SERVICE_ruN_ (int argc, struct GNUNET_MQ_MessageHandler mh[] = { \ __VA_ARGS__ \ }; \ - return GNUNET_SERVICE_ruN_ (argc, \ + return GNUNET_SERVICE_run_ (argc, \ argv, \ service_name, \ service_options, \ diff --git a/src/include/gnunet_util_lib.h b/src/include/gnunet_util_lib.h index b42751d2a..a9bd6c33f 100644 --- a/src/include/gnunet_util_lib.h +++ b/src/include/gnunet_util_lib.h @@ -38,6 +38,21 @@ extern "C" #endif #endif + +/** + * Largest supported message (to be precise, one byte more + * than the largest possible message, so tests involving + * this value should check for messages being smaller than + * this value). + */ +#define GNUNET_MAX_MESSAGE_SIZE 65536 + +/** + * Smallest supported message. + */ +#define GNUNET_MIN_MESSAGE_SIZE sizeof (struct GNUNET_MessageHeader) + + #include "gnunet_crypto_lib.h" #include "gnunet_bandwidth_lib.h" #include "gnunet_bio_lib.h" diff --git a/src/namestore/gnunet-service-namestore.c b/src/namestore/gnunet-service-namestore.c index ae65802b0..6cb4290a0 100644 --- a/src/namestore/gnunet-service-namestore.c +++ b/src/namestore/gnunet-service-namestore.c @@ -1136,7 +1136,7 @@ handle_zone_to_name_it (void *cls, name_len = (NULL == name) ? 0 : strlen (name) + 1; rd_ser_len = GNUNET_GNSRECORD_records_get_size (rd_count, rd); msg_size = sizeof (struct ZoneToNameResponseMessage) + name_len + rd_ser_len; - if (msg_size >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (msg_size >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); ztn_ctx->success = GNUNET_SYSERR; diff --git a/src/nat-auto/nat_auto_api.c b/src/nat-auto/nat_auto_api.c index 6660239c3..8a7eaf264 100644 --- a/src/nat-auto/nat_auto_api.c +++ b/src/nat-auto/nat_auto_api.c @@ -224,7 +224,7 @@ GNUNET_NAT_AUTO_autoconfig_start (const struct GNUNET_CONFIGURATION_Handle *cfg, buf = GNUNET_CONFIGURATION_serialize (cfg, &size); - if (size > GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (*req)) + if (size > GNUNET_MAX_MESSAGE_SIZE - sizeof (*req)) { GNUNET_break (0); GNUNET_free (buf); diff --git a/src/nat/nat_api.c b/src/nat/nat_api.c index a0e9f4793..69612584e 100644 --- a/src/nat/nat_api.c +++ b/src/nat/nat_api.c @@ -403,7 +403,7 @@ GNUNET_NAT_register (const struct GNUNET_CONFIGURATION_Handle *cfg, len += addrlens[i]; str_len = strlen (config_section) + 1; len += str_len; - if ( (len > GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (*rm)) || + if ( (len > GNUNET_MAX_MESSAGE_SIZE - sizeof (*rm)) || (num_addrs > UINT16_MAX) ) { GNUNET_break (0); diff --git a/src/peerinfo/gnunet-service-peerinfo.c b/src/peerinfo/gnunet-service-peerinfo.c index bc4a2a10d..731c24bf1 100644 --- a/src/peerinfo/gnunet-service-peerinfo.c +++ b/src/peerinfo/gnunet-service-peerinfo.c @@ -283,7 +283,7 @@ read_host_file (const char *fn, int unlink_garbage, struct ReadHostFileContext *r) { - char buffer[GNUNET_SERVER_MAX_MESSAGE_SIZE - 1] GNUNET_ALIGN; + char buffer[GNUNET_MAX_MESSAGE_SIZE - 1] GNUNET_ALIGN; ssize_t size_total; struct GNUNET_TIME_Absolute now; unsigned int left; @@ -919,7 +919,7 @@ add_to_tc (void *cls, { /* Copy public HELLO */ hs = GNUNET_HELLO_size (pos->hello); - GNUNET_assert (hs < GNUNET_SERVER_MAX_MESSAGE_SIZE - + GNUNET_assert (hs < GNUNET_MAX_MESSAGE_SIZE - sizeof (struct InfoMessage)); env = GNUNET_MQ_msg_extra (im, hs, @@ -937,7 +937,7 @@ add_to_tc (void *cls, { /* Copy friend only HELLO */ hs = GNUNET_HELLO_size (pos->friend_only_hello); - GNUNET_assert (hs < GNUNET_SERVER_MAX_MESSAGE_SIZE - + GNUNET_assert (hs < GNUNET_MAX_MESSAGE_SIZE - sizeof (struct InfoMessage)); env = GNUNET_MQ_msg_extra (im, hs, @@ -977,7 +977,7 @@ discard_hosts_helper (void *cls, const char *fn) { struct GNUNET_TIME_Absolute *now = cls; - char buffer[GNUNET_SERVER_MAX_MESSAGE_SIZE - 1] GNUNET_ALIGN; + char buffer[GNUNET_MAX_MESSAGE_SIZE - 1] GNUNET_ALIGN; const struct GNUNET_HELLO_Message *hello; struct GNUNET_HELLO_Message *new_hello; int read_size; diff --git a/src/psyc/psyc_api.c b/src/psyc/psyc_api.c index c6544df3a..c93d8b383 100644 --- a/src/psyc/psyc_api.c +++ b/src/psyc/psyc_api.c @@ -1309,7 +1309,7 @@ channel_history_replay (struct GNUNET_PSYC_Channel *chn, GNUNET_assert (NULL != method_prefix); uint16_t method_size = strnlen (method_prefix, - GNUNET_SERVER_MAX_MESSAGE_SIZE + GNUNET_MAX_MESSAGE_SIZE - sizeof (*req)) + 1; GNUNET_assert ('\0' == method_prefix[method_size - 1]); @@ -1454,7 +1454,7 @@ channel_state_get (struct GNUNET_PSYC_Channel *chn, sr->op_id = GNUNET_OP_add (chn->op, op_recv_state_result, sr, NULL); GNUNET_assert (NULL != name); - size_t name_size = strnlen (name, GNUNET_SERVER_MAX_MESSAGE_SIZE + size_t name_size = strnlen (name, GNUNET_MAX_MESSAGE_SIZE - sizeof (*req)) + 1; struct GNUNET_MQ_Envelope * env = GNUNET_MQ_msg_extra (req, name_size, type); diff --git a/src/psycstore/gnunet-service-psycstore.c b/src/psycstore/gnunet-service-psycstore.c index 10c92a878..1bee8da65 100644 --- a/src/psycstore/gnunet-service-psycstore.c +++ b/src/psycstore/gnunet-service-psycstore.c @@ -106,7 +106,7 @@ send_result_code (struct GNUNET_SERVICE_Client *client, if (NULL != err_msg) err_size = strnlen (err_msg, - GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (*res) - 1) + 1; + GNUNET_MAX_MESSAGE_SIZE - sizeof (*res) - 1) + 1; struct GNUNET_MQ_Envelope * env = GNUNET_MQ_msg_extra (res, err_size, GNUNET_MESSAGE_TYPE_PSYCSTORE_RESULT_CODE); diff --git a/src/psycstore/psycstore_api.c b/src/psycstore/psycstore_api.c index 40322662e..d79daa357 100644 --- a/src/psycstore/psycstore_api.c +++ b/src/psycstore/psycstore_api.c @@ -809,7 +809,7 @@ GNUNET_PSYCSTORE_message_get (struct GNUNET_PSYCSTORE_Handle *h, if (NULL == method_prefix) method_prefix = ""; uint16_t method_size = strnlen (method_prefix, - GNUNET_SERVER_MAX_MESSAGE_SIZE + GNUNET_MAX_MESSAGE_SIZE - sizeof (*req)) + 1; struct GNUNET_MQ_Envelope * @@ -875,7 +875,7 @@ GNUNET_PSYCSTORE_message_get_latest (struct GNUNET_PSYCSTORE_Handle *h, if (NULL == method_prefix) method_prefix = ""; uint16_t method_size = strnlen (method_prefix, - GNUNET_SERVER_MAX_MESSAGE_SIZE + GNUNET_MAX_MESSAGE_SIZE - sizeof (*req)) + 1; GNUNET_assert ('\0' == method_prefix[method_size - 1]); diff --git a/src/regex/gnunet-service-regex.c b/src/regex/gnunet-service-regex.c index e763bf08d..9a40a5264 100644 --- a/src/regex/gnunet-service-regex.c +++ b/src/regex/gnunet-service-regex.c @@ -220,7 +220,7 @@ handle_search_result (void *cls, if ( (get_path_length >= 65536) || (put_path_length >= 65536) || ( (get_path_length + put_path_length) * sizeof (struct GNUNET_PeerIdentity)) - + sizeof (struct ResultMessage) >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + + sizeof (struct ResultMessage) >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; diff --git a/src/regex/regex_api_announce.c b/src/regex/regex_api_announce.c index 70bf34bc8..8e018f26c 100644 --- a/src/regex/regex_api_announce.c +++ b/src/regex/regex_api_announce.c @@ -146,7 +146,7 @@ GNUNET_REGEX_announce (const struct GNUNET_CONFIGURATION_Handle *cfg, size_t slen; slen = strlen (regex) + 1; - if (slen + sizeof (struct AnnounceMessage) >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (slen + sizeof (struct AnnounceMessage) >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_log (GNUNET_ERROR_TYPE_WARNING, _("Regex `%s' is too long!\n"), diff --git a/src/regex/regex_api_search.c b/src/regex/regex_api_search.c index b7a015f87..a5480ac7a 100644 --- a/src/regex/regex_api_search.c +++ b/src/regex/regex_api_search.c @@ -206,7 +206,7 @@ GNUNET_REGEX_search (const struct GNUNET_CONFIGURATION_Handle *cfg, struct GNUNET_REGEX_Search *s; size_t slen = strlen (string) + 1; - if (slen + sizeof (struct RegexSearchMessage) >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (slen + sizeof (struct RegexSearchMessage) >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_log (GNUNET_ERROR_TYPE_WARNING, _("Search string `%s' is too long!\n"), diff --git a/src/rps/gnunet-service-rps.c b/src/rps/gnunet-service-rps.c index 4a2f96123..0a4543b30 100644 --- a/src/rps/gnunet-service-rps.c +++ b/src/rps/gnunet-service-rps.c @@ -1026,7 +1026,7 @@ client_respond (void *cls, size_needed = sizeof (struct GNUNET_RPS_CS_ReplyMessage) + num_peers * sizeof (struct GNUNET_PeerIdentity); - GNUNET_assert (GNUNET_SERVER_MAX_MESSAGE_SIZE >= size_needed); + GNUNET_assert (GNUNET_MAX_MESSAGE_SIZE >= size_needed); ev = GNUNET_MQ_msg_extra (out_msg, num_peers * sizeof (struct GNUNET_PeerIdentity), @@ -1067,7 +1067,7 @@ handle_client_request (void *cls, size_needed = sizeof (struct GNUNET_RPS_CS_RequestMessage) + num_peers * sizeof (struct GNUNET_PeerIdentity); - if (GNUNET_SERVER_MAX_MESSAGE_SIZE < size_needed) + if (GNUNET_MAX_MESSAGE_SIZE < size_needed) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Message received from client has size larger than expected\n"); diff --git a/src/rps/rps_api.c b/src/rps/rps_api.c index 504f28b92..ccd480086 100644 --- a/src/rps/rps_api.c +++ b/src/rps/rps_api.c @@ -389,12 +389,12 @@ GNUNET_RPS_seed_ids (struct GNUNET_RPS_Handle *h, n * sizeof (struct GNUNET_PeerIdentity); /* The number of peers that fits in one message together with * the respective header */ - num_peers_max = (GNUNET_SERVER_MAX_MESSAGE_SIZE - + num_peers_max = (GNUNET_MAX_MESSAGE_SIZE - sizeof (struct GNUNET_RPS_CS_SeedMessage)) / sizeof (struct GNUNET_PeerIdentity); tmp_peer_pointer = ids; - while (GNUNET_SERVER_MAX_MESSAGE_SIZE < size_needed) + while (GNUNET_MAX_MESSAGE_SIZE < size_needed) { ev = GNUNET_MQ_msg_extra (msg, num_peers_max * sizeof (struct GNUNET_PeerIdentity), GNUNET_MESSAGE_TYPE_RPS_CS_SEED); @@ -463,12 +463,12 @@ GNUNET_RPS_act_malicious (struct GNUNET_RPS_Handle *h, num_peers * sizeof (struct GNUNET_PeerIdentity); /* The number of peers that fit in one message together with * the respective header */ - num_peers_max = (GNUNET_SERVER_MAX_MESSAGE_SIZE - + num_peers_max = (GNUNET_MAX_MESSAGE_SIZE - sizeof (struct GNUNET_RPS_CS_SeedMessage)) / sizeof (struct GNUNET_PeerIdentity); tmp_peer_pointer = peer_ids; - while (GNUNET_SERVER_MAX_MESSAGE_SIZE < size_needed) + while (GNUNET_MAX_MESSAGE_SIZE < size_needed) { LOG (GNUNET_ERROR_TYPE_DEBUG, "Too many peers to send at once, sending %" PRIu32 " (all we can so far)\n", diff --git a/src/rps/test_rps.c b/src/rps/test_rps.c index 1ce174454..acd3a165d 100644 --- a/src/rps/test_rps.c +++ b/src/rps/test_rps.c @@ -546,7 +546,7 @@ seed_peers_big (void *cls) unsigned int i; seed_msg_size = 8; /* sizeof (struct GNUNET_RPS_CS_SeedMessage) */ - num_peers_max = (GNUNET_SERVER_MAX_MESSAGE_SIZE - seed_msg_size) / + num_peers_max = (GNUNET_MAX_MESSAGE_SIZE - seed_msg_size) / sizeof (struct GNUNET_PeerIdentity); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peers that fit in one seed msg; %u\n", @@ -980,7 +980,7 @@ seed_cb (struct RPSPeer *rps_peer) static void seed_big_cb (struct RPSPeer *rps_peer) { - // TODO test seeding > GNUNET_SERVER_MAX_MESSAGE_SIZE peers + // TODO test seeding > GNUNET_MAX_MESSAGE_SIZE peers GNUNET_SCHEDULER_add_delayed ( GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 2), seed_peers_big, rps_peer); @@ -1457,7 +1457,7 @@ main (int argc, char *argv[]) else if (strstr (argv[0], "_seed_big") != NULL) { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Test seeding (num_peers > GNUNET_SERVER_MAX_MESSAGE_SIZE)\n"); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Test seeding (num_peers > GNUNET_MAX_MESSAGE_SIZE)\n"); num_peers = 1; cur_test_run.name = "test-rps-seed-big"; cur_test_run.main_test = seed_big_cb; diff --git a/src/scalarproduct/scalarproduct_api.c b/src/scalarproduct/scalarproduct_api.c index df9f8d196..05c122e74 100644 --- a/src/scalarproduct/scalarproduct_api.c +++ b/src/scalarproduct/scalarproduct_api.c @@ -268,7 +268,7 @@ GNUNET_SCALARPRODUCT_accept_computation (const struct GNUNET_CONFIGURATION_Handl GNUNET_free (h); return NULL; } - possible = (GNUNET_SERVER_MAX_MESSAGE_SIZE - 1 - sizeof (struct BobComputationMessage)) + possible = (GNUNET_MAX_MESSAGE_SIZE - 1 - sizeof (struct BobComputationMessage)) / sizeof (struct GNUNET_SCALARPRODUCT_Element); todo = GNUNET_MIN (possible, element_count); @@ -285,7 +285,7 @@ GNUNET_SCALARPRODUCT_accept_computation (const struct GNUNET_CONFIGURATION_Handl element_count_transfered = todo; GNUNET_MQ_send (h->mq, env); - possible = (GNUNET_SERVER_MAX_MESSAGE_SIZE - 1 - sizeof (*mmsg)) + possible = (GNUNET_MAX_MESSAGE_SIZE - 1 - sizeof (*mmsg)) / sizeof (struct GNUNET_SCALARPRODUCT_Element); while (element_count_transfered < element_count) { @@ -426,7 +426,7 @@ GNUNET_SCALARPRODUCT_start_computation (const struct GNUNET_CONFIGURATION_Handle h->cfg = cfg; h->key = *session_key; - possible = (GNUNET_SERVER_MAX_MESSAGE_SIZE - 1 - sizeof (struct AliceComputationMessage)) + possible = (GNUNET_MAX_MESSAGE_SIZE - 1 - sizeof (struct AliceComputationMessage)) / sizeof (struct GNUNET_SCALARPRODUCT_Element); todo = GNUNET_MIN (possible, element_count); @@ -445,7 +445,7 @@ GNUNET_SCALARPRODUCT_start_computation (const struct GNUNET_CONFIGURATION_Handle GNUNET_MQ_send (h->mq, env); element_count_transfered = todo; - possible = (GNUNET_SERVER_MAX_MESSAGE_SIZE - 1 - sizeof (*mmsg)) + possible = (GNUNET_MAX_MESSAGE_SIZE - 1 - sizeof (*mmsg)) / sizeof (struct GNUNET_SCALARPRODUCT_Element); while (element_count_transfered < element_count) { diff --git a/src/social/social_api.c b/src/social/social_api.c index a7fe0916f..af1d6e57e 100644 --- a/src/social/social_api.c +++ b/src/social/social_api.c @@ -2110,7 +2110,7 @@ GNUNET_SOCIAL_place_msg_proc_set (struct GNUNET_SOCIAL_Place *plc, GNUNET_assert (NULL != method_prefix); struct MsgProcRequest *mpreq; uint16_t method_size = strnlen (method_prefix, - GNUNET_SERVER_MAX_MESSAGE_SIZE + GNUNET_MAX_MESSAGE_SIZE - sizeof (*mpreq)) + 1; GNUNET_assert ('\0' == method_prefix[method_size - 1]); @@ -2159,7 +2159,7 @@ place_history_replay (struct GNUNET_SOCIAL_Place *plc, GNUNET_assert (NULL != method_prefix); uint16_t method_size = strnlen (method_prefix, - GNUNET_SERVER_MAX_MESSAGE_SIZE + GNUNET_MAX_MESSAGE_SIZE - sizeof (*req)) + 1; GNUNET_assert ('\0' == method_prefix[method_size - 1]); @@ -2285,7 +2285,7 @@ place_state_get (struct GNUNET_SOCIAL_Place *plc, look->op_id = GNUNET_OP_add (plc->op, &op_recv_state_result, look, NULL); GNUNET_assert (NULL != name); - size_t name_size = strnlen (name, GNUNET_SERVER_MAX_MESSAGE_SIZE + size_t name_size = strnlen (name, GNUNET_MAX_MESSAGE_SIZE - sizeof (*req)) + 1; struct GNUNET_MQ_Envelope * env = GNUNET_MQ_msg_extra (req, name_size, type); @@ -2426,7 +2426,7 @@ GNUNET_SOCIAL_zone_add_place (const struct GNUNET_SOCIAL_App *app, size_t relay_size = relay_count * sizeof (*relays); size_t payload_size = name_size + password_size + relay_size; - if (GNUNET_SERVER_MAX_MESSAGE_SIZE < sizeof (*preq) + payload_size) + if (GNUNET_MAX_MESSAGE_SIZE < sizeof (*preq) + payload_size) return GNUNET_SYSERR; struct GNUNET_MQ_Envelope * @@ -2506,7 +2506,7 @@ GNUNET_SOCIAL_zone_add_nym (const struct GNUNET_SOCIAL_App *app, struct ZoneAddNymRequest *nreq; size_t name_size = strlen (name) + 1; - if (GNUNET_SERVER_MAX_MESSAGE_SIZE < sizeof (*nreq) + name_size) + if (GNUNET_MAX_MESSAGE_SIZE < sizeof (*nreq) + name_size) return GNUNET_SYSERR; struct GNUNET_MQ_Envelope * diff --git a/src/statistics/gnunet-service-statistics.c b/src/statistics/gnunet-service-statistics.c index 85c84b89d..0cb136b99 100644 --- a/src/statistics/gnunet-service-statistics.c +++ b/src/statistics/gnunet-service-statistics.c @@ -359,7 +359,7 @@ transmit (struct ClientEntry *ce, size = strlen (e->subsystem->service) + 1 + strlen (e->name) + 1; - GNUNET_assert (size < GNUNET_SERVER_MAX_MESSAGE_SIZE); + GNUNET_assert (size < GNUNET_MAX_MESSAGE_SIZE); env = GNUNET_MQ_msg_extra (m, size, GNUNET_MESSAGE_TYPE_STATISTICS_VALUE); diff --git a/src/statistics/statistics_api.c b/src/statistics/statistics_api.c index ad4453b2a..9d04e854f 100644 --- a/src/statistics/statistics_api.c +++ b/src/statistics/statistics_api.c @@ -349,7 +349,7 @@ schedule_watch_request (struct GNUNET_STATISTICS_Handle *h, slen = strlen (watch->subsystem) + 1; nlen = strlen (watch->name) + 1; nsize = sizeof (struct GNUNET_MessageHeader) + slen + nlen; - if (nsize >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (nsize >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; @@ -1098,7 +1098,7 @@ GNUNET_STATISTICS_get (struct GNUNET_STATISTICS_Handle *handle, slen1 = strlen (subsystem) + 1; slen2 = strlen (name) + 1; GNUNET_assert (slen1 + slen2 + sizeof (struct GNUNET_MessageHeader) < - GNUNET_SERVER_MAX_MESSAGE_SIZE); + GNUNET_MAX_MESSAGE_SIZE); ai = GNUNET_new (struct GNUNET_STATISTICS_GetHandle); ai->sh = handle; ai->subsystem = GNUNET_strdup (subsystem); @@ -1246,7 +1246,7 @@ add_setter_action (struct GNUNET_STATISTICS_Handle *h, slen = strlen (h->subsystem) + 1; nlen = strlen (name) + 1; nsize = sizeof (struct GNUNET_STATISTICS_SetMessage) + slen + nlen; - if (nsize >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (nsize >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; diff --git a/src/testbed-logger/testbed_logger_api.c b/src/testbed-logger/testbed_logger_api.c index 25494aed0..7aa4ade35 100644 --- a/src/testbed-logger/testbed_logger_api.c +++ b/src/testbed-logger/testbed_logger_api.c @@ -39,7 +39,7 @@ /** * The size of the buffer we fill before sending out the message */ -#define BUFFER_SIZE (GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (struct GNUNET_MessageHeader)) +#define BUFFER_SIZE (GNUNET_MAX_MESSAGE_SIZE - sizeof (struct GNUNET_MessageHeader)) /** * Connection handle for the logger service diff --git a/src/testbed/gnunet-helper-testbed.c b/src/testbed/gnunet-helper-testbed.c index 6368fb74b..d2a3a98b7 100644 --- a/src/testbed/gnunet-helper-testbed.c +++ b/src/testbed/gnunet-helper-testbed.c @@ -495,7 +495,7 @@ error: static void read_task (void *cls) { - char buf[GNUNET_SERVER_MAX_MESSAGE_SIZE]; + char buf[GNUNET_MAX_MESSAGE_SIZE]; ssize_t sread; read_task_id = NULL; diff --git a/src/testbed/gnunet-service-testbed_barriers.c b/src/testbed/gnunet-service-testbed_barriers.c index a201d22bb..681ed6df2 100644 --- a/src/testbed/gnunet-service-testbed_barriers.c +++ b/src/testbed/gnunet-service-testbed_barriers.c @@ -478,7 +478,7 @@ GST_barriers_init (struct GNUNET_CONFIGURATION_Handle *cfg) LOG_DEBUG ("Launching testbed-barrier service\n"); barrier_map = GNUNET_CONTAINER_multihashmap_create (3, GNUNET_YES); - ctx = GNUNET_SERVICE_starT ("testbed-barrier", + ctx = GNUNET_SERVICE_start ("testbed-barrier", cfg, &connect_cb, &disconnect_cb, @@ -524,7 +524,7 @@ GST_barriers_destroy () NULL)); GNUNET_CONTAINER_multihashmap_destroy (barrier_map); GNUNET_assert (NULL != ctx); - GNUNET_SERVICE_stoP (ctx); + GNUNET_SERVICE_stop (ctx); } diff --git a/src/testbed/testbed_api_peers.c b/src/testbed/testbed_api_peers.c index 2af62b44a..871e554a9 100644 --- a/src/testbed/testbed_api_peers.c +++ b/src/testbed/testbed_api_peers.c @@ -969,7 +969,7 @@ GNUNET_TESTBED_peer_manage_service (void *op_cls, GNUNET_assert (TESTBED_PS_STARTED == peer->state); /* peer is not running? */ msize = strlen (service_name) + 1; msize += sizeof (struct GNUNET_TESTBED_ManagePeerServiceMessage); - if (GNUNET_SERVER_MAX_MESSAGE_SIZE < msize) + if (GNUNET_MAX_MESSAGE_SIZE < msize) return NULL; data = GNUNET_new (struct ManageServiceData); data->cb = cb; diff --git a/src/topology/gnunet-daemon-topology.c b/src/topology/gnunet-daemon-topology.c index 067ebce23..537ffe059 100644 --- a/src/topology/gnunet-daemon-topology.c +++ b/src/topology/gnunet-daemon-topology.c @@ -499,7 +499,7 @@ schedule_next_hello (void *cls) /* find applicable HELLOs */ fah.peer = pl; fah.result = NULL; - fah.max_size = GNUNET_SERVER_MAX_MESSAGE_SIZE - 1; + fah.max_size = GNUNET_MAX_MESSAGE_SIZE - 1; fah.next_adv = GNUNET_TIME_UNIT_FOREVER_REL; GNUNET_CONTAINER_multipeermap_iterate (peers, &find_advertisable_hello, diff --git a/src/transport/gnunet-service-transport_validation.c b/src/transport/gnunet-service-transport_validation.c index 505626b59..4a6d427be 100644 --- a/src/transport/gnunet-service-transport_validation.c +++ b/src/transport/gnunet-service-transport_validation.c @@ -599,7 +599,7 @@ transmit_ping_if_allowed (void *cls, ping.challenge = htonl (ve->challenge); ping.target = *pid; - if (tsize >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (tsize >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); hsize = 0; diff --git a/src/transport/gnunet-transport-profiler.c b/src/transport/gnunet-transport-profiler.c index bd4d3072b..9292c42d4 100644 --- a/src/transport/gnunet-transport-profiler.c +++ b/src/transport/gnunet-transport-profiler.c @@ -520,7 +520,7 @@ run (void *cls, cfg = (struct GNUNET_CONFIGURATION_Handle *) mycfg; ret = 1; - if (GNUNET_SERVER_MAX_MESSAGE_SIZE <= benchmark_size) + if (GNUNET_MAX_MESSAGE_SIZE <= benchmark_size) { FPRINTF (stderr, "Message size too big!\n"); diff --git a/src/transport/plugin_transport_http_client.c b/src/transport/plugin_transport_http_client.c index e91149289..e20948c5a 100644 --- a/src/transport/plugin_transport_http_client.c +++ b/src/transport/plugin_transport_http_client.c @@ -1638,7 +1638,7 @@ client_connect_get (struct GNUNET_ATS_Session *s) CURLOPT_CONNECTTIMEOUT_MS, (long) (HTTP_CLIENT_NOT_VALIDATED_TIMEOUT.rel_value_us / 1000LL)); curl_easy_setopt (s->get.easyhandle, CURLOPT_BUFFERSIZE, - 2 * GNUNET_SERVER_MAX_MESSAGE_SIZE); + 2 * GNUNET_MAX_MESSAGE_SIZE); #if CURL_TCP_NODELAY curl_easy_setopt (ps->recv_endpoint, CURLOPT_TCP_NODELAY, @@ -1815,7 +1815,7 @@ client_connect_put (struct GNUNET_ATS_Session *s) CURLOPT_CONNECTTIMEOUT_MS, (long) (HTTP_CLIENT_NOT_VALIDATED_TIMEOUT.rel_value_us / 1000LL)); curl_easy_setopt (s->put.easyhandle, CURLOPT_BUFFERSIZE, - 2 * GNUNET_SERVER_MAX_MESSAGE_SIZE); + 2 * GNUNET_MAX_MESSAGE_SIZE); #if CURL_TCP_NODELAY curl_easy_setopt (s->put.easyhandle, CURLOPT_TCP_NODELAY, 1); #endif diff --git a/src/transport/plugin_transport_http_server.c b/src/transport/plugin_transport_http_server.c index 2d6f40d58..ff2d68602 100644 --- a/src/transport/plugin_transport_http_server.c +++ b/src/transport/plugin_transport_http_server.c @@ -2224,7 +2224,7 @@ run_mhd_start_daemon (struct HTTP_Server_Plugin *plugin, timeout, MHD_OPTION_CONNECTION_MEMORY_LIMIT, (size_t) (2 * - GNUNET_SERVER_MAX_MESSAGE_SIZE), + GNUNET_MAX_MESSAGE_SIZE), MHD_OPTION_NOTIFY_COMPLETED, &server_disconnect_cb, plugin, MHD_OPTION_EXTERNAL_LOGGER, diff --git a/src/transport/plugin_transport_tcp.c b/src/transport/plugin_transport_tcp.c index 10ea01cec..a63013caa 100644 --- a/src/transport/plugin_transport_tcp.c +++ b/src/transport/plugin_transport_tcp.c @@ -71,6 +71,21 @@ struct GNUNET_SERVER_TransmitHandle; */ struct GNUNET_CONNECTION_Handle; +/** + * @brief handle for a network service + */ +struct LEGACY_SERVICE_Context; + + +/** + * Stops a service that was started with #GNUNET_SERVICE_start(). + * + * @param srv service to stop + */ +void +LEGACY_SERVICE_stop (struct LEGACY_SERVICE_Context *srv); + + /** * Function called to notify a client about the connection begin ready @@ -269,6 +284,34 @@ struct GNUNET_SERVER_MessageHandler }; + +/** + * Options for the service (bitmask). + */ +enum LEGACY_SERVICE_Options +{ + /** + * Use defaults. Terminates all client connections and the listen + * sockets immediately upon receiving the shutdown signal. + */ + LEGACY_SERVICE_OPTION_NONE = 0, + + /** + * Do not trigger server shutdown on signal at all; instead, allow + * for the user to terminate the server explicitly when needed + * by calling #LEGACY_SERVICE_shutdown(). + */ + LEGACY_SERVICE_OPTION_MANUAL_SHUTDOWN = 1, + + /** + * Trigger a SOFT server shutdown on signals, allowing active + * non-monitor clients to complete their transactions. + */ + LEGACY_SERVICE_OPTION_SOFT_SHUTDOWN = 2 +}; + + + /** * Ask the server to disconnect from the given client. This is the * same as passing #GNUNET_SYSERR to #GNUNET_SERVER_receive_done, @@ -453,7 +496,7 @@ GNUNET_SERVER_client_drop (struct GNUNET_SERVER_Client *client); * @param cfg configuration to use */ typedef void -(*GNUNET_SERVICE_Main) (void *cls, +(*LEGACY_SERVICE_Main) (void *cls, struct GNUNET_SERVER_Handle *server, const struct GNUNET_CONFIGURATION_Handle *cfg); @@ -919,7 +962,7 @@ struct Plugin /** * Handle to the network service. */ - struct GNUNET_SERVICE_Context *service; + struct LEGACY_SERVICE_Context *service; /** * Handle to the server for this service. @@ -3733,7 +3776,7 @@ libgnunet_plugin_transport_tcp_init (void *cls) struct GNUNET_TRANSPORT_PluginEnvironment *env = cls; struct GNUNET_TRANSPORT_PluginFunctions *api; struct Plugin *plugin; - struct GNUNET_SERVICE_Context *service; + struct LEGACY_SERVICE_Context *service; unsigned long long aport; unsigned long long bport; unsigned long long max_connections; @@ -3788,9 +3831,9 @@ libgnunet_plugin_transport_tcp_init (void *cls) aport = 0; if (0 != bport) { - service = GNUNET_SERVICE_start ("transport-tcp", + service = LEGACY_SERVICE_start ("transport-tcp", env->cfg, - GNUNET_SERVICE_OPTION_NONE); + LEGACY_SERVICE_OPTION_NONE); if (NULL == service) { LOG (GNUNET_ERROR_TYPE_WARNING, @@ -3821,7 +3864,7 @@ libgnunet_plugin_transport_tcp_init (void *cls) { #ifdef TCP_STEALTH plugin->myoptions |= TCP_OPTIONS_TCP_STEALTH; - lsocks = GNUNET_SERVICE_get_listen_sockets (service); + lsocks = LEGACY_SERVICE_get_listen_sockets (service); if (NULL != lsocks) { uint32_t len = sizeof (struct WelcomeMessage); @@ -3914,7 +3957,7 @@ libgnunet_plugin_transport_tcp_init (void *cls) plugin->service = service; if (NULL != service) { - plugin->server = GNUNET_SERVICE_get_server (service); + plugin->server = LEGACY_SERVICE_get_server (service); } else { @@ -3977,7 +4020,7 @@ libgnunet_plugin_transport_tcp_init (void *cls) GNUNET_NAT_unregister (plugin->nat); GNUNET_CONTAINER_multipeermap_destroy (plugin->sessionmap); if (NULL != service) - GNUNET_SERVICE_stop (service); + LEGACY_SERVICE_stop (service); GNUNET_free (plugin); GNUNET_free_non_null (api); return NULL; @@ -4030,7 +4073,7 @@ libgnunet_plugin_transport_tcp_done (void *cls) } if (NULL != plugin->service) - GNUNET_SERVICE_stop (plugin->service); + LEGACY_SERVICE_stop (plugin->service); else GNUNET_SERVER_destroy (plugin->server); GNUNET_free (plugin->handlers); diff --git a/src/transport/plugin_transport_udp.c b/src/transport/plugin_transport_udp.c index 3a9013a5a..1ff962544 100644 --- a/src/transport/plugin_transport_udp.c +++ b/src/transport/plugin_transport_udp.c @@ -2061,7 +2061,7 @@ udp_plugin_send (void *cls, if ( (sizeof(struct IPv4UdpAddress) == s->address->address_length) && (NULL == plugin->sockv4) ) return GNUNET_SYSERR; - if (udpmlen >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (udpmlen >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return GNUNET_SYSERR; diff --git a/src/transport/plugin_transport_wlan.c b/src/transport/plugin_transport_wlan.c index 3f5ada10b..b23739d3c 100644 --- a/src/transport/plugin_transport_wlan.c +++ b/src/transport/plugin_transport_wlan.c @@ -744,7 +744,7 @@ send_ack (void *cls, GNUNET_break (0); return; } - if (size >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (size >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; diff --git a/src/transport/tcp_connection_legacy.c b/src/transport/tcp_connection_legacy.c index f5253445d..5b219a467 100644 --- a/src/transport/tcp_connection_legacy.c +++ b/src/transport/tcp_connection_legacy.c @@ -35,6 +35,15 @@ #include "gnunet_resolver_service.h" +/** + * Timeout we use on TCP connect before trying another + * result from the DNS resolver. Actual value used + * is this value divided by the number of address families. + * Default is 5s. + */ +#define CONNECT_RETRY_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5) + + #define LOG_STRERROR(kind,syscall) GNUNET_log_from_strerror (kind, "util-connection", syscall) @@ -304,7 +313,7 @@ GNUNET_CONNECTION_create_from_existing (struct GNUNET_NETWORK_Handle *osSocket) struct GNUNET_CONNECTION_Handle *connection; connection = GNUNET_new (struct GNUNET_CONNECTION_Handle); - connection->write_buffer_size = GNUNET_SERVER_MIN_BUFFER_SIZE; + connection->write_buffer_size = GNUNET_MIN_MESSAGE_SIZE; connection->write_buffer = GNUNET_malloc (connection->write_buffer_size); connection->sock = osSocket; return connection; @@ -451,7 +460,7 @@ GNUNET_CONNECTION_create_from_accept (GNUNET_CONNECTION_AccessCheck access_cb, return NULL; } connection = GNUNET_new (struct GNUNET_CONNECTION_Handle); - connection->write_buffer_size = GNUNET_SERVER_MIN_BUFFER_SIZE; + connection->write_buffer_size = GNUNET_MIN_MESSAGE_SIZE; connection->write_buffer = GNUNET_malloc (connection->write_buffer_size); connection->addr = uaddr; connection->addrlen = addrlen; @@ -824,7 +833,7 @@ try_connect_using_address (void *cls, return; } GNUNET_CONTAINER_DLL_insert (connection->ap_head, connection->ap_tail, ap); - delay = GNUNET_CONNECTION_CONNECT_RETRY_TIMEOUT; + delay = CONNECT_RETRY_TIMEOUT; if (NULL != connection->nth.notify_ready) delay = GNUNET_TIME_relative_min (delay, GNUNET_TIME_absolute_get_remaining (connection->nth.transmit_timeout)); @@ -858,14 +867,14 @@ GNUNET_CONNECTION_create_from_connect (const struct GNUNET_CONFIGURATION_Handle GNUNET_assert (0 < strlen (hostname)); /* sanity check */ connection = GNUNET_new (struct GNUNET_CONNECTION_Handle); connection->cfg = cfg; - connection->write_buffer_size = GNUNET_SERVER_MIN_BUFFER_SIZE; + connection->write_buffer_size = GNUNET_MIN_MESSAGE_SIZE; connection->write_buffer = GNUNET_malloc (connection->write_buffer_size); connection->port = port; connection->hostname = GNUNET_strdup (hostname); connection->dns_active = GNUNET_RESOLVER_ip_get (connection->hostname, AF_UNSPEC, - GNUNET_CONNECTION_CONNECT_RETRY_TIMEOUT, + CONNECT_RETRY_TIMEOUT, &try_connect_using_address, connection); return connection; @@ -909,7 +918,7 @@ GNUNET_CONNECTION_create_from_connect_to_unixpath (const struct GNUNET_CONFIGURA #endif connection = GNUNET_new (struct GNUNET_CONNECTION_Handle); connection->cfg = cfg; - connection->write_buffer_size = GNUNET_SERVER_MIN_BUFFER_SIZE; + connection->write_buffer_size = GNUNET_MIN_MESSAGE_SIZE; connection->write_buffer = GNUNET_malloc (connection->write_buffer_size); connection->port = 0; connection->hostname = NULL; @@ -1535,7 +1544,7 @@ GNUNET_CONNECTION_notify_transmit_ready (struct GNUNET_CONNECTION_Handle *connec return NULL; } GNUNET_assert (NULL != notify); - GNUNET_assert (size < GNUNET_SERVER_MAX_MESSAGE_SIZE); + GNUNET_assert (size < GNUNET_MAX_MESSAGE_SIZE); GNUNET_assert (connection->write_buffer_off <= connection->write_buffer_size); GNUNET_assert (connection->write_buffer_pos <= connection->write_buffer_size); GNUNET_assert (connection->write_buffer_pos <= connection->write_buffer_off); diff --git a/src/transport/tcp_server_legacy.c b/src/transport/tcp_server_legacy.c index c055285b1..6b4daa525 100644 --- a/src/transport/tcp_server_legacy.c +++ b/src/transport/tcp_server_legacy.c @@ -1045,7 +1045,7 @@ process_mst (struct GNUNET_SERVER_Client *client, GNUNET_STRINGS_relative_time_to_string (client->idle_timeout, GNUNET_YES)); client->receive_pending = GNUNET_YES; GNUNET_CONNECTION_receive (client->connection, - GNUNET_SERVER_MAX_MESSAGE_SIZE - 1, + GNUNET_MAX_MESSAGE_SIZE - 1, client->idle_timeout, &process_incoming, client); @@ -1124,7 +1124,7 @@ process_incoming (void *cls, client); client->receive_pending = GNUNET_YES; GNUNET_CONNECTION_receive (client->connection, - GNUNET_SERVER_MAX_MESSAGE_SIZE - 1, + GNUNET_MAX_MESSAGE_SIZE - 1, GNUNET_TIME_absolute_get_remaining (end), &process_incoming, client); @@ -1200,7 +1200,7 @@ restart_processing (void *cls) LOG (GNUNET_ERROR_TYPE_DEBUG, "Server begins to read again from client.\n"); client->receive_pending = GNUNET_YES; GNUNET_CONNECTION_receive (client->connection, - GNUNET_SERVER_MAX_MESSAGE_SIZE - 1, + GNUNET_MAX_MESSAGE_SIZE - 1, client->idle_timeout, &process_incoming, client); @@ -1288,7 +1288,7 @@ GNUNET_SERVER_connect_socket (struct GNUNET_SERVER_Handle *server, n->callback (n->callback_cls, client); client->receive_pending = GNUNET_YES; GNUNET_CONNECTION_receive (client->connection, - GNUNET_SERVER_MAX_MESSAGE_SIZE - 1, + GNUNET_MAX_MESSAGE_SIZE - 1, client->idle_timeout, &process_incoming, client); diff --git a/src/transport/tcp_server_mst_legacy.c b/src/transport/tcp_server_mst_legacy.c index ba42b1837..78e04c1b1 100644 --- a/src/transport/tcp_server_mst_legacy.c +++ b/src/transport/tcp_server_mst_legacy.c @@ -89,8 +89,8 @@ GNUNET_SERVER_mst_create (GNUNET_SERVER_MessageTokenizerCallback cb, struct GNUNET_SERVER_MessageStreamTokenizer *ret; ret = GNUNET_new (struct GNUNET_SERVER_MessageStreamTokenizer); - ret->hdr = GNUNET_malloc (GNUNET_SERVER_MIN_BUFFER_SIZE); - ret->curr_buf = GNUNET_SERVER_MIN_BUFFER_SIZE; + ret->hdr = GNUNET_malloc (GNUNET_MIN_MESSAGE_SIZE); + ret->curr_buf = GNUNET_MIN_MESSAGE_SIZE; ret->cb = cb; ret->cb_cls = cb_cls; return ret; diff --git a/src/transport/tcp_service_legacy.c b/src/transport/tcp_service_legacy.c index 050a38acc..7c2d3e55a 100644 --- a/src/transport/tcp_service_legacy.c +++ b/src/transport/tcp_service_legacy.c @@ -105,7 +105,7 @@ NEXT: /** * Context for "service_task". */ -struct GNUNET_SERVICE_Context +struct LEGACY_SERVICE_Context { /** * Our configuration. @@ -131,7 +131,7 @@ struct GNUNET_SERVICE_Context /** * Main service-specific task to run. */ - GNUNET_SERVICE_Main task; + LEGACY_SERVICE_Main task; /** * Closure for @e task. @@ -223,7 +223,7 @@ struct GNUNET_SERVICE_Context /** * Our options. */ - enum GNUNET_SERVICE_Options options; + enum LEGACY_SERVICE_Options options; }; @@ -307,7 +307,7 @@ static int check_access (void *cls, const struct GNUNET_CONNECTION_Credentials *uc, const struct sockaddr *addr, socklen_t addrlen) { - struct GNUNET_SERVICE_Context *sctx = cls; + struct LEGACY_SERVICE_Context *sctx = cls; const struct sockaddr_in *i4; const struct sockaddr_in6 *i6; int ret; @@ -359,7 +359,7 @@ check_access (void *cls, const struct GNUNET_CONNECTION_Credentials *uc, * @return name of the file for the process ID */ static char * -get_pid_file_name (struct GNUNET_SERVICE_Context *sctx) +get_pid_file_name (struct LEGACY_SERVICE_Context *sctx) { char *pif; @@ -382,7 +382,7 @@ get_pid_file_name (struct GNUNET_SERVICE_Context *sctx) */ static int process_acl4 (struct GNUNET_STRINGS_IPv4NetworkPolicy **ret, - struct GNUNET_SERVICE_Context *sctx, + struct LEGACY_SERVICE_Context *sctx, const char *option) { char *opt; @@ -420,7 +420,7 @@ process_acl4 (struct GNUNET_STRINGS_IPv4NetworkPolicy **ret, */ static int process_acl6 (struct GNUNET_STRINGS_IPv6NetworkPolicy **ret, - struct GNUNET_SERVICE_Context *sctx, + struct LEGACY_SERVICE_Context *sctx, const char *option) { char *opt; @@ -507,7 +507,7 @@ add_unixpath (struct sockaddr **saddrs, * set to NULL). */ int -GNUNET_SERVICE_get_server_addresses (const char *service_name, +LEGACY_SERVICE_get_server_addresses (const char *service_name, const struct GNUNET_CONFIGURATION_Handle *cfg, struct sockaddr ***addrs, socklen_t ** addr_lens) @@ -838,7 +838,7 @@ GNUNET_SERVICE_get_server_addresses (const char *service_name, * and #GNUNET_SYSERR on error. */ static int -receive_sockets_from_parent (struct GNUNET_SERVICE_Context *sctx) +receive_sockets_from_parent (struct LEGACY_SERVICE_Context *sctx) { const char *env_buf; int fail; @@ -932,7 +932,7 @@ receive_sockets_from_parent (struct GNUNET_SERVICE_Context *sctx) * @return #GNUNET_OK if configuration succeeded */ static int -setup_service (struct GNUNET_SERVICE_Context *sctx) +setup_service (struct LEGACY_SERVICE_Context *sctx) { struct GNUNET_TIME_Relative idleout; int tolerant; @@ -1015,7 +1015,7 @@ setup_service (struct GNUNET_SERVICE_Context *sctx) if ((NULL == sctx->lsocks) && (GNUNET_SYSERR == - GNUNET_SERVICE_get_server_addresses (sctx->service_name, sctx->cfg, + LEGACY_SERVICE_get_server_addresses (sctx->service_name, sctx->cfg, &sctx->addrs, &sctx->addrlens))) return GNUNET_SYSERR; sctx->require_found = tolerant ? GNUNET_NO : GNUNET_YES; @@ -1042,7 +1042,7 @@ setup_service (struct GNUNET_SERVICE_Context *sctx) * @return value of the 'USERNAME' option */ static char * -get_user_name (struct GNUNET_SERVICE_Context *sctx) +get_user_name (struct LEGACY_SERVICE_Context *sctx) { char *un; @@ -1062,7 +1062,7 @@ get_user_name (struct GNUNET_SERVICE_Context *sctx) * @return #GNUNET_OK on success (including no work to be done) */ static int -write_pid_file (struct GNUNET_SERVICE_Context *sctx, pid_t pid) +write_pid_file (struct LEGACY_SERVICE_Context *sctx, pid_t pid) { FILE *pidfd; char *pif; @@ -1117,16 +1117,16 @@ write_pid_file (struct GNUNET_SERVICE_Context *sctx, pid_t pid) /** * Task run during shutdown. Stops the server/service. * - * @param cls the `struct GNUNET_SERVICE_Context` + * @param cls the `struct LEGACY_SERVICE_Context` */ static void shutdown_task (void *cls) { - struct GNUNET_SERVICE_Context *service = cls; + struct LEGACY_SERVICE_Context *service = cls; struct GNUNET_SERVER_Handle *server = service->server; service->shutdown_task = NULL; - if (0 != (service->options & GNUNET_SERVICE_OPTION_SOFT_SHUTDOWN)) + if (0 != (service->options & LEGACY_SERVICE_OPTION_SOFT_SHUTDOWN)) GNUNET_SERVER_stop_listening (server); else GNUNET_SERVER_destroy (server); @@ -1141,7 +1141,7 @@ shutdown_task (void *cls) static void service_task (void *cls) { - struct GNUNET_SERVICE_Context *sctx = cls; + struct LEGACY_SERVICE_Context *sctx = cls; unsigned int i; GNUNET_RESOLVER_connect (sctx->cfg); @@ -1174,7 +1174,7 @@ service_task (void *cls) #endif - if (0 == (sctx->options & GNUNET_SERVICE_OPTION_MANUAL_SHUTDOWN)) + if (0 == (sctx->options & LEGACY_SERVICE_OPTION_MANUAL_SHUTDOWN)) { /* install a task that will kill the server * process if the scheduler ever gets a shutdown signal */ @@ -1215,7 +1215,7 @@ service_task (void *cls) * @return #GNUNET_OK on success, #GNUNET_SYSERR on error */ static int -detach_terminal (struct GNUNET_SERVICE_Context *sctx) +detach_terminal (struct LEGACY_SERVICE_Context *sctx) { #ifndef MINGW pid_t pid; @@ -1296,7 +1296,7 @@ detach_terminal (struct GNUNET_SERVICE_Context *sctx) * @return #GNUNET_OK on success, #GNUNET_SYSERR on error */ static int -set_user_id (struct GNUNET_SERVICE_Context *sctx) +set_user_id (struct LEGACY_SERVICE_Context *sctx) { char *user; @@ -1342,7 +1342,7 @@ set_user_id (struct GNUNET_SERVICE_Context *sctx) * @param sctx service context */ static void -pid_file_delete (struct GNUNET_SERVICE_Context *sctx) +pid_file_delete (struct LEGACY_SERVICE_Context *sctx) { char *pif = get_pid_file_name (sctx); @@ -1368,10 +1368,10 @@ pid_file_delete (struct GNUNET_SERVICE_Context *sctx) * if we shutdown nicely */ int -GNUNET_SERVICE_run (int argc, char *const *argv, +LEGACY_SERVICE_run (int argc, char *const *argv, const char *service_name, - enum GNUNET_SERVICE_Options options, - GNUNET_SERVICE_Main task, + enum LEGACY_SERVICE_Options options, + LEGACY_SERVICE_Main task, void *task_cls) { #define HANDLE_ERROR do { GNUNET_break (0); goto shutdown; } while (0) @@ -1387,7 +1387,7 @@ GNUNET_SERVICE_run (int argc, char *const *argv, unsigned long long skew_offset; unsigned long long skew_variance; long long clock_offset; - struct GNUNET_SERVICE_Context sctx; + struct LEGACY_SERVICE_Context sctx; struct GNUNET_CONFIGURATION_Handle *cfg; const char *xdg; @@ -1548,15 +1548,15 @@ shutdown: * @param options service options * @return NULL on error, service handle */ -struct GNUNET_SERVICE_Context * -GNUNET_SERVICE_start (const char *service_name, +struct LEGACY_SERVICE_Context * +LEGACY_SERVICE_start (const char *service_name, const struct GNUNET_CONFIGURATION_Handle *cfg, - enum GNUNET_SERVICE_Options options) + enum LEGACY_SERVICE_Options options) { int i; - struct GNUNET_SERVICE_Context *sctx; + struct LEGACY_SERVICE_Context *sctx; - sctx = GNUNET_new (struct GNUNET_SERVICE_Context); + sctx = GNUNET_new (struct LEGACY_SERVICE_Context); sctx->ready_confirm_fd = -1; /* no daemonizing */ sctx->ret = GNUNET_OK; sctx->timeout = GNUNET_TIME_UNIT_FOREVER_REL; @@ -1567,7 +1567,7 @@ GNUNET_SERVICE_start (const char *service_name, /* setup subsystems */ if (GNUNET_OK != setup_service (sctx)) { - GNUNET_SERVICE_stop (sctx); + LEGACY_SERVICE_stop (sctx); return NULL; } if (NULL != sctx->lsocks) @@ -1581,7 +1581,7 @@ GNUNET_SERVICE_start (const char *service_name, if (NULL == sctx->server) { - GNUNET_SERVICE_stop (sctx); + LEGACY_SERVICE_stop (sctx); return NULL; } #ifndef WINDOWS @@ -1611,7 +1611,7 @@ GNUNET_SERVICE_start (const char *service_name, * @return handle to the server for this service, NULL if there is none */ struct GNUNET_SERVER_Handle * -GNUNET_SERVICE_get_server (struct GNUNET_SERVICE_Context *ctx) +LEGACY_SERVICE_get_server (struct LEGACY_SERVICE_Context *ctx) { return ctx->server; } @@ -1625,19 +1625,19 @@ GNUNET_SERVICE_get_server (struct GNUNET_SERVICE_Context *ctx) * array of listen sockets. */ struct GNUNET_NETWORK_Handle *const* -GNUNET_SERVICE_get_listen_sockets (struct GNUNET_SERVICE_Context *ctx) +LEGACY_SERVICE_get_listen_sockets (struct LEGACY_SERVICE_Context *ctx) { return ctx->lsocks; } /** - * Stop a service that was started with "GNUNET_SERVICE_start". + * Stop a service that was started with "LEGACY_SERVICE_start". * * @param sctx the service context returned from the start function */ void -GNUNET_SERVICE_stop (struct GNUNET_SERVICE_Context *sctx) +LEGACY_SERVICE_stop (struct LEGACY_SERVICE_Context *sctx) { unsigned int i; diff --git a/src/transport/test_transport_api_reliability.c b/src/transport/test_transport_api_reliability.c index 375a935c8..e5ba2831b 100644 --- a/src/transport/test_transport_api_reliability.c +++ b/src/transport/test_transport_api_reliability.c @@ -217,7 +217,7 @@ notify_receive (void *cls, { static int n; unsigned int s; - char cbuf[GNUNET_SERVER_MAX_MESSAGE_SIZE - 1]; + char cbuf[GNUNET_MAX_MESSAGE_SIZE - 1]; if (GNUNET_TRANSPORT_TESTING_SIMPLE_MTYPE != ntohs (hdr->header.type)) return; diff --git a/src/transport/transport_api_address_to_string.c b/src/transport/transport_api_address_to_string.c index b9c72dcb3..902764a8f 100644 --- a/src/transport/transport_api_address_to_string.c +++ b/src/transport/transport_api_address_to_string.c @@ -199,10 +199,10 @@ GNUNET_TRANSPORT_address_to_string (const struct GNUNET_CONFIGURATION_Handle *cf alen = address->address_length; slen = strlen (address->transport_name) + 1; - if ( (alen + slen >= GNUNET_SERVER_MAX_MESSAGE_SIZE + if ( (alen + slen >= GNUNET_MAX_MESSAGE_SIZE - sizeof (struct AddressLookupMessage)) || - (alen >= GNUNET_SERVER_MAX_MESSAGE_SIZE) || - (slen >= GNUNET_SERVER_MAX_MESSAGE_SIZE) ) + (alen >= GNUNET_MAX_MESSAGE_SIZE) || + (slen >= GNUNET_MAX_MESSAGE_SIZE) ) { GNUNET_break (0); GNUNET_free (alc); diff --git a/src/transport/transport_api_core.c b/src/transport/transport_api_core.c index c99ade92f..9c29d4908 100644 --- a/src/transport/transport_api_core.c +++ b/src/transport/transport_api_core.c @@ -425,7 +425,7 @@ mq_send_impl (struct GNUNET_MQ_Handle *mq, GNUNET_assert (GNUNET_YES == n->is_ready); msize = ntohs (msg->size); - if (msize >= GNUNET_SERVER_MAX_MESSAGE_SIZE - sizeof (*obm)) + if (msize >= GNUNET_MAX_MESSAGE_SIZE - sizeof (*obm)) { GNUNET_break (0); GNUNET_MQ_impl_send_continue (mq); diff --git a/src/util/Makefile.am b/src/util/Makefile.am index 2ca977065..9be572bb6 100644 --- a/src/util/Makefile.am +++ b/src/util/Makefile.am @@ -30,9 +30,9 @@ W32CONSOLEHELPER = gnunet-helper-w32-console endif if !MINGW - TEST_CLIENT_UNIC_NC = test_client_unix.nc + TEST_CLIENT_UNIX_NC = test_client_unix.nc else - TEST_CLIENT_UNIC_NC = + TEST_CLIENT_UNIX_NC = endif if USE_COVERAGE @@ -106,7 +106,7 @@ libgnunetutil_la_SOURCES = \ program.c \ resolver_api.c resolver.h \ scheduler.c \ - service_new.c \ + service.c \ signal.c \ strings.c \ time.c \ diff --git a/src/util/bandwidth.c b/src/util/bandwidth.c index a059fc738..bc0c3b9b4 100644 --- a/src/util/bandwidth.c +++ b/src/util/bandwidth.c @@ -184,8 +184,8 @@ update_excess (struct GNUNET_BANDWIDTH_Tracker *av) } /* negative current_consumption means that we have savings */ max_carry = ((uint64_t) av->available_bytes_per_s__) * av->max_carry_s__; - if (max_carry < GNUNET_SERVER_MAX_MESSAGE_SIZE) - max_carry = GNUNET_SERVER_MAX_MESSAGE_SIZE; + if (max_carry < GNUNET_MAX_MESSAGE_SIZE) + max_carry = GNUNET_MAX_MESSAGE_SIZE; if (max_carry > INT64_MAX) max_carry = INT64_MAX; left_bytes = current_consumption + max_carry; @@ -224,10 +224,10 @@ update_excess (struct GNUNET_BANDWIDTH_Tracker *av) /** * Initialize bandwidth tracker. Note that in addition to the * 'max_carry_s' limit, we also always allow at least - * #GNUNET_SERVER_MAX_MESSAGE_SIZE to accumulate. So if the + * #GNUNET_MAX_MESSAGE_SIZE to accumulate. So if the * bytes-per-second limit is so small that within 'max_carry_s' not - * even #GNUNET_SERVER_MAX_MESSAGE_SIZE is allowed to accumulate, it is - * ignored and replaced by #GNUNET_SERVER_MAX_MESSAGE_SIZE (which is in + * even #GNUNET_MAX_MESSAGE_SIZE is allowed to accumulate, it is + * ignored and replaced by #GNUNET_MAX_MESSAGE_SIZE (which is in * bytes). * * To stop notifications about updates and excess callbacks use @@ -271,10 +271,10 @@ GNUNET_BANDWIDTH_tracker_init2 (struct GNUNET_BANDWIDTH_Tracker *av, /** * Initialize bandwidth tracker. Note that in addition to the * 'max_carry_s' limit, we also always allow at least - * #GNUNET_SERVER_MAX_MESSAGE_SIZE to accumulate. So if the + * #GNUNET_MAX_MESSAGE_SIZE to accumulate. So if the * bytes-per-second limit is so small that within 'max_carry_s' not - * even #GNUNET_SERVER_MAX_MESSAGE_SIZE is allowed to accumulate, it is - * ignored and replaced by #GNUNET_SERVER_MAX_MESSAGE_SIZE (which is in + * even #GNUNET_MAX_MESSAGE_SIZE is allowed to accumulate, it is + * ignored and replaced by #GNUNET_MAX_MESSAGE_SIZE (which is in * bytes). * * @param av tracker to initialize @@ -345,8 +345,8 @@ update_tracker (struct GNUNET_BANDWIDTH_Tracker *av) left_bytes = - av->consumption_since_last_update__; max_carry = ((unsigned long long) av->available_bytes_per_s__) * av->max_carry_s__; - if (max_carry < GNUNET_SERVER_MAX_MESSAGE_SIZE) - max_carry = GNUNET_SERVER_MAX_MESSAGE_SIZE; + if (max_carry < GNUNET_MAX_MESSAGE_SIZE) + max_carry = GNUNET_MAX_MESSAGE_SIZE; if (max_carry > INT64_MAX) max_carry = INT64_MAX; if (max_carry > left_bytes) diff --git a/src/util/client.c b/src/util/client.c index 163ae6eb9..3d74bff33 100644 --- a/src/util/client.c +++ b/src/util/client.c @@ -35,6 +35,15 @@ #define LOG(kind,...) GNUNET_log_from (kind, "util-client",__VA_ARGS__) +/** + * Timeout we use on TCP connect before trying another + * result from the DNS resolver. Actual value used + * is this value divided by the number of address families. + * Default is 5s. + */ +#define CONNECT_RETRY_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5) + + /** * Internal state for a client connected to a GNUnet service. @@ -656,7 +665,7 @@ try_connect_using_address (void *cls, GNUNET_CONTAINER_DLL_insert (cstate->ap_head, cstate->ap_tail, ap); - ap->task = GNUNET_SCHEDULER_add_write_net (GNUNET_CONNECTION_CONNECT_RETRY_TIMEOUT, + ap->task = GNUNET_SCHEDULER_add_write_net (CONNECT_RETRY_TIMEOUT, ap->sock, &connect_probe_continuation, ap); @@ -760,7 +769,7 @@ start_connect (void *cls) cstate->dns_active = GNUNET_RESOLVER_ip_get (cstate->hostname, AF_UNSPEC, - GNUNET_CONNECTION_CONNECT_RETRY_TIMEOUT, + CONNECT_RETRY_TIMEOUT, &try_connect_using_address, cstate); } diff --git a/src/util/helper.c b/src/util/helper.c index 1a79c477a..a84b06e66 100644 --- a/src/util/helper.c +++ b/src/util/helper.c @@ -323,7 +323,7 @@ static void helper_read (void *cls) { struct GNUNET_HELPER_Handle *h = cls; - char buf[GNUNET_SERVER_MAX_MESSAGE_SIZE] GNUNET_ALIGN; + char buf[GNUNET_MAX_MESSAGE_SIZE] GNUNET_ALIGN; ssize_t t; h->read_task = NULL; diff --git a/src/util/mst.c b/src/util/mst.c index 9f1d30d7a..0d90c5d10 100644 --- a/src/util/mst.c +++ b/src/util/mst.c @@ -90,8 +90,8 @@ GNUNET_MST_create (GNUNET_MessageTokenizerCallback cb, struct GNUNET_MessageStreamTokenizer *ret; ret = GNUNET_new (struct GNUNET_MessageStreamTokenizer); - ret->hdr = GNUNET_malloc (GNUNET_SERVER_MIN_BUFFER_SIZE); - ret->curr_buf = GNUNET_SERVER_MIN_BUFFER_SIZE; + ret->hdr = GNUNET_malloc (GNUNET_MIN_MESSAGE_SIZE); + ret->curr_buf = GNUNET_MIN_MESSAGE_SIZE; ret->cb = cb; ret->cb_cls = cb_cls; return ret; diff --git a/src/util/resolver_api.c b/src/util/resolver_api.c index f33c31f1c..0c915932c 100644 --- a/src/util/resolver_api.c +++ b/src/util/resolver_api.c @@ -876,7 +876,7 @@ GNUNET_RESOLVER_ip_get (const char *hostname, slen = strlen (hostname) + 1; if (slen + sizeof (struct GNUNET_RESOLVER_GetMessage) >= - GNUNET_SERVER_MAX_MESSAGE_SIZE) + GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return NULL; diff --git a/src/util/server_mst.c b/src/util/server_mst.c deleted file mode 100644 index 5155b54da..000000000 --- a/src/util/server_mst.c +++ /dev/null @@ -1,313 +0,0 @@ -/* - This file is part of GNUnet. - Copyright (C) 2010 GNUnet e.V. - - GNUnet is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 3, or (at your - option) any later version. - - GNUnet is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -/** - * @file util/server_mst.c - * @brief convenience functions for handling inbound message buffers - * @author Christian Grothoff - */ - -#include "platform.h" -#include "gnunet_util_lib.h" - - -#if HAVE_UNALIGNED_64_ACCESS -#define ALIGN_FACTOR 4 -#else -#define ALIGN_FACTOR 8 -#endif - -#define LOG(kind,...) GNUNET_log_from (kind, "util-server-mst", __VA_ARGS__) - - -/** - * Handle to a message stream tokenizer. - */ -struct GNUNET_SERVER_MessageStreamTokenizer -{ - - /** - * Function to call on completed messages. - */ - GNUNET_SERVER_MessageTokenizerCallback cb; - - /** - * Closure for @e cb. - */ - void *cb_cls; - - /** - * Size of the buffer (starting at @e hdr). - */ - size_t curr_buf; - - /** - * How many bytes in buffer have we already processed? - */ - size_t off; - - /** - * How many bytes in buffer are valid right now? - */ - size_t pos; - - /** - * Beginning of the buffer. Typed like this to force alignment. - */ - struct GNUNET_MessageHeader *hdr; - -}; - - - -/** - * Create a message stream tokenizer. - * - * @param cb function to call on completed messages - * @param cb_cls closure for @a cb - * @return handle to tokenizer - */ -struct GNUNET_SERVER_MessageStreamTokenizer * -GNUNET_SERVER_mst_create (GNUNET_SERVER_MessageTokenizerCallback cb, - void *cb_cls) -{ - struct GNUNET_SERVER_MessageStreamTokenizer *ret; - - ret = GNUNET_new (struct GNUNET_SERVER_MessageStreamTokenizer); - ret->hdr = GNUNET_malloc (GNUNET_SERVER_MIN_BUFFER_SIZE); - ret->curr_buf = GNUNET_SERVER_MIN_BUFFER_SIZE; - ret->cb = cb; - ret->cb_cls = cb_cls; - return ret; -} - - -/** - * Add incoming data to the receive buffer and call the - * callback for all complete messages. - * - * @param mst tokenizer to use - * @param client_identity ID of client for which this is a buffer - * @param buf input data to add - * @param size number of bytes in @a buf - * @param purge should any excess bytes in the buffer be discarded - * (i.e. for packet-based services like UDP) - * @param one_shot only call callback once, keep rest of message in buffer - * @return #GNUNET_OK if we are done processing (need more data) - * #GNUNET_NO if @a one_shot was set and we have another message ready - * #GNUNET_SYSERR if the data stream is corrupt - */ -int -GNUNET_SERVER_mst_receive (struct GNUNET_SERVER_MessageStreamTokenizer *mst, - void *client_identity, - const char *buf, size_t size, - int purge, int one_shot) -{ - const struct GNUNET_MessageHeader *hdr; - size_t delta; - uint16_t want; - char *ibuf; - int need_align; - unsigned long offset; - int ret; - - GNUNET_assert (mst->off <= mst->pos); - GNUNET_assert (mst->pos <= mst->curr_buf); - LOG (GNUNET_ERROR_TYPE_DEBUG, - "Server-mst receives %u bytes with %u bytes already in private buffer\n", - (unsigned int) size, (unsigned int) (mst->pos - mst->off)); - ret = GNUNET_OK; - ibuf = (char *) mst->hdr; - while (mst->pos > 0) - { -do_align: - GNUNET_assert (mst->pos >= mst->off); - if ((mst->curr_buf - mst->off < sizeof (struct GNUNET_MessageHeader)) || - (0 != (mst->off % ALIGN_FACTOR))) - { - /* need to align or need more space */ - mst->pos -= mst->off; - memmove (ibuf, &ibuf[mst->off], mst->pos); - mst->off = 0; - } - if (mst->pos - mst->off < sizeof (struct GNUNET_MessageHeader)) - { - delta = - GNUNET_MIN (sizeof (struct GNUNET_MessageHeader) - - (mst->pos - mst->off), size); - GNUNET_memcpy (&ibuf[mst->pos], buf, delta); - mst->pos += delta; - buf += delta; - size -= delta; - } - if (mst->pos - mst->off < sizeof (struct GNUNET_MessageHeader)) - { - if (purge) - { - mst->off = 0; - mst->pos = 0; - } - return GNUNET_OK; - } - hdr = (const struct GNUNET_MessageHeader *) &ibuf[mst->off]; - want = ntohs (hdr->size); - if (want < sizeof (struct GNUNET_MessageHeader)) - { - GNUNET_break_op (0); - return GNUNET_SYSERR; - } - if ( (mst->curr_buf - mst->off < want) && - (mst->off > 0) ) - { - /* can get more space by moving */ - mst->pos -= mst->off; - memmove (ibuf, &ibuf[mst->off], mst->pos); - mst->off = 0; - } - if (mst->curr_buf < want) - { - /* need to get more space by growing buffer */ - GNUNET_assert (0 == mst->off); - mst->hdr = GNUNET_realloc (mst->hdr, want); - ibuf = (char *) mst->hdr; - mst->curr_buf = want; - } - hdr = (const struct GNUNET_MessageHeader *) &ibuf[mst->off]; - if (mst->pos - mst->off < want) - { - delta = GNUNET_MIN (want - (mst->pos - mst->off), size); - GNUNET_assert (mst->pos + delta <= mst->curr_buf); - GNUNET_memcpy (&ibuf[mst->pos], buf, delta); - mst->pos += delta; - buf += delta; - size -= delta; - } - if (mst->pos - mst->off < want) - { - if (purge) - { - mst->off = 0; - mst->pos = 0; - } - return GNUNET_OK; - } - if (one_shot == GNUNET_SYSERR) - { - /* cannot call callback again, but return value saying that - * we have another full message in the buffer */ - ret = GNUNET_NO; - goto copy; - } - if (one_shot == GNUNET_YES) - one_shot = GNUNET_SYSERR; - mst->off += want; - if (GNUNET_SYSERR == mst->cb (mst->cb_cls, client_identity, hdr)) - return GNUNET_SYSERR; - if (mst->off == mst->pos) - { - /* reset to beginning of buffer, it's free right now! */ - mst->off = 0; - mst->pos = 0; - } - } - GNUNET_assert (0 == mst->pos); - while (size > 0) - { - LOG (GNUNET_ERROR_TYPE_DEBUG, - "Server-mst has %u bytes left in inbound buffer\n", - (unsigned int) size); - if (size < sizeof (struct GNUNET_MessageHeader)) - break; - offset = (unsigned long) buf; - need_align = (0 != (offset % ALIGN_FACTOR)) ? GNUNET_YES : GNUNET_NO; - if (GNUNET_NO == need_align) - { - /* can try to do zero-copy and process directly from original buffer */ - hdr = (const struct GNUNET_MessageHeader *) buf; - want = ntohs (hdr->size); - if (want < sizeof (struct GNUNET_MessageHeader)) - { - GNUNET_break_op (0); - mst->off = 0; - return GNUNET_SYSERR; - } - if (size < want) - break; /* or not: buffer incomplete, so copy to private buffer... */ - if (one_shot == GNUNET_SYSERR) - { - /* cannot call callback again, but return value saying that - * we have another full message in the buffer */ - ret = GNUNET_NO; - goto copy; - } - if (one_shot == GNUNET_YES) - one_shot = GNUNET_SYSERR; - if (GNUNET_SYSERR == mst->cb (mst->cb_cls, client_identity, hdr)) - return GNUNET_SYSERR; - buf += want; - size -= want; - } - else - { - /* need to copy to private buffer to align; - * yes, we go a bit more spagetti than usual here */ - goto do_align; - } - } -copy: - if ((size > 0) && (!purge)) - { - if (size + mst->pos > mst->curr_buf) - { - mst->hdr = GNUNET_realloc (mst->hdr, size + mst->pos); - ibuf = (char *) mst->hdr; - mst->curr_buf = size + mst->pos; - } - GNUNET_assert (size + mst->pos <= mst->curr_buf); - GNUNET_memcpy (&ibuf[mst->pos], buf, size); - mst->pos += size; - } - if (purge) - { - mst->off = 0; - mst->pos = 0; - } - LOG (GNUNET_ERROR_TYPE_DEBUG, - "Server-mst leaves %u bytes in private buffer\n", - (unsigned int) (mst->pos - mst->off)); - return ret; -} - - -/** - * Destroys a tokenizer. - * - * @param mst tokenizer to destroy - */ -void -GNUNET_SERVER_mst_destroy (struct GNUNET_SERVER_MessageStreamTokenizer *mst) -{ - GNUNET_free (mst->hdr); - GNUNET_free (mst); -} - - - -/* end of server_mst.c */ diff --git a/src/util/server_nc.c b/src/util/server_nc.c deleted file mode 100644 index a95cd7f6d..000000000 --- a/src/util/server_nc.c +++ /dev/null @@ -1,472 +0,0 @@ -/* - This file is part of GNUnet. - Copyright (C) 2010 GNUnet e.V. - - GNUnet is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 3, or (at your - option) any later version. - - GNUnet is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -/** - * @file util/server_nc.c - * @brief convenience functions for transmission of - * a notification stream - * @author Christian Grothoff - */ - -#include "platform.h" -#include "gnunet_util_lib.h" - -#define LOG(kind,...) GNUNET_log_from (kind, "util-server-nc", __VA_ARGS__) - - -/** - * Entry in list of messages pending to be transmitted. - */ -struct PendingMessageList -{ - - /** - * This is a doubly-linked list. - */ - struct PendingMessageList *next; - - /** - * This is a doubly-linked list. - */ - struct PendingMessageList *prev; - - /** - * Message to transmit (allocated at the end of this - * struct, do not free) - */ - const struct GNUNET_MessageHeader *msg; - - /** - * Can this message be dropped? - */ - int can_drop; - -}; - - -/** - * Lists of clients we manage for notifications. - */ -struct ClientList -{ - - /** - * This is a doubly linked list. - */ - struct ClientList *next; - - /** - * This is a doubly linked list. - */ - struct ClientList *prev; - - /** - * Overall context this client belongs to. - */ - struct GNUNET_SERVER_NotificationContext *nc; - - /** - * Handle to the client. - */ - struct GNUNET_SERVER_Client *client; - - /** - * Handle for pending transmission request to the client (or NULL). - */ - struct GNUNET_SERVER_TransmitHandle *th; - - /** - * Head of linked list of requests queued for transmission. - */ - struct PendingMessageList *pending_head; - - /** - * Tail of linked list of requests queued for transmission. - */ - struct PendingMessageList *pending_tail; - - /** - * Number of messages currently in the list. - */ - unsigned int num_pending; - -}; - - -/** - * The notification context is the key datastructure for a convenience - * API used for transmission of notifications to the client until the - * client disconnects (or the notification context is destroyed, in - * which case we disconnect these clients). Essentially, all - * (notification) messages are queued up until the client is able to - * read them. - */ -struct GNUNET_SERVER_NotificationContext -{ - - /** - * Server we do notifications for. - */ - struct GNUNET_SERVER_Handle *server; - - /** - * Head of list of clients receiving notifications. - */ - struct ClientList *clients_head; - - /** - * Tail of list of clients receiving notifications. - */ - struct ClientList *clients_tail; - - /** - * Maximum number of optional messages to queue per client. - */ - unsigned int queue_length; - -}; - - -/** - * Client has disconnected, clean up. - * - * @param cls our `struct GNUNET_SERVER_NotificationContext *` - * @param client handle of client that disconnected - */ -static void -handle_client_disconnect (void *cls, - struct GNUNET_SERVER_Client *client) -{ - struct GNUNET_SERVER_NotificationContext *nc = cls; - struct ClientList *pos; - struct PendingMessageList *pml; - - if (NULL == client) - { - nc->server = NULL; - return; - } - for (pos = nc->clients_head; NULL != pos; pos = pos->next) - if (pos->client == client) - break; - if (NULL == pos) - return; - LOG (GNUNET_ERROR_TYPE_DEBUG, - "Client disconnected, cleaning up %u messages in NC queue\n", - pos->num_pending); - GNUNET_CONTAINER_DLL_remove (nc->clients_head, - nc->clients_tail, - pos); - while (NULL != (pml = pos->pending_head)) - { - GNUNET_CONTAINER_DLL_remove (pos->pending_head, - pos->pending_tail, - pml); - GNUNET_free (pml); - pos->num_pending--; - } - if (NULL != pos->th) - { - GNUNET_SERVER_notify_transmit_ready_cancel (pos->th); - pos->th = NULL; - } - GNUNET_SERVER_client_drop (client); - GNUNET_assert (0 == pos->num_pending); - GNUNET_free (pos); -} - - -/** - * Create a new notification context. - * - * @param server server for which this function creates the context - * @param queue_length maximum number of messages to keep in - * the notification queue; optional messages are dropped - * if the queue gets longer than this number of messages - * @return handle to the notification context - */ -struct GNUNET_SERVER_NotificationContext * -GNUNET_SERVER_notification_context_create (struct GNUNET_SERVER_Handle *server, - unsigned int queue_length) -{ - struct GNUNET_SERVER_NotificationContext *ret; - - ret = GNUNET_new (struct GNUNET_SERVER_NotificationContext); - ret->server = server; - ret->queue_length = queue_length; - GNUNET_SERVER_disconnect_notify (server, - &handle_client_disconnect, - ret); - return ret; -} - - -/** - * Destroy the context, force disconnect for all clients. - * - * @param nc context to destroy. - */ -void -GNUNET_SERVER_notification_context_destroy (struct GNUNET_SERVER_NotificationContext *nc) -{ - struct ClientList *pos; - struct PendingMessageList *pml; - - while (NULL != (pos = nc->clients_head)) - { - GNUNET_CONTAINER_DLL_remove (nc->clients_head, - nc->clients_tail, - pos); - if (NULL != pos->th) - { - GNUNET_SERVER_notify_transmit_ready_cancel (pos->th); - pos->th = NULL; - } - GNUNET_SERVER_client_drop (pos->client); - while (NULL != (pml = pos->pending_head)) - { - GNUNET_CONTAINER_DLL_remove (pos->pending_head, - pos->pending_tail, - pml); - GNUNET_free (pml); - pos->num_pending--; - } - GNUNET_assert (0 == pos->num_pending); - GNUNET_free (pos); - } - if (NULL != nc->server) - GNUNET_SERVER_disconnect_notify_cancel (nc->server, - &handle_client_disconnect, - nc); - GNUNET_free (nc); -} - - -/** - * Add a client to the notification context. - * - * @param nc context to modify - * @param client client to add - */ -void -GNUNET_SERVER_notification_context_add (struct GNUNET_SERVER_NotificationContext *nc, - struct GNUNET_SERVER_Client *client) -{ - struct ClientList *cl; - - for (cl = nc->clients_head; NULL != cl; cl = cl->next) - if (cl->client == client) - return; /* already present */ - cl = GNUNET_new (struct ClientList); - GNUNET_CONTAINER_DLL_insert (nc->clients_head, - nc->clients_tail, - cl); - cl->nc = nc; - cl->client = client; - GNUNET_SERVER_client_keep (client); -} - - -/** - * Function called to notify a client about the socket begin ready to - * queue more data. @a buf will be NULL and @a size zero if the socket - * was closed for writing in the meantime. - * - * @param cls the `struct ClientList *` - * @param size number of bytes available in @a buf - * @param buf where the callee should write the message - * @return number of bytes written to buf - */ -static size_t -transmit_message (void *cls, - size_t size, - void *buf) -{ - struct ClientList *cl = cls; - char *cbuf = buf; - struct PendingMessageList *pml; - uint16_t msize; - size_t ret; - - cl->th = NULL; - if (NULL == buf) - { - /* 'cl' should be freed via disconnect notification shortly */ - LOG (GNUNET_ERROR_TYPE_DEBUG, - "Failed to transmit message from NC queue to client\n"); - return 0; - } - ret = 0; - while (NULL != (pml = cl->pending_head)) - { - msize = ntohs (pml->msg->size); - if (size < msize) - break; - GNUNET_CONTAINER_DLL_remove (cl->pending_head, - cl->pending_tail, - pml); - LOG (GNUNET_ERROR_TYPE_DEBUG, - "Copying message of type %u and size %u from pending queue to transmission buffer\n", - ntohs (pml->msg->type), - msize); - GNUNET_memcpy (&cbuf[ret], pml->msg, msize); - ret += msize; - size -= msize; - GNUNET_free (pml); - cl->num_pending--; - } - if (NULL != pml) - { - LOG (GNUNET_ERROR_TYPE_DEBUG, - "Have %u messages left in NC queue, will try transmission again\n", - cl->num_pending); - cl->th = - GNUNET_SERVER_notify_transmit_ready (cl->client, - ntohs (pml->msg->size), - GNUNET_TIME_UNIT_FOREVER_REL, - &transmit_message, cl); - } - else - { - GNUNET_assert (0 == cl->num_pending); - } - return ret; -} - - -/** - * Send a message to a particular client. - * - * @param nc context to modify - * @param client client to transmit to - * @param msg message to send - * @param can_drop can this message be dropped due to queue length limitations - */ -static void -do_unicast (struct GNUNET_SERVER_NotificationContext *nc, - struct ClientList *client, - const struct GNUNET_MessageHeader *msg, - int can_drop) -{ - struct PendingMessageList *pml; - uint16_t size; - - if ( (client->num_pending > nc->queue_length) && - (GNUNET_YES == can_drop) ) - { - LOG (GNUNET_ERROR_TYPE_INFO, - "Dropping message of type %u and size %u due to full queue (%u entries)\n", - ntohs (msg->type), ntohs (msg->size), (unsigned int) nc->queue_length); - return; /* drop! */ - } - if (client->num_pending > nc->queue_length) - { - /* FIXME: consider checking for other messages in the - * queue that are 'droppable' */ - } - client->num_pending++; - size = ntohs (msg->size); - pml = GNUNET_malloc (sizeof (struct PendingMessageList) + size); - pml->msg = (const struct GNUNET_MessageHeader *) &pml[1]; - pml->can_drop = can_drop; - LOG (GNUNET_ERROR_TYPE_DEBUG, - "Adding message of type %u and size %u to pending queue (which has %u entries)\n", - ntohs (msg->type), - ntohs (msg->size), - (unsigned int) nc->queue_length); - GNUNET_memcpy (&pml[1], msg, size); - /* append */ - GNUNET_CONTAINER_DLL_insert_tail (client->pending_head, - client->pending_tail, - pml); - if (NULL == client->th) - client->th = - GNUNET_SERVER_notify_transmit_ready (client->client, - ntohs (client->pending_head-> - msg->size), - GNUNET_TIME_UNIT_FOREVER_REL, - &transmit_message, client); -} - - -/** - * Send a message to a particular client; must have - * already been added to the notification context. - * - * @param nc context to modify - * @param client client to transmit to - * @param msg message to send - * @param can_drop can this message be dropped due to queue length limitations - */ -void -GNUNET_SERVER_notification_context_unicast (struct GNUNET_SERVER_NotificationContext *nc, - struct GNUNET_SERVER_Client *client, - const struct GNUNET_MessageHeader *msg, - int can_drop) -{ - struct ClientList *pos; - - for (pos = nc->clients_head; NULL != pos; pos = pos->next) - if (pos->client == client) - break; - GNUNET_assert (NULL != pos); - do_unicast (nc, pos, msg, can_drop); -} - - -/** - * Send a message to all clients of this context. - * - * @param nc context to modify - * @param msg message to send - * @param can_drop can this message be dropped due to queue length limitations - */ -void -GNUNET_SERVER_notification_context_broadcast (struct - GNUNET_SERVER_NotificationContext *nc, - const struct GNUNET_MessageHeader *msg, - int can_drop) -{ - struct ClientList *pos; - - for (pos = nc->clients_head; NULL != pos; pos = pos->next) - do_unicast (nc, pos, msg, can_drop); -} - - -/** - * Return active number of subscribers in this context. - * - * @param nc context to query - * @return number of current subscribers - */ -unsigned int -GNUNET_SERVER_notification_context_get_size (struct GNUNET_SERVER_NotificationContext *nc) -{ - unsigned int num; - struct ClientList *pos; - - num = 0; - for (pos = nc->clients_head; NULL != pos; pos = pos->next) - num++; - return num; -} - -/* end of server_nc.c */ diff --git a/src/util/server_tc.c b/src/util/server_tc.c deleted file mode 100644 index 8ae380a85..000000000 --- a/src/util/server_tc.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - This file is part of GNUnet. - Copyright (C) 2009 GNUnet e.V. - - GNUnet is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 3, or (at your - option) any later version. - - GNUnet is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -/** - * @file util/server_tc.c - * @brief convenience functions for transmission of - * complex responses as a server - * @author Christian Grothoff - */ - -#include "platform.h" -#include "gnunet_util_lib.h" - - -#define LOG(kind,...) GNUNET_log_from (kind, "util-server-tc", __VA_ARGS__) - - -/** - * How much buffer space do we want to have at least - * before transmitting another increment? - */ -#define MIN_BLOCK_SIZE 128 - - - -struct GNUNET_SERVER_TransmitContext -{ - /** - * Which client are we transmitting to? - */ - struct GNUNET_SERVER_Client *client; - - /** - * Transmission buffer. (current offset for writing). - */ - char *buf; - - /** - * Number of bytes in buf. - */ - size_t total; - - /** - * Offset for writing in buf. - */ - size_t off; - - /** - * Timeout for this request. - */ - struct GNUNET_TIME_Absolute timeout; -}; - - -/** - * Helper function for incremental transmission of the response. - */ -static size_t -transmit_response (void *cls, size_t size, void *buf) -{ - struct GNUNET_SERVER_TransmitContext *tc = cls; - size_t msize; - - if (NULL == buf) - { - GNUNET_SERVER_transmit_context_destroy (tc, GNUNET_SYSERR); - return 0; - } - if (tc->total - tc->off > size) - msize = size; - else - msize = tc->total - tc->off; - GNUNET_memcpy (buf, &tc->buf[tc->off], msize); - tc->off += msize; - if (tc->total == tc->off) - { - GNUNET_SERVER_receive_done (tc->client, GNUNET_OK); - GNUNET_SERVER_client_drop (tc->client); - GNUNET_free_non_null (tc->buf); - GNUNET_free (tc); - } - else - { - if (NULL == - GNUNET_SERVER_notify_transmit_ready (tc->client, - GNUNET_MIN (MIN_BLOCK_SIZE, - tc->total - tc->off), - GNUNET_TIME_absolute_get_remaining - (tc->timeout), &transmit_response, - tc)) - { - GNUNET_break (0); - GNUNET_SERVER_transmit_context_destroy (tc, GNUNET_SYSERR); - } - } - return msize; -} - - -/** - * Create a new transmission context for the - * given client. - * - * @param client client to create the context for. - * @return NULL on error - */ -struct GNUNET_SERVER_TransmitContext * -GNUNET_SERVER_transmit_context_create (struct GNUNET_SERVER_Client *client) -{ - struct GNUNET_SERVER_TransmitContext *tc; - - GNUNET_assert (NULL != client); - tc = GNUNET_new (struct GNUNET_SERVER_TransmitContext); - GNUNET_SERVER_client_keep (client); - tc->client = client; - return tc; -} - - -/** - * Append a message to the transmission context. - * All messages in the context will be sent by - * the transmit_context_run method. - * - * @param tc context to use - * @param data what to append to the result message - * @param length length of data - * @param type type of the message - */ -void -GNUNET_SERVER_transmit_context_append_data (struct GNUNET_SERVER_TransmitContext - *tc, const void *data, - size_t length, uint16_t type) -{ - struct GNUNET_MessageHeader *msg; - size_t size; - - GNUNET_assert (length < GNUNET_SERVER_MAX_MESSAGE_SIZE); - size = length + sizeof (struct GNUNET_MessageHeader); - GNUNET_assert (size > length); - tc->buf = GNUNET_realloc (tc->buf, tc->total + size); - msg = (struct GNUNET_MessageHeader *) &tc->buf[tc->total]; - tc->total += size; - msg->size = htons (size); - msg->type = htons (type); - GNUNET_memcpy (&msg[1], data, length); -} - - -/** - * Append a message to the transmission context. - * All messages in the context will be sent by - * the transmit_context_run method. - * - * @param tc context to use - * @param msg message to append - */ -void -GNUNET_SERVER_transmit_context_append_message (struct - GNUNET_SERVER_TransmitContext - *tc, - const struct GNUNET_MessageHeader - *msg) -{ - struct GNUNET_MessageHeader *m; - uint16_t size; - - size = ntohs (msg->size); - tc->buf = GNUNET_realloc (tc->buf, tc->total + size); - m = (struct GNUNET_MessageHeader *) &tc->buf[tc->total]; - tc->total += size; - GNUNET_memcpy (m, msg, size); -} - - -/** - * Execute a transmission context. If there is - * an error in the transmission, the #GNUNET_SERVER_receive_done() - * method will be called with an error code (#GNUNET_SYSERR), - * otherwise with #GNUNET_OK. - * - * @param tc transmission context to use - * @param timeout when to time out and abort the transmission - */ -void -GNUNET_SERVER_transmit_context_run (struct GNUNET_SERVER_TransmitContext *tc, - struct GNUNET_TIME_Relative timeout) -{ - tc->timeout = GNUNET_TIME_relative_to_absolute (timeout); - if (NULL == - GNUNET_SERVER_notify_transmit_ready (tc->client, - GNUNET_MIN (MIN_BLOCK_SIZE, - tc->total), timeout, - &transmit_response, tc)) - { - GNUNET_break (0); - GNUNET_SERVER_transmit_context_destroy (tc, GNUNET_SYSERR); - } -} - - -/** - * Destroy a transmission context. This function must not be called - * after 'GNUNET_SERVER_transmit_context_run'. - * - * @param tc transmission context to destroy - * @param success code to give to 'GNUNET_SERVER_receive_done' for - * the client: GNUNET_OK to keep the connection open and - * continue to receive - * GNUNET_NO to close the connection (normal behavior) - * GNUNET_SYSERR to close the connection (signal - * serious error) - */ -void -GNUNET_SERVER_transmit_context_destroy (struct GNUNET_SERVER_TransmitContext - *tc, int success) -{ - GNUNET_SERVER_receive_done (tc->client, success); - GNUNET_SERVER_client_drop (tc->client); - GNUNET_free_non_null (tc->buf); - GNUNET_free (tc); -} - - -/* end of server_tc.c */ diff --git a/src/util/service.c b/src/util/service.c index b4d03c17c..800d09a42 100644 --- a/src/util/service.c +++ b/src/util/service.c @@ -1596,7 +1596,7 @@ teardown_service (struct GNUNET_SERVICE_Handle *sh) * dropped. Additionally, clients can be dropped at any time using * #GNUNET_SERVICE_client_drop(). * - * The service must be stopped using #GNUNET_SERVICE_stoP(). + * The service must be stopped using #GNUNET_SERVICE_stop(). * * @param service_name name of the service to run * @param cfg configuration to use @@ -1609,7 +1609,7 @@ teardown_service (struct GNUNET_SERVICE_Handle *sh) * @return NULL on error */ struct GNUNET_SERVICE_Handle * -GNUNET_SERVICE_starT (const char *service_name, +GNUNET_SERVICE_start (const char *service_name, const struct GNUNET_CONFIGURATION_Handle *cfg, GNUNET_SERVICE_ConnectHandler connect_cb, GNUNET_SERVICE_DisconnectHandler disconnect_cb, @@ -1637,12 +1637,12 @@ GNUNET_SERVICE_starT (const char *service_name, /** - * Stops a service that was started with #GNUNET_SERVICE_starT(). + * Stops a service that was started with #GNUNET_SERVICE_start(). * * @param srv service to stop */ void -GNUNET_SERVICE_stoP (struct GNUNET_SERVICE_Handle *srv) +GNUNET_SERVICE_stop (struct GNUNET_SERVICE_Handle *srv) { struct GNUNET_SERVICE_Client *client; @@ -1697,7 +1697,7 @@ GNUNET_SERVICE_stoP (struct GNUNET_SERVICE_Handle *srv) * @return 0 on success, non-zero on error */ int -GNUNET_SERVICE_ruN_ (int argc, +GNUNET_SERVICE_run_ (int argc, char *const *argv, const char *service_name, enum GNUNET_SERVICE_Options options, diff --git a/src/util/test_client.c b/src/util/test_client.c index f60e5b7f7..527b400b0 100644 --- a/src/util/test_client.c +++ b/src/util/test_client.c @@ -179,7 +179,7 @@ main (int argc, test_argv[2] = "test_client_unix.conf"; global_ret = 1; if (0 != - GNUNET_SERVICE_ruN_ (3, + GNUNET_SERVICE_run_ (3, test_argv, "test_client", GNUNET_SERVICE_OPTION_NONE, diff --git a/src/util/test_service.c b/src/util/test_service.c index d2136b42f..1567c97ce 100644 --- a/src/util/test_service.c +++ b/src/util/test_service.c @@ -148,7 +148,7 @@ check (const char *sname) sname); global_ret = 1; GNUNET_assert (0 == - GNUNET_SERVICE_ruN_ (3, + GNUNET_SERVICE_run_ (3, argv, sname, GNUNET_SERVICE_OPTION_NONE, diff --git a/src/vpn/gnunet-helper-vpn-windows.c b/src/vpn/gnunet-helper-vpn-windows.c index a9596752a..e74a0aa2f 100644 --- a/src/vpn/gnunet-helper-vpn-windows.c +++ b/src/vpn/gnunet-helper-vpn-windows.c @@ -77,7 +77,7 @@ static boolean privilege_testing = FALSE; /** - * Maximum size of a GNUnet message (GNUNET_SERVER_MAX_MESSAGE_SIZE) + * Maximum size of a GNUnet message (GNUNET_MAX_MESSAGE_SIZE) */ #define MAX_SIZE 65536 diff --git a/src/vpn/gnunet-helper-vpn.c b/src/vpn/gnunet-helper-vpn.c index 02889d65b..4ed4e079e 100644 --- a/src/vpn/gnunet-helper-vpn.c +++ b/src/vpn/gnunet-helper-vpn.c @@ -53,7 +53,7 @@ #define DEBUG GNUNET_NO /** - * Maximum size of a GNUnet message (GNUNET_SERVER_MAX_MESSAGE_SIZE) + * Maximum size of a GNUnet message (GNUNET_MAX_MESSAGE_SIZE) */ #define MAX_SIZE 65536 diff --git a/src/vpn/gnunet-service-vpn.c b/src/vpn/gnunet-service-vpn.c index 4759f3746..d9daaa7e2 100644 --- a/src/vpn/gnunet-service-vpn.c +++ b/src/vpn/gnunet-service-vpn.c @@ -1839,7 +1839,7 @@ route_packet (struct DestinationEntry *destination, mlen = sizeof (struct GNUNET_EXIT_UdpServiceMessage) + payload_length - sizeof (struct GNUNET_TUN_UdpHeader); - if (mlen >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (mlen >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; @@ -1864,7 +1864,7 @@ route_packet (struct DestinationEntry *destination, mlen = sizeof (struct GNUNET_EXIT_UdpInternetMessage) + alen + payload_length - sizeof (struct GNUNET_TUN_UdpHeader); - if (mlen >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (mlen >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; @@ -1904,7 +1904,7 @@ route_packet (struct DestinationEntry *destination, mlen = sizeof (struct GNUNET_EXIT_TcpServiceStartMessage) + payload_length - sizeof (struct GNUNET_TUN_TcpHeader); - if (mlen >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (mlen >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; @@ -1927,7 +1927,7 @@ route_packet (struct DestinationEntry *destination, mlen = sizeof (struct GNUNET_EXIT_TcpInternetStartMessage) + alen + payload_length - sizeof (struct GNUNET_TUN_TcpHeader); - if (mlen >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (mlen >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; @@ -1963,7 +1963,7 @@ route_packet (struct DestinationEntry *destination, mlen = sizeof (struct GNUNET_EXIT_TcpDataMessage) + payload_length - sizeof (struct GNUNET_TUN_TcpHeader); - if (mlen >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (mlen >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; @@ -2038,7 +2038,7 @@ route_packet (struct DestinationEntry *destination, /* update length calculations, as payload_length may have changed */ mlen = sizeof (struct GNUNET_EXIT_IcmpServiceMessage) + alen + payload_length - sizeof (struct GNUNET_TUN_IcmpHeader); - if (mlen >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (mlen >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return; @@ -2168,7 +2168,7 @@ route_packet (struct DestinationEntry *destination, /* update length calculations, as payload_length may have changed */ mlen = sizeof (struct GNUNET_EXIT_IcmpInternetMessage) + alen + payload_length - sizeof (struct GNUNET_TUN_IcmpHeader); - if (mlen >= GNUNET_SERVER_MAX_MESSAGE_SIZE) + if (mlen >= GNUNET_MAX_MESSAGE_SIZE) { GNUNET_break (0); return;