*/
#include "platform.h"
-#include "gnunet_common.h"
-#include "gnunet_constants.h"
#include "gnunet_util_lib.h"
#include "gnunet_hello_lib.h"
#include "gnunet_peerinfo_service.h"
#include "gnunet_statistics_service.h"
#include "gnunet_protocols.h"
-#include "gnunet_signatures.h"
#include "gnunet_transport_plugin.h"
-
#include "transport.h"
/**
/**
* Our public key.
*/
-static struct GNUNET_CRYPTO_EccPublicKeyBinaryEncoded my_public_key;
-
-/**
- * Our identity.
- */
static struct GNUNET_PeerIdentity my_identity;
/**
{
struct AddressWrapper *w;
int c = 0;
+
timeout_endbadly = GNUNET_SCHEDULER_NO_TASK;
if (GNUNET_SCHEDULER_NO_TASK != timeout_wait)
{
const char *plugin)
{
struct AddressWrapper *w;
+ struct AddressWrapper *wtmp;
void *s2a;
size_t s2a_len;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Adding address of length %u\n", addrlen);
- w = GNUNET_malloc (sizeof (struct AddressWrapper));
+ for (wtmp = head; NULL != wtmp; wtmp = wtmp->next)
+ {
+ if ((addrlen == wtmp->addrlen) && (0 == memcmp (addr, wtmp->addr, addrlen)))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Duplicate address notification .... \n");
+ return;
+ }
+ }
+
+ w = GNUNET_new (struct AddressWrapper);
w->addr = GNUNET_malloc (addrlen);
w->addrlen = addrlen;
memcpy (w->addr, addr, addrlen);
}
-static void
+static void
env_session_end (void *cls,
const struct GNUNET_PeerIdentity *peer,
struct Session * session)
env.my_identity = &my_identity;
env.max_connections = max_connect_per_transport;
env.stats = stats;
-
env.receive = &env_receive;
env.notify_address = &env_notify_address;
env.get_address_type = &env_get_address_type;
env.session_end = &env_session_end;
}
+
static int
handle_helper_message (void *cls, void *client,
const struct GNUNET_MessageHeader *hdr)
end_badly_now ();
return;
}
- GNUNET_CRYPTO_ecc_key_get_public (my_private_key, &my_public_key);
- GNUNET_CRYPTO_hash (&my_public_key, sizeof (my_public_key),
- &my_identity.hashPubKey);
-
+ GNUNET_CRYPTO_ecc_key_get_public_for_signature (my_private_key, &my_identity.public_key);
- hello = GNUNET_HELLO_create(&my_public_key, NULL, NULL, GNUNET_NO);
+ hello = GNUNET_HELLO_create (&my_identity.public_key, NULL, NULL, GNUNET_NO);
/* load plugins... */
setup_plugin_environment ();