]> granicus.if.org Git - curl/commitdiff
asiohiper.cpp / evhiperfifo.c: deal with negative timerfunction input
authorDaniel Stenberg <daniel@haxx.se>
Fri, 19 May 2017 12:16:37 +0000 (14:16 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 19 May 2017 12:16:37 +0000 (14:16 +0200)
That means delete the timer.

Reported-by: Michael Kaufmann
Ref: #1253

docs/examples/asiohiper.cpp
docs/examples/evhiperfifo.c

index 2ff0e64046f1ef40e68875aecf3866c5d73c3f84..9e0554f599dc22c1de332bdfebd6c35b18785a71 100644 (file)
@@ -90,7 +90,7 @@ static int multi_timer_cb(CURLM *multi, long timeout_ms, GlobalInfo *g)
     timer.expires_from_now(boost::posix_time::millisec(timeout_ms));
     timer.async_wait(boost::bind(&timer_cb, _1, g));
   }
-  else {
+  else if(timeout_ms == 0) {
     /* call timeout function immediately */
     boost::system::error_code error; /*success*/
     timer_cb(error, g);
index efe42475a9b5bc49a83c5553c8cae754caf8b693..9cb8eae47fca7502b70743cda4365d59f96c1a06 100644 (file)
@@ -5,7 +5,7 @@
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution. The terms
@@ -124,7 +124,7 @@ static int multi_timer_cb(CURLM *multi, long timeout_ms, GlobalInfo *g)
     ev_timer_init(&g->timer_event, timer_cb, t, 0.);
     ev_timer_start(g->loop, &g->timer_event);
   }
-  else
+  else if(timeout_ms == 0)
     timer_cb(g->loop, &g->timer_event, 0);
   return 0;
 }