/*
This file is part of GNUnet.
- (C) 2010,2011 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2010,2011 Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
/**
* Identifier of 'refresh_hello' task.
*/
-static GNUNET_SCHEDULER_TaskIdentifier hello_task;
+static struct GNUNET_SCHEDULER_Task * hello_task;
/**
* @param cls the 'struct GeneratorContext'
* @param max maximum number of bytes left
* @param buf where to write the address
+ * @return bytes written or GNUNET_SYSERR to signal the
+ * end of the iteration.
*/
-static size_t
+static ssize_t
address_generator (void *cls, size_t max, void *buf)
{
struct GeneratorContext *gc = cls;
- size_t ret;
+ ssize_t ret;
if (NULL == gc->addr_pos)
- return 0;
- ret =
- GNUNET_HELLO_add_address (gc->addr_pos->address, gc->expiration, buf,
+ return GNUNET_SYSERR; /* Done */
+ ret = GNUNET_HELLO_add_address (gc->addr_pos->address, gc->expiration, buf,
max);
gc->addr_pos = gc->addr_pos->next;
return ret;
struct GeneratorContext gc;
int friend_only;
- hello_task = GNUNET_SCHEDULER_NO_TASK;
+ hello_task = NULL;
gc.addr_pos = oal_head;
gc.expiration = GNUNET_TIME_relative_to_absolute (hello_expiration);
static void
refresh_hello ()
{
- if (hello_task != GNUNET_SCHEDULER_NO_TASK)
+ if (hello_task != NULL)
GNUNET_SCHEDULER_cancel (hello_task);
hello_task = GNUNET_SCHEDULER_add_now (&refresh_hello_task, NULL);
}
{
hello_cb = NULL;
hello_cb_cls = NULL;
- if (GNUNET_SCHEDULER_NO_TASK != hello_task)
+ if (NULL != hello_task)
{
GNUNET_SCHEDULER_cancel (hello_task);
- hello_task = GNUNET_SCHEDULER_NO_TASK;
+ hello_task = NULL;
}
if (NULL != our_hello)
{
GNUNET_break (0);
return;
}
- al = GNUNET_malloc (sizeof (struct OwnAddressList));
+ al = GNUNET_new (struct OwnAddressList);
GNUNET_CONTAINER_DLL_insert (oal_head, oal_tail, al);
al->address = GNUNET_HELLO_address_copy (address);
refresh_hello ();