GNUNET_OS_process_wait(mycls.helper_pid);
if (mycls.dns_connection != NULL)
{
- GNUNET_CLIENT_disconnect (mycls.dns_connection);
+ GNUNET_CLIENT_disconnect (mycls.dns_connection, GNUNET_NO);
mycls.dns_connection = NULL;
}
}
size_t pkt_len = sizeof(struct GNUNET_MessageHeader) + sizeof(struct pkt_tun) + net_len;
struct ip_udp_dns* pkt = alloca(pkt_len);
+ memset(pkt, 0, pkt_len);
pkt->shdr.size = htons(pkt_len);
pkt->shdr.type = htons(GNUNET_MESSAGE_TYPE_VPN_HELPER);
GNUNET_CONTAINER_DLL_insert_after(mycls.head, mycls.tail, mycls.tail, query);
- /* struct GNUNET_CLIENT_TransmitHandle* th = */ GNUNET_CLIENT_notify_transmit_ready(mycls.dns_connection, len, GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_YES, &send_query, NULL);
+ if (mycls.dns_connection != NULL)
+ /* struct GNUNET_CLIENT_TransmitHandle* th = */ GNUNET_CLIENT_notify_transmit_ready(mycls.dns_connection, len, GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_YES, &send_query, NULL);
}
}
static void
reconnect_to_service_dns (void *cls,
const struct GNUNET_SCHEDULER_TaskContext *tc) {
- if (0 != (tskctx->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
+ if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
return;
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Connecting\n");
GNUNET_assert (mycls.dns_connection == NULL);
mycls.dns_connection = GNUNET_CLIENT_connect (mycls.sched, "dns", mycls.cfg);
GNUNET_CLIENT_receive(mycls.dns_connection, &dns_answer_handler, NULL, GNUNET_TIME_UNIT_FOREVER_REL);
+ if (mycls.head != NULL)
+ /* struct GNUNET_CLIENT_TransmitHandle* th = */ GNUNET_CLIENT_notify_transmit_ready(mycls.dns_connection, ntohs(mycls.head->pkt.hdr.size), GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_YES, &send_query, NULL);
}
static void