[tor-commits] [flashproxy/js] Poll the facilitator in a loop.

dcf at torproject.org dcf at torproject.org
Mon Apr 2 16:40:50 UTC 2012


commit 7fd20939a00ec521f31821305199fd6708b3a39d
Author: David Fifield <david at bamsoftware.com>
Date:   Sat Mar 31 15:44:47 2012 -0700

    Poll the facilitator in a loop.
---
 flashproxy.js |   20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/flashproxy.js b/flashproxy.js
index 4a758f9..7e0217e 100644
--- a/flashproxy.js
+++ b/flashproxy.js
@@ -217,12 +217,11 @@ function FlashProxy()
     this.proxy_pairs = [];
 
     this.start = function() {
-        var fac_addr;
         var client_addr;
         var relay_addr;
 
-        fac_addr = get_query_param_addr(this.query, "facilitator", DEFAULT_FACILITATOR_ADDR);
-        if (!fac_addr) {
+        this.fac_addr = get_query_param_addr(this.query, "facilitator", DEFAULT_FACILITATOR_ADDR);
+        if (!this.fac_addr) {
             puts("Error: Facilitator spec must be in the form \"host:port\".");
             return;
         }
@@ -250,18 +249,21 @@ function FlashProxy()
             puts("Error: the \"relay\" parameter requires \"client\" also.")
             return;
         } else {
-            this.proxy_main(fac_addr);
+            this.proxy_main();
         }
     };
 
-    this.proxy_main = function(fac_addr) {
+    this.proxy_main = function() {
         var fac_url;
         var xhr;
 
-        puts("Using facilitator " + format_addr(fac_addr) + ".");
+        if (this.proxy_pairs.length >= this.max_num_proxy_pairs) {
+            setTimeout(this.proxy_main.bind(this), this.facilitator_poll_interval);
+            return;
+        }
 
-        fac_url = "http://" + encodeURIComponent(fac_addr.host)
-            + ":" + encodeURIComponent(fac_addr.port) + "/";
+        fac_url = "http://" + encodeURIComponent(this.fac_addr.host)
+            + ":" + encodeURIComponent(this.fac_addr.port) + "/";
         xhr = new XMLHttpRequest();
         try {
             xhr.open("GET", fac_url);
@@ -294,6 +296,8 @@ function FlashProxy()
         var client_addr;
         var relay_addr;
 
+        setTimeout(this.proxy_main.bind(this), this.facilitator_poll_interval * 1000);
+
         response = parse_query_string(text);
 
         if (!response.client) {





More information about the tor-commits mailing list