/*
This file is part of GNUnet.
- (C) 2009-2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2009-2013 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
/**
* ID of task used for re-trying SET_KEY and PING message.
*/
- GNUNET_SCHEDULER_TaskIdentifier retry_set_key_task;
+ struct GNUNET_SCHEDULER_Task * retry_set_key_task;
/**
* ID of task used for sending keep-alive pings.
*/
- GNUNET_SCHEDULER_TaskIdentifier keep_alive_task;
+ struct GNUNET_SCHEDULER_Task * keep_alive_task;
/**
* Bit map indicating which of the 32 sequence numbers before the last
* Task scheduled for periodic re-generation (and thus rekeying) of our
* ephemeral key.
*/
-static GNUNET_SCHEDULER_TaskIdentifier rekey_task;
+static struct GNUNET_SCHEDULER_Task * rekey_task;
/**
* Notification context for all monitors.
{
struct GSC_KeyExchangeInfo *kx = cls;
- kx->retry_set_key_task = GNUNET_SCHEDULER_NO_TASK;
+ kx->retry_set_key_task = NULL;
kx->set_key_retry_frequency = GNUNET_TIME_STD_BACKOFF (kx->set_key_retry_frequency);
GNUNET_assert (GNUNET_CORE_KX_STATE_DOWN != kx->status);
send_key (kx);
GSC_SESSIONS_end (&kx->peer);
GNUNET_STATISTICS_update (GSC_stats, gettext_noop ("# key exchanges stopped"),
1, GNUNET_NO);
- if (kx->retry_set_key_task != GNUNET_SCHEDULER_NO_TASK)
+ if (kx->retry_set_key_task != NULL)
{
GNUNET_SCHEDULER_cancel (kx->retry_set_key_task);
- kx->retry_set_key_task = GNUNET_SCHEDULER_NO_TASK;
+ kx->retry_set_key_task = NULL;
}
- if (kx->keep_alive_task != GNUNET_SCHEDULER_NO_TASK)
+ if (kx->keep_alive_task != NULL)
{
GNUNET_SCHEDULER_cancel (kx->keep_alive_task);
- kx->keep_alive_task = GNUNET_SCHEDULER_NO_TASK;
+ kx->keep_alive_task = NULL;
}
kx->status = GNUNET_CORE_KX_PEER_DISCONNECT;
monitor_notify_all (kx);
static void
send_ping (struct GSC_KeyExchangeInfo *kx)
{
- GSC_NEIGHBOURS_transmit (&kx->peer, &kx->ping.header,
+ GSC_NEIGHBOURS_transmit (&kx->peer,
+ &kx->ping.header,
MIN_PING_FREQUENCY);
}
switch (kx->status)
{
case GNUNET_CORE_KX_STATE_DOWN:
- GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == kx->keep_alive_task);
+ GNUNET_assert (NULL == kx->keep_alive_task);
kx->status = GNUNET_CORE_KX_STATE_KEY_RECEIVED;
monitor_notify_all (kx);
if (GNUNET_CORE_KX_STATE_KEY_SENT == sender_status)
send_ping (kx);
break;
case GNUNET_CORE_KX_STATE_KEY_SENT:
- GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == kx->keep_alive_task);
+ GNUNET_assert (NULL == kx->keep_alive_task);
kx->status = GNUNET_CORE_KX_STATE_KEY_RECEIVED;
monitor_notify_all (kx);
if (GNUNET_CORE_KX_STATE_KEY_SENT == sender_status)
send_ping (kx);
break;
case GNUNET_CORE_KX_STATE_KEY_RECEIVED:
- GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == kx->keep_alive_task);
+ GNUNET_assert (NULL == kx->keep_alive_task);
if (GNUNET_CORE_KX_STATE_KEY_SENT == sender_status)
send_key (kx);
send_ping (kx);
(void *) &tp));
GNUNET_STATISTICS_update (GSC_stats, gettext_noop ("# PONG messages created"),
1, GNUNET_NO);
- GSC_NEIGHBOURS_transmit (&kx->peer, &tp.header,
+ GSC_NEIGHBOURS_transmit (&kx->peer,
+ &tp.header,
GNUNET_TIME_UNIT_FOREVER_REL /* FIXME: timeout */ );
}
struct GNUNET_TIME_Relative retry;
struct GNUNET_TIME_Relative left;
- kx->keep_alive_task = GNUNET_SCHEDULER_NO_TASK;
+ kx->keep_alive_task = NULL;
left = GNUNET_TIME_absolute_get_remaining (kx->timeout);
if (0 == left.rel_value_us)
{
gettext_noop ("# keepalive messages sent"), 1,
GNUNET_NO);
setup_fresh_ping (kx);
- GSC_NEIGHBOURS_transmit (&kx->peer, &kx->ping.header,
+ GSC_NEIGHBOURS_transmit (&kx->peer,
+ &kx->ping.header,
kx->set_key_retry_frequency);
retry =
GNUNET_TIME_relative_max (GNUNET_TIME_relative_divide (left, 2),
are bigger than the threshold (5s) */
monitor_notify_all (kx);
}
- if (kx->keep_alive_task != GNUNET_SCHEDULER_NO_TASK)
+ if (kx->keep_alive_task != NULL)
GNUNET_SCHEDULER_cancel (kx->keep_alive_task);
kx->keep_alive_task =
GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_divide
"Received PONG from `%s'\n",
GNUNET_i2s (&kx->peer));
/* no need to resend key any longer */
- if (GNUNET_SCHEDULER_NO_TASK != kx->retry_set_key_task)
+ if (NULL != kx->retry_set_key_task)
{
GNUNET_SCHEDULER_cancel (kx->retry_set_key_task);
- kx->retry_set_key_task = GNUNET_SCHEDULER_NO_TASK;
+ kx->retry_set_key_task = NULL;
}
switch (kx->status)
{
kx->status = GNUNET_CORE_KX_STATE_UP;
monitor_notify_all (kx);
GSC_SESSIONS_create (&kx->peer, kx);
- GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == kx->keep_alive_task);
+ GNUNET_assert (NULL == kx->keep_alive_task);
update_timeout (kx);
break;
case GNUNET_CORE_KX_STATE_UP:
send_key (struct GSC_KeyExchangeInfo *kx)
{
GNUNET_assert (GNUNET_CORE_KX_STATE_DOWN != kx->status);
- if (GNUNET_SCHEDULER_NO_TASK != kx->retry_set_key_task)
+ if (NULL != kx->retry_set_key_task)
{
GNUNET_SCHEDULER_cancel (kx->retry_set_key_task);
- kx->retry_set_key_task = GNUNET_SCHEDULER_NO_TASK;
+ kx->retry_set_key_task = NULL;
}
/* always update sender status in SET KEY message */
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
GNUNET_i2s (&kx->peer),
kx->status);
current_ekm.sender_status = htonl ((int32_t) (kx->status));
- GSC_NEIGHBOURS_transmit (&kx->peer, ¤t_ekm.header,
+ GSC_NEIGHBOURS_transmit (&kx->peer,
+ ¤t_ekm.header,
kx->set_key_retry_frequency);
kx->retry_set_key_task =
GNUNET_SCHEDULER_add_delayed (kx->set_key_retry_frequency,
*/
void
GSC_KX_encrypt_and_transmit (struct GSC_KeyExchangeInfo *kx,
- const void *payload, size_t payload_size)
+ const void *payload,
+ size_t payload_size)
{
size_t used = payload_size + sizeof (struct EncryptedMessage);
char pbuf[used]; /* plaintext */
ph->iv_seed);
GNUNET_CRYPTO_hmac (&auth_key, &em->sequence_number,
used - ENCRYPTED_HEADER_SIZE, &em->hmac);
- GSC_NEIGHBOURS_transmit (&kx->peer, &em->header,
+ GSC_NEIGHBOURS_transmit (&kx->peer,
+ &em->header,
GNUNET_TIME_UNIT_FOREVER_REL);
}
gettext_noop ("# sessions terminated by key expiration"),
1, GNUNET_NO);
GSC_SESSIONS_end (&kx->peer);
- if (GNUNET_SCHEDULER_NO_TASK != kx->keep_alive_task)
+ if (NULL != kx->keep_alive_task)
{
GNUNET_SCHEDULER_cancel (kx->keep_alive_task);
- kx->keep_alive_task = GNUNET_SCHEDULER_NO_TASK;
+ kx->keep_alive_task = NULL;
}
kx->status = GNUNET_CORE_KX_STATE_KEY_SENT;
monitor_notify_all (kx);
void
GSC_KX_done ()
{
- if (GNUNET_SCHEDULER_NO_TASK != rekey_task)
+ if (NULL != rekey_task)
{
GNUNET_SCHEDULER_cancel (rekey_task);
- rekey_task = GNUNET_SCHEDULER_NO_TASK;
+ rekey_task = NULL;
}
if (NULL != my_ephemeral_key)
{