]> p2p-next.cs.pub.ro Git - swift-upb.git/commitdiff
negative cwnd is a nonsense
authorVictor Grishchenko <victor.grishchenko@gmail.com>
Tue, 9 Feb 2010 14:49:39 +0000 (15:49 +0100)
committerVictor Grishchenko <victor.grishchenko@gmail.com>
Tue, 9 Feb 2010 14:49:39 +0000 (15:49 +0100)
send_control.cpp

index 7da679b6a8e9bf8768a8afca0314658396b33ba3..216c5679d84331ebbfe14b2257c4ab575d2b4ccd 100644 (file)
@@ -101,7 +101,7 @@ tint    Channel::CwndRateNextSendTime () {
         return SwitchSendControl(KEEP_ALIVE_CONTROL);
     if (data_out_.size()<cwnd_) {
         dprintf("%s #%u sendctrl next in %llius (cwnd %f.2, data_out %i)\n",
-                tintstr(),id_,send_interval_,cwnd_,data_out_.size());
+                tintstr(),id_,send_interval_,cwnd_,(int)data_out_.size());
         return last_data_out_time_ + send_interval_;
     } else {
         assert(data_out_.front().time!=TINT_NEVER);
@@ -158,6 +158,8 @@ tint Channel::LedbatNextSendTime () {
     tint queueing_delay = owd_cur - owd_min;
     tint off_target = LEDBAT_TARGET - queueing_delay;
     cwnd_ += LEDBAT_GAIN * off_target / cwnd_;
+    if (cwnd_<1)
+        cwnd_ = 1;
     dprintf("%s #%u sendctrl ledbat %lli-%lli => %3.2f\n",
             tintstr(),id_,owd_cur,owd_min,cwnd_);
     return CwndRateNextSendTime();