sock = GNUNET_NETWORK_socket_create (PF_INET6, SOCK_STREAM, 0);
break;
case AF_UNIX:
+ if (strcmp(GNUNET_a2s (sa, addr_len), "@") == 0) /* Do not bind to blank UNIX path! */
+ return;
sock = GNUNET_NETWORK_socket_create (PF_UNIX, SOCK_STREAM, 0);
break;
default:
_("Failed to connect to the DHT service!\n"));
return GNUNET_NO;
}
+#if DEBUG_DHT
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Starting to process replies from DHT\n");
+#endif
GNUNET_CLIENT_receive (handle->client,
&service_message_handler,
handle,
*
* @param handle handle to the DHT service
* @param frequency delay between sending malicious messages
+ * @param cont continuation to call when done (transmitting request to service)
+ * @param cont_cls closure for cont
*/
void
GNUNET_DHT_set_malicious_getter (struct GNUNET_DHT_Handle *handle,
- struct GNUNET_TIME_Relative frequency)
+ struct GNUNET_TIME_Relative frequency, GNUNET_SCHEDULER_Task cont,
+ void *cont_cls)
{
if (frequency.rel_value > UINT16_MAX)
{
}
send_control_message (handle,
GNUNET_MESSAGE_TYPE_DHT_MALICIOUS_GET, frequency.rel_value,
- NULL, NULL);
+ cont, cont_cls);
}
/**
*
* @param handle handle to the DHT service
* @param frequency delay between sending malicious messages
+ * @param cont continuation to call when done (transmitting request to service)
+ * @param cont_cls closure for cont
*/
void
GNUNET_DHT_set_malicious_putter (struct GNUNET_DHT_Handle *handle,
- struct GNUNET_TIME_Relative frequency)
+ struct GNUNET_TIME_Relative frequency, GNUNET_SCHEDULER_Task cont,
+ void *cont_cls)
{
if (frequency.rel_value > UINT16_MAX)
{
send_control_message (handle,
GNUNET_MESSAGE_TYPE_DHT_MALICIOUS_PUT, frequency.rel_value,
- NULL, NULL);
+ cont, cont_cls);
}
* all requests received.
*
* @param handle handle to the DHT service
+ * @param cont continuation to call when done (transmitting request to service)
+ * @param cont_cls closure for cont
+ *
*/
void
-GNUNET_DHT_set_malicious_dropper (struct GNUNET_DHT_Handle *handle)
+GNUNET_DHT_set_malicious_dropper (struct GNUNET_DHT_Handle *handle, GNUNET_SCHEDULER_Task cont,
+ void *cont_cls)
{
send_control_message (handle,
- GNUNET_MESSAGE_TYPE_DHT_MALICIOUS_DROP, 0,
- NULL, NULL);
+ GNUNET_MESSAGE_TYPE_DHT_MALICIOUS_DROP, 0,
+ cont, cont_cls);
}
#endif
*/
static void
malicious_disconnect_task(void *cls,
- const struct GNUNET_SCHEDULER_TaskContext * tc)
+ const struct GNUNET_SCHEDULER_TaskContext * tc)
{
struct MaliciousContext *ctx = cls;
outstanding_malicious--;
{
fprintf (stderr, "Finished setting all malicious peers up!\n");
}
-
}
/**
switch (ctx->malicious_type)
{
case GNUNET_MESSAGE_TYPE_DHT_MALICIOUS_GET:
- GNUNET_DHT_set_malicious_getter (ctx->dht_handle, malicious_get_frequency);
- GNUNET_SCHEDULER_add_now (&malicious_done_task, ctx);
+ GNUNET_DHT_set_malicious_getter (ctx->dht_handle, malicious_get_frequency, &malicious_done_task, ctx);
break;
case GNUNET_MESSAGE_TYPE_DHT_MALICIOUS_PUT:
- GNUNET_DHT_set_malicious_putter (ctx->dht_handle, malicious_put_frequency);
- GNUNET_SCHEDULER_add_now (&malicious_done_task, ctx);
+ GNUNET_DHT_set_malicious_putter (ctx->dht_handle, malicious_put_frequency, &malicious_done_task, ctx);
break;
case GNUNET_MESSAGE_TYPE_DHT_MALICIOUS_DROP:
- GNUNET_DHT_set_malicious_dropper (ctx->dht_handle);
- GNUNET_SCHEDULER_add_now (&malicious_done_task, ctx);
+ GNUNET_DHT_set_malicious_dropper (ctx->dht_handle, &malicious_done_task, ctx);
break;
default:
break;
{
const struct GNUNET_DHT_ControlMessage *dht_control_msg =
(const struct GNUNET_DHT_ControlMessage *) message;
+
#if DEBUG_DHT
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"`%s:%s': Received `%s' request from client, command %d\n",
* all requests received.
*
* @param handle handle to the DHT service
+ * @param cont continuation to call when done (transmitting request to service)
+ * @param cont_cls closure for cont
+ *
*/
void
-GNUNET_DHT_set_malicious_dropper (struct GNUNET_DHT_Handle *handle);
+GNUNET_DHT_set_malicious_dropper (struct GNUNET_DHT_Handle *handle, GNUNET_SCHEDULER_Task cont,
+ void *cont_cls);
/**
* requests every 'frequency' milliseconds.
*
* @param handle handle to the DHT service
- * @param frequency delay (in milliseconds) between sending malicious messages
+ * @param frequency delay between sending malicious messages
+ * @param cont continuation to call when done (transmitting request to service)
+ * @param cont_cls closure for cont
*/
void
GNUNET_DHT_set_malicious_putter (struct GNUNET_DHT_Handle *handle,
- struct GNUNET_TIME_Relative frequency);
+ struct GNUNET_TIME_Relative frequency, GNUNET_SCHEDULER_Task cont,
+ void *cont_cls);
/**
*
* @param handle handle to the DHT service
* @param frequency delay between sending malicious messages
+ * @param cont continuation to call when done (transmitting request to service)
+ * @param cont_cls closure for cont
*/
-void
-GNUNET_DHT_set_malicious_getter (struct GNUNET_DHT_Handle *handle,
- struct GNUNET_TIME_Relative frequency);
+void
+GNUNET_DHT_set_malicious_getter (struct GNUNET_DHT_Handle *handle,
+ struct GNUNET_TIME_Relative frequency, GNUNET_SCHEDULER_Task cont,
+ void *cont_cls);
#endif