}
else
{
- GNUNET_SCHEDULER_cancel (h->sh->sched, h->sh->write_task);
- h->sh->write_task = GNUNET_SCHEDULER_NO_TASK;
+ if (h->sh->write_task != GNUNET_SCHEDULER_NO_TASK)
+ {
+ GNUNET_SCHEDULER_cancel (h->sh->sched, h->sh->write_task);
+ h->sh->write_task = GNUNET_SCHEDULER_NO_TASK;
+ }
}
h->notify_ready = NULL;
}
#include "gnunet_time_lib.h"
#ifdef LINUX
#include "execinfo.h"
-#define EXECINFO GNUNET_NO
+#define EXECINFO GNUNET_YES
+#define MAX_TRACE_DEPTH 50
#endif
#define DEBUG_TASKS GNUNET_NO
{
struct Task *t;
#if EXECINFO
- void *backtrace_array[50];
+ void *backtrace_array[MAX_TRACE_DEPTH];
#endif
t = GNUNET_malloc (sizeof (struct Task));
t->callback = task;
t->callback_cls = task_cls;
#if EXECINFO
- t->num_backtrace_strings = backtrace(backtrace_array, 50);
+ t->num_backtrace_strings = backtrace(backtrace_array, MAX_TRACE_DEPTH);
t->backtrace_strings = backtrace_symbols(backtrace_array, t->num_backtrace_strings);
#endif
if (rs != NULL)
GNUNET_free (sb);
return;
}
+ if (client->server == NULL)
+ {
+ GNUNET_SERVER_client_disconnect (client);
+ return;
+ }
client->restart_task = GNUNET_SCHEDULER_add_now (client->server->sched,
&restart_processing,
client);