[tor-commits] [flashproxy/master] Make facilitator_poll_interval option override other settings.

dcf at torproject.org dcf at torproject.org
Sat Mar 2 09:22:14 UTC 2013


commit b7ff1bcd4f0a35ac7ee8c9411e7df8df44d16d3a
Author: Alexandre Allaire <alexandre.allaire at mail.mcgill.ca>
Date:   Fri Feb 8 11:05:00 2013 -0500

    Make facilitator_poll_interval option override other settings.
    
    If the facilitator_poll_interval option is provided, and is a valid
    value, it overrides the facilitator-provided interval and the default
    interval. If the option is missing, fall back on the facilitator
    interval, and absent that, the default interval. If any value is smaller
    than MIN_FACILITATOR_POLL_INTERVAL, that is used instead.
---
 proxy/flashproxy.js |   25 ++++++++++++++++---------
 1 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/proxy/flashproxy.js b/proxy/flashproxy.js
index 47f5df4..6aaa211 100644
--- a/proxy/flashproxy.js
+++ b/proxy/flashproxy.js
@@ -461,8 +461,8 @@ function FlashProxy() {
             return;
         }
 
-        this.facilitator_poll_interval = get_param_timespec(query, "facilitator_poll_interval", DEFAULT_FACILITATOR_POLL_INTERVAL);
-        if (this.facilitator_poll_interval === null || this.facilitator_poll_interval < MIN_FACILITATOR_POLL_INTERVAL) {
+        this.facilitator_poll_interval = get_param_timespec(query, "facilitator_poll_interval", undefined);
+        if (this.facilitator_poll_interval !== undefined && (this.facilitator_poll_interval === null || this.facilitator_poll_interval < MIN_FACILITATOR_POLL_INTERVAL)) {
             puts("Error: facilitator_poll_interval must be a nonnegative number at least " + MIN_FACILITATOR_POLL_INTERVAL + ".");
             this.die();
             return;
@@ -548,17 +548,24 @@ function FlashProxy() {
         var response;
         var client_addr;
         var relay_addr;
+        var poll_interval;
 
         response = parse_query_string(text);
 
-        poll_interval = get_param_timespec(response, "check-back-in", this.facilitator_poll_interval);
-        if (poll_interval === null || poll_interval < MIN_FACILITATOR_POLL_INTERVAL)
-            puts("Error: polling interval from facilitator is not a nonnegative number at least " + repr(MIN_FACILITATOR_POLL_INTERVAL) + ".");
-        else
-            this.facilitator_poll_interval = poll_interval;
-        puts("Polling interval: " + repr(this.facilitator_poll_interval));
+        if (this.facilitator_poll_interval) {
+            poll_interval = this.facilitator_poll_interval;
+        } else {
+            poll_interval = get_param_integer(response, "check-back-in", DEFAULT_FACILITATOR_POLL_INTERVAL);
+            if (poll_interval === null) {
+                puts("Error: can't parse polling interval from facilitator, " + repr(poll_interval) + ".");
+                poll_interval = DEFAULT_FACILITATOR_POLL_INTERVAL;
+            } else {
+                poll_interval = Math.max(poll_interval, MIN_FACILITATOR_POLL_INTERVAL);
+            }
+        }
 
-        setTimeout(this.proxy_main.bind(this), this.facilitator_poll_interval * 1000);
+        puts("Polling interval: " + repr(poll_interval) + ".");
+        setTimeout(this.proxy_main.bind(this), poll_interval * 1000);
 
         if (!response.client) {
             puts("No clients.");





More information about the tor-commits mailing list