diff options
author | Christian Grothoff <christian@grothoff.org> | 2013-07-16 08:46:14 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2013-07-16 08:46:14 +0000 |
commit | baab42aeb0b5a6d2a782c9c8e9554908c66fa80c (patch) | |
tree | c079d90d6ebc8fef4d0ac7c11c4ae0da346cb04a | |
parent | 31449563d0ca0dd0f08765325bd3930f7ed882e4 (diff) | |
download | gnunet-baab42aeb0b5a6d2a782c9c8e9554908c66fa80c.tar.gz gnunet-baab42aeb0b5a6d2a782c9c8e9554908c66fa80c.zip |
-proper support for initial listing vs. monitor mode
-rw-r--r-- | src/identity/gnunet-service-identity.c | 10 | ||||
-rw-r--r-- | src/identity/identity_api.c | 8 |
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 | { |