[arch-commits] Commit in mtr/trunk (PKGBUILD mtr-0.85-grace-period.patch)
Evangelos Foutras
foutrelis at archlinux.org
Wed Oct 1 12:31:50 UTC 2014
Date: Wednesday, October 1, 2014 @ 14:31:50
Author: foutrelis
Revision: 223719
upgpkg: mtr 0.85-2
- Fix FS#39132: checksum fails and website missing
- Fix FS#40793: mtr doesn't wait for last packets sent out in report mode
Added:
mtr/trunk/mtr-0.85-grace-period.patch
Modified:
mtr/trunk/PKGBUILD
-----------------------------+
PKGBUILD | 16 +++++++--
mtr-0.85-grace-period.patch | 71 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 83 insertions(+), 4 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2014-10-01 09:40:52 UTC (rev 223718)
+++ PKGBUILD 2014-10-01 12:31:50 UTC (rev 223719)
@@ -5,14 +5,22 @@
pkgbase=mtr
pkgname=(mtr mtr-gtk)
pkgver=0.85
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
+url="http://www.bitwizard.nl/mtr/"
license=('GPL')
makedepends=('ncurses' 'gtk2')
-source=(ftp://ftp.bitwizard.nl/mtr/$pkgbase-$pkgver.tar.gz)
-url=""ba1e111d270178eb1d65e51ebf6503f
-md5sums=('aba1e111d270178eb1d65e51ebf6503f')
+source=(ftp://ftp.bitwizard.nl/mtr/$pkgbase-$pkgver.tar.gz
+ mtr-0.85-grace-period.patch)
+md5sums=('5e665c617e5659b6ec3e201ee7488eb1'
+ 'c5d16e124a4734adeaaf3e0b83ef40fb')
+prepare() {
+ cd "$srcdir/$pkgbase-$pkgver"
+
+ patch -Np1 -i ../mtr-0.85-grace-period.patch
+}
+
build() {
cp -r $pkgbase-$pkgver $pkgbase-cli
cd mtr-cli
Added: mtr-0.85-grace-period.patch
===================================================================
--- mtr-0.85-grace-period.patch (rev 0)
+++ mtr-0.85-grace-period.patch 2014-10-01 12:31:50 UTC (rev 223719)
@@ -0,0 +1,71 @@
+From 6ce1601b27fdd95b44ed65d7fd83604860276d63 Mon Sep 17 00:00:00 2001
+From: Michal Sekletar <sekletar.m at gmail.com>
+Date: Tue, 17 Sep 2013 16:11:20 +0200
+Subject: [PATCH] core: introduce grace period
+
+In report mode we break out from select loop immediately after we reach
+maximum count of iterations. But we should wait for packets which are still on
+the way.
+
+In order to fix the issue we introduce grace period during which we don't send
+out more packets but we just wait for responses which might be still on the way.
+
+resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1009051
+---
+ select.c | 26 +++++++++++++++++++++++---
+ 1 file changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/select.c b/select.c
+index 29088fd..31bfd5f 100644
+--- a/select.c
++++ b/select.c
+@@ -45,6 +45,8 @@ static struct timeval intervaltime;
+ int display_offset = 0;
+
+
++#define GRACETIME (5 * 1000*1000)
++
+ void select_loop(void) {
+ fd_set readfd;
+ fd_set writefd;
+@@ -57,8 +59,12 @@ void select_loop(void) {
+ int NumPing = 0;
+ int paused = 0;
+ struct timeval lasttime, thistime, selecttime;
++ struct timeval startgrace;
+ int dt;
+ int rv;
++ int graceperiod = 0;
++
++ memset(&startgrace, 0, sizeof(startgrace));
+
+ gettimeofday(&lasttime, NULL);
+
+@@ -124,10 +130,24 @@ void select_loop(void) {
+ (thistime.tv_sec == lasttime.tv_sec + intervaltime.tv_sec &&
+ thistime.tv_usec >= lasttime.tv_usec + intervaltime.tv_usec)) {
+ lasttime = thistime;
+- if(NumPing >= MaxPing && (!Interactive || ForceMaxPing))
++
++ if (!graceperiod) {
++ if (NumPing >= MaxPing && (!Interactive || ForceMaxPing)) {
++ graceperiod = 1;
++ startgrace = thistime;
++ }
++
++ /* do not send out batch when we've already initiated grace period */
++ if (!graceperiod && net_send_batch())
++ NumPing++;
++ }
++ }
++
++ if (graceperiod) {
++ dt = (thistime.tv_usec - startgrace.tv_usec) +
++ 1000000 * (thistime.tv_sec - startgrace.tv_sec);
++ if (dt > GRACETIME)
+ return;
+- if (net_send_batch())
+- NumPing++;
+ }
+
+ selecttime.tv_usec = (thistime.tv_usec - lasttime.tv_usec);
More information about the arch-commits
mailing list