X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=BUGS;h=1d9398c9b2ad2a582f3f36bc3abd1be51952ca32;hb=4a091fe51761db20dea1a3325dfff89209e907b4;hp=664987618bb019d96a00b549e6f76ffe94fb8d9e;hpb=3b5e75467fb47850a5826ad9221bf400d173fff0;p=oweals%2Fgnunet.git diff --git a/BUGS b/BUGS index 664987618..1d9398c9b 100644 --- a/BUGS +++ b/BUGS @@ -4,15 +4,10 @@ sane end-user should care about this codebase yet anyway. * UTIL: - - container_bloomfilter: improve efficiency (see FIXME) - only connect() sockets that are ready (select()) [Nils] [On W32, we need to select after calling socket before doing connect etc.] * TRANSPORT: - - transport_api: support forcing disconnects through low quotas! - (required for working F2F support!) - - API: consider having core provide deadline information for each message - (likely important for DV plugin which wants to loop back!) - implement transport API to pretty-print transport address + transport_api extension (API extension!) + service-transport extension (protocol extension) @@ -52,15 +47,8 @@ sane end-user should care about this codebase yet anyway. + How necessary is ACKing in the first place? (alternatives?) + Should we transmit ACKs in response to every HELLO? (would that fully address the problem?) - - latency measurements implemented in the transport - plugins makes it only work for bi-di transports - and results in code replication - - should latency be included in the ReceiveCallback and - NotifyConnect or passed on request? - - FIXME's with latency being simply set to 0 in a few places - [./transport/gnunet-service-transport.c:173]: (style) struct or union member 'TransportPlugin::rebuild' is never used - [./transport/plugin_transport_tcp.c:391]: (style) struct or union member 'Plugin::address_update_task' is never used - * FS: - [./fs/gnunet-service-fs.c:208]: (style) struct or union member 'LocalGetContext::results_bf_size' is never used - [./fs/gnunet-service-fs.c:501]: (style) struct or union member 'PendingRequest::used_pids_size' is never used @@ -70,10 +58,27 @@ sane end-user should care about this codebase yet anyway. - [./fs/gnunet-service-fs.c:688]: (style) struct or union member 'ConnectedPeer::pending_requests' is never used - [./fs/gnunet-service-fs.c:694]: (style) struct or union member 'ConnectedPeer::last_p2p_replies_woff' is never used - [./fs/gnunet-service-fs.c:700]: (style) struct or union member 'ConnectedPeer::last_client_replies_woff' is never used - * TOPOLOGY: - - [./topology/gnunet-daemon-topology.c:94]: (style) struct or union member 'PeerList::last_hello_sent' is never used - + - If the topology daemon crashes, peers that were put on the + blacklist with transport will never be removed from it (until + transport service dies); we should use the blacklist notification + API to learn about the exact set of blacklisted peers at all times + (FIXME: the transport_api implementation of blacklisting + also does not work nicely for this since it won't let us know about + disconnect-reconnect events and the implicit whitelisting + that might happen here; that's not so bad since we will + re-blacklist on pre-connect attempts anyway, so this is + a minor issue). + - the code uses the term 'blacklist' for both peers that are forbidden + to connect (i.e. F2F mode) as well as peers that we currently + won't try to actively connect to ourselves (since we just tried); + This is confusing. We need two distinct terms. + - move code to use hash table instead of linked list + - instead of periodically discarding blacklisted entries, + simply add task that is triggered at the right time (earlier free, + more balanced load) + - check if new HELLO learned is different from old HELLO + before resetting entire state! * SETUP: - auto-generate "defaults.conf" using gnunet-setup from "config.scm" - integrate all options into "config.scm" @@ -83,12 +88,7 @@ sane end-user should care about this codebase yet anyway. - better tracking of which config changes actually need to cause process restarts by ARM. - have way to specify dependencies between services (to manage ARM restarts better) * CORE: - - code currently notifies clients about "encrypted" connections being up well before - we get the encrypted PONG; sometimes this may be OK (for topology killing - unwanted connnections), but of course not in general. I suspect we want - to signal on PONG and have topology hook directly into transport to - kill plaintext connections before they have a chance to become encrypted - (may require minor hack in transport API) + - test case (test_core_api) hangs for a while (some timeout task not killed somewhere?) - [./core/gnunet-service-core.c:469]: (style) struct or union member 'Neighbour::message_queue_size' is never used - [./core/test_core_api_start_only.c:50]: (style) struct or union member 'PeerContext::id' is never used @@ -101,3 +101,7 @@ sane end-user should care about this codebase yet anyway. * TESTING: - consider changing API for peer-group termination to call continuation when done + +* HOSTLIST: + - 'server' uses 'GNUNET_PEERINFO_iterate', should probably switch to notification API + (for more instant / up-to-date hostlists at lower cost) [OPTIMIZATION]