ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/src/connection.C
(Generate patch)

Comparing gvpe/src/connection.C (file contents):
Revision 1.46 by pcg, Sat Mar 5 19:13:15 2005 UTC vs.
Revision 1.47 by pcg, Mon Mar 7 01:31:26 2005 UTC

745 && conf != THISNODE 745 && conf != THISNODE
746 && connectmode != conf_node::C_NEVER 746 && connectmode != conf_node::C_NEVER
747 && connectmode != conf_node::C_DISABLED 747 && connectmode != conf_node::C_DISABLED
748 && NOW > w.at) 748 && NOW > w.at)
749 { 749 {
750 double retry_int = double (retry_cnt & 3 ? (retry_cnt & 3) : 1 << (retry_cnt >> 2)) * 0.6; 750 w.at = TSTAMP_MAX; // first disable this watcher in case of recursion
751 751
752 if (retry_int < conf->max_retry) 752 double retry_int = double (retry_cnt & 3
753 retry_cnt++; 753 ? (retry_cnt & 3) + 1
754 else 754 : 1 << (retry_cnt >> 2));
755 retry_int = conf->max_retry;
756
757 w.start (NOW + retry_int);
758 755
759 reset_si (); 756 reset_si ();
757
758 bool slow = si.prot & PROT_SLOW;
760 759
761 if (si.prot && !si.host) 760 if (si.prot && !si.host)
762 vpn->send_connect_request (conf->id); 761 vpn->send_connect_request (conf->id);
763 else 762 else
764 { 763 {
765 const sockinfo &dsi = forward_si (si); 764 const sockinfo &dsi = forward_si (si);
765
766 slow = slow || (dsi.prot & PROT_SLOW);
766 767
767 if (dsi.valid () && auth_rate_limiter.can (dsi)) 768 if (dsi.valid () && auth_rate_limiter.can (dsi))
768 { 769 {
769 if (retry_cnt < 4) 770 if (retry_cnt < 4)
770 send_auth_request (dsi, true); 771 send_auth_request (dsi, true);
771 else 772 else
772 send_ping (dsi, 0); 773 send_ping (dsi, 0);
773 } 774 }
774 } 775 }
776
777 retry_int *= slow ? 3. : 0.7;
778
779 if (retry_int < conf->max_retry)
780 retry_cnt++;
781 else
782 retry_int = conf->max_retry;
783
784 w.start (NOW + retry_int);
775 } 785 }
776} 786}
777 787
778void 788void
779connection::reset_connection () 789connection::reset_connection ()

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines