aboutsummaryrefslogtreecommitdiff
path: root/src/identity
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2013-07-16 08:46:14 +0000
committerChristian Grothoff <christian@grothoff.org>2013-07-16 08:46:14 +0000
commitbaab42aeb0b5a6d2a782c9c8e9554908c66fa80c (patch)
treec079d90d6ebc8fef4d0ac7c11c4ae0da346cb04a /src/identity
parent31449563d0ca0dd0f08765325bd3930f7ed882e4 (diff)
downloadgnunet-baab42aeb0b5a6d2a782c9c8e9554908c66fa80c.tar.gz
gnunet-baab42aeb0b5a6d2a782c9c8e9554908c66fa80c.zip
-proper support for initial listing vs. monitor mode
Diffstat (limited to 'src/identity')
-rw-r--r--src/identity/gnunet-service-identity.c10
-rw-r--r--src/identity/identity_api.c8
2 files changed, 14 insertions, 4 deletions
diff --git a/src/identity/gnunet-service-identity.c b/src/identity/gnunet-service-identity.c
index 6c94f1c88..45c088e44 100644
--- a/src/identity/gnunet-service-identity.c
+++ b/src/identity/gnunet-service-identity.c
@@ -25,10 +25,6 @@
25 * 25 *
26 * The purpose of this service is to manage private keys that 26 * The purpose of this service is to manage private keys that
27 * represent the various egos/pseudonyms/identities of a GNUnet user. 27 * represent the various egos/pseudonyms/identities of a GNUnet user.
28 *
29 * FIXME:
30 * - hint for 'end of initial list' is not implemented
31 * (might ALSO be missing in client library!)
32 */ 28 */
33#include "platform.h" 29#include "platform.h"
34#include "gnunet_util_lib.h" 30#include "gnunet_util_lib.h"
@@ -274,6 +270,7 @@ handle_start_message (void *cls, struct GNUNET_SERVER_Client *client,
274 const struct GNUNET_MessageHeader *message) 270 const struct GNUNET_MessageHeader *message)
275{ 271{
276 struct GNUNET_IDENTITY_UpdateMessage *um; 272 struct GNUNET_IDENTITY_UpdateMessage *um;
273 struct GNUNET_IDENTITY_UpdateMessage ume;
277 struct Ego *ego; 274 struct Ego *ego;
278 275
279 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 276 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -285,6 +282,11 @@ handle_start_message (void *cls, struct GNUNET_SERVER_Client *client,
285 GNUNET_SERVER_notification_context_unicast (nc, client, &um->header, GNUNET_YES); 282 GNUNET_SERVER_notification_context_unicast (nc, client, &um->header, GNUNET_YES);
286 GNUNET_free (um); 283 GNUNET_free (um);
287 } 284 }
285 ume.header.type = htons (GNUNET_MESSAGE_TYPE_IDENTITY_UPDATE);
286 ume.header.size = htons (sizeof (struct GNUNET_IDENTITY_UpdateMessage));
287 ume.pk_len = htons (0);
288 ume.name_len = htons (0);
289 GNUNET_SERVER_notification_context_unicast (nc, client, &ume.header, GNUNET_YES);
288 GNUNET_SERVER_receive_done (client, GNUNET_OK); 290 GNUNET_SERVER_receive_done (client, GNUNET_OK);
289} 291}
290 292
diff --git a/src/identity/identity_api.c b/src/identity/identity_api.c
index f7f1530fc..169a7a2ac 100644
--- a/src/identity/identity_api.c
+++ b/src/identity/identity_api.c
@@ -299,6 +299,14 @@ message_handler (void *cls,
299 reschedule_connect (h); 299 reschedule_connect (h);
300 return; 300 return;
301 } 301 }
302 if ( (0 == pk_len) &&
303 (0 == name_len) )
304 {
305 /* end of initial list of data */
306 if (NULL != h->cb)
307 h->cb (h->cb_cls, NULL, NULL, NULL);
308 return;
309 }
302 priv = GNUNET_CRYPTO_ecc_decode_key (str, pk_len, GNUNET_YES); 310 priv = GNUNET_CRYPTO_ecc_decode_key (str, pk_len, GNUNET_YES);
303 if (NULL == priv) 311 if (NULL == priv)
304 { 312 {