[tor-commits] [websocket/master] Make dummy-client a bit more like dummy-server.

dcf at torproject.org dcf at torproject.org
Mon Nov 4 02:01:41 UTC 2013


commit 2ea3f77a7824a9638a2ada53dc87f94d65ff7776
Author: David Fifield <david at bamsoftware.com>
Date:   Sun Nov 3 17:11:26 2013 -0800

    Make dummy-client a bit more like dummy-server.
---
 src/pt/examples/dummy-client/dummy-client.go |   22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/src/pt/examples/dummy-client/dummy-client.go b/src/pt/examples/dummy-client/dummy-client.go
index 7b69104..3cf7b45 100644
--- a/src/pt/examples/dummy-client/dummy-client.go
+++ b/src/pt/examples/dummy-client/dummy-client.go
@@ -19,6 +19,8 @@ import (
 import "git.torproject.org/pluggable-transports/websocket.git/src/pt"
 import "git.torproject.org/pluggable-transports/websocket.git/src/pt/socks"
 
+var ptInfo pt.ClientInfo
+
 // When a connection handler starts, +1 is written to this channel; when it
 // ends, -1 is written.
 var handlerChan = make(chan int)
@@ -87,12 +89,18 @@ func startListener(addr string) (net.Listener, error) {
 }
 
 func main() {
-	pt.ClientSetup([]string{"dummy"})
-	ln, err := startListener("127.0.0.1:0")
-	if err != nil {
-		pt.CmethodError("dummy", err.Error())
+	ptInfo = pt.ClientSetup([]string{"dummy"})
+
+	listeners := make([]net.Listener, 0)
+	for _, methodName := range ptInfo.MethodNames {
+		ln, err := startListener("127.0.0.1:0")
+		if err != nil {
+			pt.CmethodError(methodName, err.Error())
+			continue
+		}
+		pt.Cmethod(methodName, "socks4", ln.Addr())
+		listeners = append(listeners, ln)
 	}
-	pt.Cmethod("dummy", "socks4", ln.Addr())
 	pt.CmethodsDone()
 
 	var numHandlers int = 0
@@ -109,7 +117,9 @@ func main() {
 		case sig = <-sigChan:
 		}
 	}
-	ln.Close()
+	for _, ln := range listeners {
+		ln.Close()
+	}
 
 	if sig == syscall.SIGTERM {
 		return





More information about the tor-commits mailing list