aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HACKING2
-rw-r--r--TODO50
-rw-r--r--configure.ac1
-rw-r--r--src/Makefile.am1
-rw-r--r--src/peerinfo-tool/Makefile.am24
-rw-r--r--src/peerinfo-tool/gnunet-peerinfo.c (renamed from src/peerinfo/gnunet-peerinfo.c)7
-rw-r--r--src/peerinfo/Makefile.am10
7 files changed, 65 insertions, 30 deletions
diff --git a/HACKING b/HACKING
index 5d8badcbb..6b5dfb001 100644
--- a/HACKING
+++ b/HACKING
@@ -6,7 +6,7 @@ include files:
6- _plugin: plugin definition 6- _plugin: plugin definition
7- _protocol: structs used in network protocol 7- _protocol: structs used in network protocol
8- exceptions: 8- exceptions:
9 * GNUNET_config.h --- generated // FIXME: decapitalize 9 * gnunet_config.h --- generated
10 * platform.h --- first included 10 * platform.h --- first included
11 * plibc.h --- external library 11 * plibc.h --- external library
12 * gnunet_common.h --- fundamental routines 12 * gnunet_common.h --- fundamental routines
diff --git a/TODO b/TODO
index a0a86789c..6fb70aebd 100644
--- a/TODO
+++ b/TODO
@@ -15,30 +15,20 @@ away), in order in which they will likely be done:
15 15
160.9.0pre0: 160.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
254Optimizations:
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
272Minor 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
diff --git a/configure.ac b/configure.ac
index 41157ca29..4251e329c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -655,6 +655,7 @@ src/nat/Makefile
655src/nat/libnatpmp/Makefile 655src/nat/libnatpmp/Makefile
656src/nat/miniupnp/Makefile 656src/nat/miniupnp/Makefile
657src/peerinfo/Makefile 657src/peerinfo/Makefile
658src/peerinfo-tool/Makefile
658src/statistics/Makefile 659src/statistics/Makefile
659src/template/Makefile 660src/template/Makefile
660src/testing/Makefile 661src/testing/Makefile
diff --git a/src/Makefile.am b/src/Makefile.am
index 4d63bc756..a01288078 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -22,6 +22,7 @@ SUBDIRS = \
22 datastore \ 22 datastore \
23 template \ 23 template \
24 transport \ 24 transport \
25 peerinfo-tool \
25 core \ 26 core \
26 testing \ 27 testing \
27 $(HOSTLIST_DIR) \ 28 $(HOSTLIST_DIR) \
diff --git a/src/peerinfo-tool/Makefile.am b/src/peerinfo-tool/Makefile.am
new file mode 100644
index 000000000..b9e6d7d07
--- /dev/null
+++ b/src/peerinfo-tool/Makefile.am
@@ -0,0 +1,24 @@
1INCLUDES = -I$(top_srcdir)/src/include
2
3if MINGW
4 WINFLAGS = -Wl,--no-undefined -Wl,--export-all-symbols -lole32 -lshell32 -luuid -liconv -lstdc++ -lcomdlg32 -lgdi32
5endif
6
7if USE_COVERAGE
8 AM_CFLAGS = --coverage -O0
9 XLIB = -lgcov
10endif
11
12bin_PROGRAMS = \
13 gnunet-peerinfo
14
15gnunet_peerinfo_SOURCES = \
16 gnunet-peerinfo.c
17gnunet_peerinfo_LDADD = \
18 $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \
19 $(top_builddir)/src/transport/libgnunettransport.la \
20 $(top_builddir)/src/util/libgnunetutil.la
21
22
23#check_SCRIPTS = \
24# test_gnunet_peerinfo.sh
diff --git a/src/peerinfo/gnunet-peerinfo.c b/src/peerinfo-tool/gnunet-peerinfo.c
index d4a36a059..c056b390e 100644
--- a/src/peerinfo/gnunet-peerinfo.c
+++ b/src/peerinfo-tool/gnunet-peerinfo.c
@@ -1,6 +1,6 @@
1/* 1/*
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 (C) 2001, 2002, 2003, 2004, 2006, 2009 Christian Grothoff (and other contributing authors) 3 (C) 2001, 2002, 2003, 2004, 2006, 2009, 2010 Christian Grothoff (and other contributing authors)
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published 6 it under the terms of the GNU General Public License as published
@@ -19,7 +19,7 @@
19*/ 19*/
20 20
21/** 21/**
22 * @file peerinfo/gnunet-peerinfo.c 22 * @file peerinfo-tool/gnunet-peerinfo.c
23 * @brief Print information about other known peers. 23 * @brief Print information about other known peers.
24 * @author Christian Grothoff 24 * @author Christian Grothoff
25 */ 25 */
@@ -41,6 +41,8 @@ static struct GNUNET_SCHEDULER_Handle *sched;
41 41
42static const struct GNUNET_CONFIGURATION_Handle *cfg; 42static const struct GNUNET_CONFIGURATION_Handle *cfg;
43 43
44#define FIXME 0
45
44#if FIXME 46#if FIXME
45/** 47/**
46 * Function to call with a human-readable format of an address 48 * Function to call with a human-readable format of an address
@@ -56,7 +58,6 @@ print_resolved_address (void *cls,
56 once, otherwise we mix results... */ 58 once, otherwise we mix results... */
57 if (address == NULL) 59 if (address == NULL)
58 { 60 {
59 fprintf (stderr, "\n");
60 return; 61 return;
61 } 62 }
62 fprintf (stderr, " %s\n", address); 63 fprintf (stderr, " %s\n", address);
diff --git a/src/peerinfo/Makefile.am b/src/peerinfo/Makefile.am
index ea7ef1316..42396e3e7 100644
--- a/src/peerinfo/Makefile.am
+++ b/src/peerinfo/Makefile.am
@@ -23,15 +23,8 @@ libgnunetpeerinfo_la_LDFLAGS = \
23 23
24 24
25bin_PROGRAMS = \ 25bin_PROGRAMS = \
26 gnunet-peerinfo \
27 gnunet-service-peerinfo 26 gnunet-service-peerinfo
28 27
29gnunet_peerinfo_SOURCES = \
30 gnunet-peerinfo.c
31gnunet_peerinfo_LDADD = \
32 $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \
33 $(top_builddir)/src/util/libgnunetutil.la
34
35gnunet_service_peerinfo_SOURCES = \ 28gnunet_service_peerinfo_SOURCES = \
36 gnunet-service-peerinfo.c 29 gnunet-service-peerinfo.c
37gnunet_service_peerinfo_LDADD = \ 30gnunet_service_peerinfo_LDADD = \
@@ -54,6 +47,3 @@ test_peerinfo_api_LDADD = \
54 47
55EXTRA_DIST = \ 48EXTRA_DIST = \
56 test_peerinfo_api_data.conf 49 test_peerinfo_api_data.conf
57
58#check_SCRIPTS = \
59# test_gnunet_peerinfo.sh