struct GNUNET_NAT_Handle *h = cls;
/* Stop if we're already waiting for an action to complete */
+ h->pulse_timer = GNUNET_SCHEDULER_NO_TASK;
if (h->processing)
return;
-
- h->pulse_timer = GNUNET_SCHEDULER_NO_TASK;
h->old_status = get_traversal_status (h);
/* Only update the protocol that has been successful until now */
GNUNET_NAT_UPNP_pulse (h->upnp, h->is_enabled, GNUNET_YES);
#if 0
- GNUNET_NAT_NATPMP_pulse (h->natpmp, h->is_enabled, natpmp_pulse_cb, h);
+ GNUNET_NAT_NATPMP_pulse (h->natpmp, h->is_enabled, &natpmp_pulse_cb, h);
#endif
}
}
h->callback_cls = callback_cls;
h->upnp =
GNUNET_NAT_UPNP_init (h->sched, h->local_addr, addrlen, h->public_port,
- upnp_pulse_cb, h);
+ &upnp_pulse_cb, h);
#if 0
h->natpmp =
GNUNET_NAT_NATPMP_init (h->sched, h->local_addr, addrlen, h->public_port,
- natpmp_pulse_cb, h);
+ &natpmp_pulse_cb, h);
#endif
h->pulse_timer = GNUNET_SCHEDULER_add_delayed (sched,
GNUNET_TIME_UNIT_SECONDS,
GNUNET_NAT_NATPMP_close (h->natpmp);
#endif
- GNUNET_SCHEDULER_cancel (h->sched, h->pulse_timer);
+ if (GNUNET_SCHEDULER_NO_TASK != h->pulse_timer)
+ GNUNET_SCHEDULER_cancel (h->sched, h->pulse_timer);
GNUNET_free_non_null (h->local_addr);
GNUNET_free_non_null (h->ext_addr);
GNUNET_CONNECTION_destroy (cls->s, GNUNET_NO);
- (*cls->caller_cb) (cls->buffer, cls->buf_size, cls->caller_cls);
+ cls->caller_cb (cls->buffer, cls->buf_size, cls->caller_cls);
GNUNET_free (cls->content);
GNUNET_free (cls);
if (soap_body + sizeof (soap_body) <= p + 100)
{
GNUNET_assert (GNUNET_NO);
- (*caller_cb) (buffer, 0, caller_cls);
+ caller_cb (buffer, 0, caller_cls);
return;
}
*(p++) = '<';
{
GNUNET_log_from (GNUNET_ERROR_TYPE_WARNING, "UPnP",
"Invalid URL passed to UPNP_command(): %s\n", url);
+ caller_cb (buffer, 0, caller_cls);
return;
}
GNUNET_log_from (GNUNET_ERROR_TYPE_WARNING, _("%s failed at %s:%d\n"),
"UPnP", "inet_pton", __FILE__, __LINE__);
- (*caller_cb) (buffer, 0, caller_cls);
+ caller_cb (buffer, 0, caller_cls);
return;
}
__LINE__);
#endif
- (*caller_cb) (buffer, 0, caller_cls);
+ caller_cb (buffer, 0, caller_cls);
GNUNET_free (content_buf);
GNUNET_free (cls);
&addrlen);
if (received == GNUNET_SYSERR)
{
- PRINT_SOCKET_ERROR ("GNUNET_NETWORK_socket_recvfrom");
+ if (errno != EAGAIN)
+ PRINT_SOCKET_ERROR ("GNUNET_NETWORK_socket_recvfrom");
}
#if DEBUG_UPNP
else