X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fhello%2Fgnunet-hello.c;h=6fd5756ba96c6d82259431d53cab7cea8311457a;hb=5b32752cd7b02adcb8e6fec7798637638c6f63a0;hp=93eaeef2bb56b5dfa72b06ef36d810685d4ccc1e;hpb=7d6e6b045a300cf753e685bc18ec0b1e264d1a25;p=oweals%2Fgnunet.git diff --git a/src/hello/gnunet-hello.c b/src/hello/gnunet-hello.c index 93eaeef2b..6fd5756ba 100644 --- a/src/hello/gnunet-hello.c +++ b/src/hello/gnunet-hello.c @@ -1,6 +1,6 @@ /* This file is part of GNUnet - (C) 2012 Christian Grothoff (and other contributing authors) + Copyright (C) 2012 GNUnet e.V. GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -14,8 +14,8 @@ You should have received a copy of the GNU General Public License along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /** * @file hello/gnunet-hello.c @@ -27,7 +27,7 @@ #include "gnunet_hello_lib.h" /** - * Closure for 'add_to_buf'. + * Closure for #add_to_buf(). */ struct AddContext { @@ -56,10 +56,11 @@ static int address_count; * @param cls closure * @param address address to add * @param expiration old expiration - * @return GNUNET_OK keep iterating + * @return #GNUNET_OK keep iterating */ static int -add_to_buf (void *cls, const struct GNUNET_HELLO_Address *address, +add_to_buf (void *cls, + const struct GNUNET_HELLO_Address *address, struct GNUNET_TIME_Absolute expiration) { struct AddContext *ac = cls; @@ -86,7 +87,9 @@ add_to_buf (void *cls, const struct GNUNET_HELLO_Address *address, * @return number of bytes added, 0 to terminate */ static ssize_t -add_from_hello (void *cls, size_t max, void *buf) +add_from_hello (void *cls, + size_t max, + void *buf) { struct GNUNET_HELLO_Message **orig = cls; struct AddContext ac; @@ -111,7 +114,7 @@ main (int argc, char *argv[]) struct GNUNET_DISK_FileHandle *fh; struct GNUNET_HELLO_Message *orig; struct GNUNET_HELLO_Message *result; - struct GNUNET_CRYPTO_EddsaPublicKey pk; + struct GNUNET_PeerIdentity pid; uint64_t fsize; address_count = 0; @@ -163,19 +166,31 @@ main (int argc, char *argv[]) GNUNET_DISK_file_read (fh, buf, fsize)); GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_close (fh)); orig = (struct GNUNET_HELLO_Message *) buf; - if ( (fsize != GNUNET_HELLO_size (orig)) || - (GNUNET_OK != GNUNET_HELLO_get_key (orig, &pk)) ) + if ( (fsize < GNUNET_HELLO_size (orig)) || + (GNUNET_OK != GNUNET_HELLO_get_id (orig, + &pid)) ) { FPRINTF (stderr, _("Did not find well-formed HELLO in file `%s'\n"), argv[1]); return 1; } - result = GNUNET_HELLO_create (&pk, &add_from_hello, &orig, - GNUNET_HELLO_is_friend_only (orig)); + { + char *pids; + + pids = GNUNET_CRYPTO_eddsa_public_key_to_string (&pid.public_key); + fprintf (stdout, + "Processing HELLO for peer `%s'\n", + pids); + GNUNET_free (pids); + } + result = GNUNET_HELLO_create (&pid.public_key, + &add_from_hello, + &orig, + GNUNET_HELLO_is_friend_only (orig)); GNUNET_assert (NULL != result); fh = GNUNET_DISK_file_open (argv[1], - GNUNET_DISK_OPEN_WRITE, + GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_TRUNCATE, GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE); if (NULL == fh) { @@ -200,7 +215,10 @@ main (int argc, char *argv[]) } GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_close (fh)); } - FPRINTF (stderr, _("Modified %u addresses \n"), address_count); + FPRINTF (stderr, + _("Modified %u addresses, wrote %u bytes\n"), + address_count, + (unsigned int) fsize); return 0; }