X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ffs%2Fgnunet-service-fs_push.c;h=71a8e81e4f0293ae5d1433121e4e847a5e2e3e8a;hb=3140154d46212e08e0d73ed891a66213a6813075;hp=f099f7fdce50ff2913c853e77a2f152a727de6b2;hpb=0b92336e16fd941ec085c66579486244c6bd83f4;p=oweals%2Fgnunet.git diff --git a/src/fs/gnunet-service-fs_push.c b/src/fs/gnunet-service-fs_push.c index f099f7fdc..71a8e81e4 100644 --- a/src/fs/gnunet-service-fs_push.c +++ b/src/fs/gnunet-service-fs_push.c @@ -1,6 +1,6 @@ /* This file is part of GNUnet. - (C) 2011 Christian Grothoff (and other contributing authors) + Copyright (C) 2011 GNUnet e.V. GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -14,8 +14,8 @@ You should have received a copy of the GNU General Public License along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /** @@ -163,7 +163,7 @@ static struct GNUNET_DATASTORE_QueueEntry *mig_qe; /** * ID of task that collects blocks for migration. */ -static GNUNET_SCHEDULER_TaskIdentifier mig_task; +static struct GNUNET_SCHEDULER_Task * mig_task; /** * What is the maximum frequency at which we are allowed to @@ -296,7 +296,7 @@ transmit_content (struct MigrationReadyPeer *peer, } GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Asking for transmission of %u bytes to %s for migration\n", - msize, + (unsigned int) msize, GNUNET_i2s (GSF_connected_peer_get_identity2_(peer->peer))); peer->th = GSF_peer_transmit_ (peer->peer, GNUNET_NO, 0 /* priority */ , @@ -432,11 +432,9 @@ find_content (struct MigrationReadyPeer *mrp) * migration * * @param cls unused - * @param tc scheduler context (also unused) */ static void -gather_migration_blocks (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc); +gather_migration_blocks (void *cls); /** @@ -452,7 +450,7 @@ consider_gathering () return; if (NULL != mig_qe) return; - if (GNUNET_SCHEDULER_NO_TASK != mig_task) + if (NULL != mig_task) return; if (mig_size >= MAX_MIGRATION_QUEUE) return; @@ -569,13 +567,11 @@ process_migration_content (void *cls, * migration * * @param cls unused - * @param tc scheduler context (also unused) */ static void -gather_migration_blocks (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +gather_migration_blocks (void *cls) { - mig_task = GNUNET_SCHEDULER_NO_TASK; + mig_task = NULL; if (mig_size >= MAX_MIGRATION_QUEUE) return; if (NULL == GSF_dsh) @@ -586,7 +582,6 @@ gather_migration_blocks (void *cls, value_found = GNUNET_NO; mig_qe = GNUNET_DATASTORE_get_for_replication (GSF_dsh, 0, UINT_MAX, - GNUNET_TIME_UNIT_FOREVER_REL, &process_migration_content, NULL); if (NULL == mig_qe) consider_gathering (); @@ -606,6 +601,16 @@ GSF_push_start_ (struct GSF_ConnectedPeer *peer) if (GNUNET_YES != enabled) return; + for (mrp = peer_head; NULL != mrp; mrp = mrp->next) + if (mrp->peer == peer) + break; + if (NULL != mrp) + { + /* same peer added twice, must not happen */ + GNUNET_break (0); + return; + } + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Adding peer %s to list for pushing\n", GNUNET_i2s (GSF_connected_peer_get_identity2_(peer))); @@ -682,10 +687,10 @@ GSF_push_init_ () void GSF_push_done_ () { - if (GNUNET_SCHEDULER_NO_TASK != mig_task) + if (NULL != mig_task) { GNUNET_SCHEDULER_cancel (mig_task); - mig_task = GNUNET_SCHEDULER_NO_TASK; + mig_task = NULL; } if (NULL != mig_qe) {