From: Christian Grothoff Date: Thu, 25 Mar 2010 14:44:05 +0000 (+0000) Subject: more gentle enforcement X-Git-Tag: initial-import-from-subversion-38251~22369 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=05177a046c5d292f7b4c4e7124309ad70555d320;p=oweals%2Fgnunet.git more gentle enforcement --- diff --git a/src/transport/gnunet-service-transport.c b/src/transport/gnunet-service-transport.c index b097cfc53..84f939578 100644 --- a/src/transport/gnunet-service-transport.c +++ b/src/transport/gnunet-service-transport.c @@ -3171,10 +3171,22 @@ plugin_env_receive (void *cls, const struct GNUNET_PeerIdentity *peer, ntohs (message->type), GNUNET_i2s (peer)); #endif if (GNUNET_YES == GNUNET_BANDWIDTH_tracker_consume (&n->in_tracker, - msize)) - n->quota_violation_count++; + (ssize_t) msize)) + { + n->quota_violation_count++; + if (n->quota_violation_count > QUOTA_VIOLATION_DROP_THRESHOLD) + { + /* since we'll be dropping, only count this message for half so that + peers that send aggressively at the quota don't get "punished" + forever */ + GNUNET_BANDWIDTH_tracker_consume (&n->in_tracker, + - (ssize_t) msize / 2); + } + } else - n->quota_violation_count = 0; /* back within limits */ + { + n->quota_violation_count = 0; /* back within limits */ + } GNUNET_STATISTICS_update (stats, gettext_noop ("# payload received from other peers"), msize,