diff options
author | Christian Grothoff <christian@grothoff.org> | 2010-03-19 14:24:14 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2010-03-19 14:24:14 +0000 |
commit | 7b7ec4fefd44742d9368638df9670771b8eaf259 (patch) | |
tree | 4844964ba35da05901b8da27e90f4b97c22e6897 /TODO | |
parent | fb73dfb39e1ce87c32de6213e82399a1ba797d8c (diff) | |
download | gnunet-7b7ec4fefd44742d9368638df9670771b8eaf259.tar.gz gnunet-7b7ec4fefd44742d9368638df9670771b8eaf259.zip |
moving gnunet-peerinfo.c to allow it to use transport_api
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 50 |
1 files changed, 34 insertions, 16 deletions
@@ -15,30 +15,20 @@ away), in order in which they will likely be done: | |||
15 | 15 | ||
16 | 0.9.0pre0: | 16 | 0.9.0pre0: |
17 | * TRANSPORT: | 17 | * TRANSPORT: |
18 | - TCP not used bi-directionally (especially important also for PONG!) | ||
19 | Need a way for plugin to tell to service that it can *reliably* transmit | ||
20 | PONGs. Need *good* way to ensure only one (plugin) session is active at | ||
21 | any given point in time; need systematic way to periodically probe latency/ | ||
22 | transport cost changes | ||
23 | - disconnect notifications from TCP not always as nice as we might want | ||
24 | them to be (but how can we do this cleanly given that UDP is connectionless?) | ||
25 | - implement transport API to pretty-print transport address | 18 | - implement transport API to pretty-print transport address |
26 | + resolve cyclic dependency (gnunet-peerinfo -> transport_api -> peerinfo!) | 19 | + resolve cyclic dependency (gnunet-peerinfo -> transport_api -> peerinfo!) |
27 | + gnunet-transport-service crashes when asked to resolve address (!) | 20 | + gnunet-transport-service crashes when asked to resolve address (!) |
28 | + asynchronous transport lookup and non-CPS iterator in peerinfo require | 21 | + asynchronous transport lookup and non-CPS iterator in peerinfo require |
29 | some work to ensure printing in the proper order... | 22 | some work to ensure printing in the proper order... |
30 | - instantly filter addresses from *other* peers that | ||
31 | are *equal* to our own address + port (i.e., localhost:2086). We | ||
32 | no longer filter those for outgoing (helps with loopback testing | ||
33 | and keeps the code clean), but we should filter strictly *impossible* | ||
34 | incoming addresses! This is for efficiency, not correctness. | ||
35 | - [./transport/gnunet-service-transport.c:173]: (style) struct or union member 'TransportPlugin::rebuild' is never used | ||
36 | - [./transport/plugin_transport_tcp.c:391]: (style) struct or union member 'Plugin::address_update_task' is never used | ||
37 | * CORE: | 23 | * CORE: |
38 | - SET_KEY is triggered every 2.5 minutes (after session is up); should | 24 | - SET_KEY is triggered every 2.5 minutes (after session is up); should |
39 | just do PING (not SET_KEY + PING) | 25 | just do PING (not SET_KEY + PING) |
40 | - "Forcing disconnect of XXX due to inactivity" -- can happen every few MS!? | 26 | - "Forcing disconnect of XXX due to inactivity" -- can happen every few MS!? |
41 | (disconnect does not really succeed, or what?) | 27 | (disconnect does not really succeed, or what?) |
28 | Also, core does not seem to actually decrement the number of active | ||
29 | sessions even if no connections exist for a while! (likely related...) | ||
30 | - transport reports bw quota violations on big-endian systems (core or | ||
31 | transport issue?) | ||
42 | * HELLO: | 32 | * HELLO: |
43 | - need function to test "equivalency" of HELLOs; use in topology! | 33 | - need function to test "equivalency" of HELLOs; use in topology! |
44 | * FS: | 34 | * FS: |
@@ -253,10 +243,38 @@ away), in order in which they will likely be done: | |||
253 | - Remove KBlocks in gnunet-unindex (see discussion with Kenneth Almquist on gnunet-devs in 9/2009) | 243 | - Remove KBlocks in gnunet-unindex (see discussion with Kenneth Almquist on gnunet-devs in 9/2009) |
254 | - Allow checking of presence of search results and/or content via command-line tools | 244 | - Allow checking of presence of search results and/or content via command-line tools |
255 | (add options to gnunet-search / gnunet-download to limit search to local peer) | 245 | (add options to gnunet-search / gnunet-download to limit search to local peer) |
256 | * STATISTICS: | ||
257 | - should use BIO instead of mmap | ||
258 | * PEERINFO: | 246 | * PEERINFO: |
259 | - expire 'ancient' HELLOs (those without valid addresses AND that | 247 | - expire 'ancient' HELLOs (those without valid addresses AND that |
260 | we have not 'used' (for their public keys) in a while; need a way | 248 | we have not 'used' (for their public keys) in a while; need a way |
261 | to track actual 'use') | 249 | to track actual 'use') |
262 | - make sue we also trigger notifications whenever HELLOs expire | 250 | - make sue we also trigger notifications whenever HELLOs expire |
251 | |||
252 | |||
253 | |||
254 | Optimizations: | ||
255 | * TCP: | ||
256 | - should use hash map to look up sessions | ||
257 | * PEERINFO: | ||
258 | - api creates many, many short-lived TCP connections; either some | ||
259 | clients should use the API differently or we need to change the | ||
260 | API to enable re-use of connections to the service | ||
261 | * STATISTICS: | ||
262 | - should use BIO instead of mmap | ||
263 | * TRANSPORT: | ||
264 | - need to periodically probe latency/transport cost changes & possibly switch transport | ||
265 | - instantly filter addresses from *other* peers that | ||
266 | are *equal* to our own address + port (i.e., localhost:2086). We | ||
267 | no longer filter those for outgoing (helps with loopback testing | ||
268 | and keeps the code clean), but we should filter strictly *impossible* | ||
269 | incoming addresses! This is for efficiency, not correctness. | ||
270 | - should use hash map to look up Neighbours | ||
271 | |||
272 | Minor features: | ||
273 | * TCP: | ||
274 | - repeatedly resolve hostname and look up interfaces to determine our own IP | ||
275 | - [./transport/plugin_transport_tcp.c:391]: (style) struct or union member 'Plugin::address_update_task' is never used (related to issue above) | ||
276 | * TRANSPORT: | ||
277 | - [./transport/gnunet-service-transport.c:173]: (style) struct or union member 'TransportPlugin::rebuild' is never used (related to TCP not refreshing external addresses?) | ||
278 | |||
279 | |||
280 | |||