diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-04-01 07:53:22 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-04-01 07:53:22 +0000 |
commit | bbe279c1183a26f486bd43c1b6ad3243de983774 (patch) | |
tree | 3fd5a771030d92ad27f115a52966174b22d69a86 /src/core | |
parent | b70951668100e466336aeb748fb59cdcc9d9fdfa (diff) | |
download | gnunet-bbe279c1183a26f486bd43c1b6ad3243de983774.tar.gz gnunet-bbe279c1183a26f486bd43c1b6ad3243de983774.zip |
-code cleanup
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/gnunet-core-list-connections.c | 140 |
1 files changed, 16 insertions, 124 deletions
diff --git a/src/core/gnunet-core-list-connections.c b/src/core/gnunet-core-list-connections.c index fcd076564..4fe0a4f86 100644 --- a/src/core/gnunet-core-list-connections.c +++ b/src/core/gnunet-core-list-connections.c | |||
@@ -1,6 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of GNUnet. | 2 | This file is part of GNUnet. |
3 | (C) 2011 Christian Grothoff (and other contributing authors) | 3 | (C) 2011, 2012 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 core/gnunet-core-list-connections.c | 22 | * @file core/gnunet-core.c |
23 | * @brief Print information about other known _connected_ peers. | 23 | * @brief Print information about other known _connected_ peers. |
24 | * @author Nathan Evans | 24 | * @author Nathan Evans |
25 | */ | 25 | */ |
@@ -32,127 +32,26 @@ | |||
32 | #include "gnunet_core_service.h" | 32 | #include "gnunet_core_service.h" |
33 | #include "gnunet_program_lib.h" | 33 | #include "gnunet_program_lib.h" |
34 | 34 | ||
35 | #define VERBOSE 0 | ||
36 | static int no_resolve; | ||
37 | |||
38 | #if VERBOSE | ||
39 | static unsigned int peer_count; | ||
40 | #endif | ||
41 | |||
42 | static const struct GNUNET_CONFIGURATION_Handle *cfg; | ||
43 | |||
44 | struct AddressStringList | ||
45 | { | ||
46 | /** | ||
47 | * Pointer to previous element. | ||
48 | */ | ||
49 | struct AddressStringList *prev; | ||
50 | |||
51 | /** | ||
52 | * Pointer to next element. | ||
53 | */ | ||
54 | struct AddressStringList *next; | ||
55 | |||
56 | /** | ||
57 | * Address as string. | ||
58 | */ | ||
59 | char *address_string; | ||
60 | }; | ||
61 | |||
62 | struct PrintContext | ||
63 | { | ||
64 | struct GNUNET_PeerIdentity peer; | ||
65 | struct AddressStringList *address_list_head; | ||
66 | struct AddressStringList *address_list_tail; | ||
67 | }; | ||
68 | |||
69 | |||
70 | static void | ||
71 | dump_pc (struct PrintContext *pc) | ||
72 | { | ||
73 | struct GNUNET_CRYPTO_HashAsciiEncoded enc; | ||
74 | struct AddressStringList *address; | ||
75 | |||
76 | GNUNET_CRYPTO_hash_to_enc (&pc->peer.hashPubKey, &enc); | ||
77 | printf (_("Peer `%s'\n"), (const char *) &enc); | ||
78 | while (NULL != (address = pc->address_list_head)) | ||
79 | { | ||
80 | printf ("\t%s\n", address->address_string); | ||
81 | GNUNET_free (address->address_string); | ||
82 | GNUNET_CONTAINER_DLL_remove (pc->address_list_head, pc->address_list_tail, | ||
83 | address); | ||
84 | GNUNET_free (address); | ||
85 | } | ||
86 | |||
87 | printf ("\n"); | ||
88 | |||
89 | GNUNET_free (pc); | ||
90 | } | ||
91 | |||
92 | |||
93 | /** | ||
94 | * Function to call with a human-readable format of an address | ||
95 | * | ||
96 | * @param cls closure | ||
97 | * @param peer peer this update is about | ||
98 | * @param address NULL on error, otherwise 0-terminated printable UTF-8 string | ||
99 | */ | ||
100 | static void | ||
101 | process_resolved_address (void *cls, const struct GNUNET_PeerIdentity *peer, | ||
102 | const struct GNUNET_HELLO_Address *address) | ||
103 | { | ||
104 | struct PrintContext *pc = cls; | ||
105 | |||
106 | // struct AddressStringList *new_address; | ||
107 | |||
108 | if (address == NULL) | ||
109 | { | ||
110 | dump_pc (pc); | ||
111 | return; | ||
112 | } | ||
113 | |||
114 | /* This does exactly the same as gnunet-transport -i ! */ | ||
115 | /* | ||
116 | * new_address = GNUNET_malloc (sizeof (struct AddressStringList)); | ||
117 | * #if VERBOSE | ||
118 | * FPRINTF (stderr, "Received address %s\n", address); | ||
119 | * #endif | ||
120 | * | ||
121 | * new_address->address_string = GNUNET_strdup ("FIXME"); | ||
122 | * GNUNET_CONTAINER_DLL_insert (pc->address_list_head, pc->address_list_tail, | ||
123 | * new_address); | ||
124 | */ | ||
125 | } | ||
126 | |||
127 | 35 | ||
128 | /** | 36 | /** |
129 | * Callback for retrieving a list of connected peers. | 37 | * Callback for retrieving a list of connected peers. |
38 | * | ||
39 | * @param cls closure (unused) | ||
40 | * @param peer peer identity this notification is about | ||
41 | * @param atsi performance data for the connection | ||
42 | * @param atsi_count number of records in 'atsi' | ||
130 | */ | 43 | */ |
131 | static void | 44 | static void |
132 | connected_peer_callback (void *cls, const struct GNUNET_PeerIdentity *peer, | 45 | connected_peer_callback (void *cls, const struct GNUNET_PeerIdentity *peer, |
133 | const struct GNUNET_ATS_Information *atsi, | 46 | const struct GNUNET_ATS_Information *atsi, |
134 | unsigned int atsi_count) | 47 | unsigned int atsi_count) |
135 | { | 48 | { |
136 | struct PrintContext *pc; | 49 | struct GNUNET_CRYPTO_HashAsciiEncoded enc; |
137 | 50 | ||
138 | if (peer != NULL) /* Not yet finished */ | 51 | if (NULL == peer) |
139 | { | 52 | return; |
140 | #if VERBOSE | 53 | GNUNET_CRYPTO_hash_to_enc (&peer->hashPubKey, &enc); |
141 | FPRINTF (stderr, "Learned about peer %s\n", GNUNET_i2s (peer)); | 54 | printf (_("Peer `%s'\n"), (const char *) &enc); |
142 | peer_count++; | ||
143 | #endif | ||
144 | pc = GNUNET_malloc (sizeof (struct PrintContext)); | ||
145 | pc->peer = *peer; | ||
146 | GNUNET_TRANSPORT_peer_get_active_addresses (cfg, peer, GNUNET_YES, | ||
147 | GNUNET_TIME_UNIT_MINUTES, | ||
148 | &process_resolved_address, pc); | ||
149 | } | ||
150 | #if VERBOSE | ||
151 | else | ||
152 | { | ||
153 | FPRINTF (stderr, "Counted %u total connected peers.\n", peer_count); | ||
154 | } | ||
155 | #endif | ||
156 | } | 55 | } |
157 | 56 | ||
158 | 57 | ||
@@ -162,22 +61,18 @@ connected_peer_callback (void *cls, const struct GNUNET_PeerIdentity *peer, | |||
162 | * @param cls closure | 61 | * @param cls closure |
163 | * @param args remaining command-line arguments | 62 | * @param args remaining command-line arguments |
164 | * @param cfgfile name of the configuration file used (for saving, can be NULL!) | 63 | * @param cfgfile name of the configuration file used (for saving, can be NULL!) |
165 | * @param c configuration | 64 | * @param cfg configuration |
166 | */ | 65 | */ |
167 | static void | 66 | static void |
168 | run (void *cls, char *const *args, const char *cfgfile, | 67 | run (void *cls, char *const *args, const char *cfgfile, |
169 | const struct GNUNET_CONFIGURATION_Handle *c) | 68 | const struct GNUNET_CONFIGURATION_Handle *cfg) |
170 | { | 69 | { |
171 | |||
172 | cfg = c; | ||
173 | if (args[0] != NULL) | 70 | if (args[0] != NULL) |
174 | { | 71 | { |
175 | FPRINTF (stderr, _("Invalid command line argument `%s'\n"), args[0]); | 72 | FPRINTF (stderr, _("Invalid command line argument `%s'\n"), args[0]); |
176 | return; | 73 | return; |
177 | } | 74 | } |
178 | |||
179 | GNUNET_CORE_iterate_peers (cfg, &connected_peer_callback, NULL); | 75 | GNUNET_CORE_iterate_peers (cfg, &connected_peer_callback, NULL); |
180 | |||
181 | } | 76 | } |
182 | 77 | ||
183 | 78 | ||
@@ -192,16 +87,13 @@ int | |||
192 | main (int argc, char *const *argv) | 87 | main (int argc, char *const *argv) |
193 | { | 88 | { |
194 | static const struct GNUNET_GETOPT_CommandLineOption options[] = { | 89 | static const struct GNUNET_GETOPT_CommandLineOption options[] = { |
195 | {'n', "numeric", NULL, | ||
196 | gettext_noop ("don't resolve host names"), | ||
197 | 0, &GNUNET_GETOPT_set_one, &no_resolve}, | ||
198 | GNUNET_GETOPT_OPTION_END | 90 | GNUNET_GETOPT_OPTION_END |
199 | }; | 91 | }; |
200 | return (GNUNET_OK == | 92 | return (GNUNET_OK == |
201 | GNUNET_PROGRAM_run (argc, argv, "gnunet-list-connections", | 93 | GNUNET_PROGRAM_run (argc, argv, "gnunet-core", |
202 | gettext_noop | 94 | gettext_noop |
203 | ("Print information about connected peers."), | 95 | ("Print information about connected peers."), |
204 | options, &run, NULL)) ? 0 : 1; | 96 | options, &run, NULL)) ? 0 : 1; |
205 | } | 97 | } |
206 | 98 | ||
207 | /* end of gnunet-core-list-connections.c */ | 99 | /* end of gnunet-core.c */ |