[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r18826 - gnunet/src/fs
From: |
gnunet |
Subject: |
[GNUnet-SVN] r18826 - gnunet/src/fs |
Date: |
Mon, 26 Dec 2011 17:52:04 +0100 |
Author: grothoff
Date: 2011-12-26 17:52:04 +0100 (Mon, 26 Dec 2011)
New Revision: 18826
Modified:
gnunet/src/fs/gnunet-service-fs_cp.c
Log:
-fixing #2036
Modified: gnunet/src/fs/gnunet-service-fs_cp.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_cp.c 2011-12-26 12:05:15 UTC (rev
18825)
+++ gnunet/src/fs/gnunet-service-fs_cp.c 2011-12-26 16:52:04 UTC (rev
18826)
@@ -747,6 +747,32 @@
/**
+ * Free resources associated with the given peer request.
+ *
+ * @param peerreq request to free
+ * @param query associated key for the request
+ */
+static void
+free_pending_request (struct PeerRequest *peerreq,
+ const GNUNET_HashCode *query)
+{
+ struct GSF_ConnectedPeer *cp = peerreq->cp;
+
+ if (peerreq->kill_task != GNUNET_SCHEDULER_NO_TASK)
+ {
+ GNUNET_SCHEDULER_cancel (peerreq->kill_task);
+ peerreq->kill_task = GNUNET_SCHEDULER_NO_TASK;
+ }
+ GNUNET_STATISTICS_update (GSF_stats, gettext_noop ("# P2P searches active"),
+ -1, GNUNET_NO);
+ GNUNET_break (GNUNET_YES ==
+ GNUNET_CONTAINER_multihashmap_remove (cp->request_map,
+ query, peerreq));
+ GNUNET_free (peerreq);
+}
+
+
+/**
* Cancel all requests associated with the peer.
*
* @param cls unused
@@ -759,22 +785,11 @@
{
struct PeerRequest *peerreq = value;
struct GSF_PendingRequest *pr = peerreq->pr;
- struct GSF_ConnectedPeer *cp = peerreq->cp;
struct GSF_PendingRequestData *prd;
- if (peerreq->kill_task != GNUNET_SCHEDULER_NO_TASK)
- {
- GNUNET_SCHEDULER_cancel (peerreq->kill_task);
- peerreq->kill_task = GNUNET_SCHEDULER_NO_TASK;
- }
- GNUNET_STATISTICS_update (GSF_stats, gettext_noop ("# P2P searches active"),
- -1, GNUNET_NO);
prd = GSF_pending_request_get_data_ (pr);
- GNUNET_break (GNUNET_YES ==
- GNUNET_CONTAINER_multihashmap_remove (cp->request_map,
- &prd->query, peerreq));
GSF_pending_request_cancel_ (pr, GNUNET_NO);
- GNUNET_free (peerreq);
+ free_pending_request (peerreq, &prd->query);
return GNUNET_OK;
}
@@ -883,12 +898,7 @@
prd = GSF_pending_request_get_data_ (pr);
if (NULL == data)
{
- GNUNET_STATISTICS_update (GSF_stats, gettext_noop ("# P2P searches
active"),
- -1, GNUNET_NO);
- GNUNET_break (GNUNET_YES ==
- GNUNET_CONTAINER_multihashmap_remove (cp->request_map,
- &prd->query, peerreq));
- GNUNET_free (peerreq);
+ free_pending_request (peerreq, &prd->query);
return;
}
GNUNET_break (type != GNUNET_BLOCK_TYPE_ANY);
@@ -1292,21 +1302,9 @@
return NULL;
}
/* existing request has lower TTL, drop old one! */
- GNUNET_STATISTICS_update (GSF_stats,
- gettext_noop ("# P2P searches active"), -1,
- GNUNET_NO);
priority += prd->priority;
GSF_pending_request_cancel_ (pr, GNUNET_YES);
- GNUNET_assert (GNUNET_YES ==
- GNUNET_CONTAINER_multihashmap_remove (cp->request_map,
- &gm->query,
- peerreq));
- if (peerreq->kill_task != GNUNET_SCHEDULER_NO_TASK)
- {
- GNUNET_SCHEDULER_cancel (peerreq->kill_task);
- peerreq->kill_task = GNUNET_SCHEDULER_NO_TASK;
- }
- GNUNET_free (peerreq);
+ free_pending_request (peerreq, &gm->query);
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r18826 - gnunet/src/fs,
gnunet <=