gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r18078 - gnunet/src/ats


From: gnunet
Subject: [GNUnet-SVN] r18078 - gnunet/src/ats
Date: Wed, 9 Nov 2011 17:37:44 +0100

Author: wachs
Date: 2011-11-09 17:37:44 +0100 (Wed, 09 Nov 2011)
New Revision: 18078

Modified:
   gnunet/src/ats/ats_api_scheduling.c
   gnunet/src/ats/gnunet-service-ats.c
   gnunet/src/ats/gnunet-service-ats_scheduling.c
   gnunet/src/ats/gnunet-service-ats_scheduling.h
Log:
cancel address suggests


Modified: gnunet/src/ats/ats_api_scheduling.c
===================================================================
--- gnunet/src/ats/ats_api_scheduling.c 2011-11-09 15:51:56 UTC (rev 18077)
+++ gnunet/src/ats/ats_api_scheduling.c 2011-11-09 16:37:44 UTC (rev 18078)
@@ -499,8 +499,9 @@
     s = find_session (sh, session_id, &m->peer);
     if (s == NULL)
     {
-      GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "ATS tries to use outdated 
session `%s'\n", GNUNET_i2s(&m->peer));
-      GNUNET_break (0);
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "ATS tries to use outdated session 
`%s'\n", GNUNET_i2s(&m->peer));
+      //GNUNET_break (0);
+      return;
     }
   }
   address.peer = m->peer;
@@ -634,6 +635,32 @@
 
 
 /**
+ * We would like to stop receiving address updates for this peer
+ *
+ * @param sh handle
+ * @param peer identity of the peer
+ */
+void
+GNUNET_ATS_suggest_address_cancel (struct GNUNET_ATS_SchedulingHandle *sh,
+                                   const struct GNUNET_PeerIdentity *peer)
+{
+  struct PendingMessage *p;
+  struct RequestAddressMessage *m;
+
+  p = GNUNET_malloc (sizeof (struct PendingMessage) +
+                     sizeof (struct RequestAddressMessage));
+  p->size = sizeof (struct RequestAddressMessage);
+  p->is_init = GNUNET_NO;
+  m = (struct RequestAddressMessage *) &p[1];
+  m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS_CANCEL);
+  m->header.size = htons (sizeof (struct RequestAddressMessage));
+  m->reserved = htonl (0);
+  m->peer = *peer;
+  GNUNET_CONTAINER_DLL_insert_tail (sh->pending_head, sh->pending_tail, p);
+  do_transmit (sh);
+}
+
+/**
  * We have updated performance statistics for a given address.  Note
  * that this function can be called for addresses that are currently
  * in use as well as addresses that are valid but not actively in use.

Modified: gnunet/src/ats/gnunet-service-ats.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats.c 2011-11-09 15:51:56 UTC (rev 18077)
+++ gnunet/src/ats/gnunet-service-ats.c 2011-11-09 16:37:44 UTC (rev 18078)
@@ -135,6 +135,9 @@
     {&GAS_handle_request_address, NULL,
      GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS,
      sizeof (struct RequestAddressMessage)},
+    {&GAS_handle_request_address_cancel, NULL,
+     GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS_CANCEL,
+     sizeof (struct RequestAddressMessage)},
     {&GAS_handle_address_update, NULL,
      GNUNET_MESSAGE_TYPE_ATS_ADDRESS_UPDATE, 0},
     {&GAS_handle_address_in_use, NULL,

Modified: gnunet/src/ats/gnunet-service-ats_scheduling.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_scheduling.c      2011-11-09 15:51:56 UTC 
(rev 18077)
+++ gnunet/src/ats/gnunet-service-ats_scheduling.c      2011-11-09 16:37:44 UTC 
(rev 18078)
@@ -171,6 +171,30 @@
 
 
 /**
+ * Handle 'request address' messages from clients.
+ *
+ * @param cls unused, NULL
+ * @param client client that sent the request
+ * @param message the request message
+ */
+void
+GAS_handle_request_address_cancel (void *cls, struct GNUNET_SERVER_Client 
*client,
+                            const struct GNUNET_MessageHeader *message)
+{
+  const struct RequestAddressMessage *msg =
+      (const struct RequestAddressMessage *) message;
+
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received `%s' message\n",
+              "REQUEST_ADDRESS_CANCEL");
+  GNUNET_break (0 == ntohl (msg->reserved));
+
+  /* TODO */
+
+  GNUNET_SERVER_receive_done (client, GNUNET_OK);
+}
+
+
+/**
  * Handle 'address update' messages from clients.
  *
  * @param cls unused, NULL

Modified: gnunet/src/ats/gnunet-service-ats_scheduling.h
===================================================================
--- gnunet/src/ats/gnunet-service-ats_scheduling.h      2011-11-09 15:51:56 UTC 
(rev 18077)
+++ gnunet/src/ats/gnunet-service-ats_scheduling.h      2011-11-09 16:37:44 UTC 
(rev 18078)
@@ -90,6 +90,16 @@
                             const struct GNUNET_MessageHeader *message);
 
 
+/**
+ * Cancel 'request address' messages from clients.
+ *
+ * @param cls unused, NULL
+ * @param client client that sent the request
+ * @param message the request message
+ */
+void
+GAS_handle_request_address_cancel (void *cls, struct GNUNET_SERVER_Client 
*client,
+    const struct GNUNET_MessageHeader *message);
 
 /**
  * Handle 'address update' messages from clients.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]