[tor-commits] [goptlib/master] Add IsClient and IsServer.
yawning at torproject.org
yawning at torproject.org
Wed May 21 08:10:23 UTC 2014
commit c1482145a738b9378ee6a5f7067544bea7414f34
Author: Yawning Angel <yawning at schwanenlied.me>
Date: Wed May 21 08:06:36 2014 +0000
Add IsClient and IsServer.
Both methods only examine TOR_PT_[CLIENT,SERVER]_TRANSPORTS, so they
are not substitues for ClientSetup/ServerSetup. However that check is
sufficient for determining which Setup routine to run in the first
place.
---
pt.go | 12 ++++++++++++
pt_test.go | 24 ++++++++++++++++++++++++
2 files changed, 36 insertions(+)
diff --git a/pt.go b/pt.go
index 92bb0f5..3bd50a8 100644
--- a/pt.go
+++ b/pt.go
@@ -816,3 +816,15 @@ func DialOr(info *ServerInfo, addr, methodName string) (*net.TCPConn, error) {
return s, nil
}
+
+// IsClient returns true if the enviornment reflects a managed client.
+func IsClient() bool {
+ env := getenv("TOR_PT_CLIENT_TRANSPORTS")
+ return env != ""
+}
+
+// IsServer returns true if the enviornment reflects a managed server.
+func IsServer() bool {
+ env := getenv("TOR_PT_SERVER_TRANSPORTS")
+ return env != ""
+}
diff --git a/pt_test.go b/pt_test.go
index aa3ad04..5689405 100644
--- a/pt_test.go
+++ b/pt_test.go
@@ -737,3 +737,27 @@ func TestExtOrPortSetup(t *testing.T) {
testExtOrPortSetupIndividual(t, "", methodName)
testExtOrPortSetupIndividual(t, addr, methodName)
}
+
+func TestIsClient(t *testing.T) {
+ os.Clearenv()
+ if IsClient() {
+ t.Errorf("empty enviornment unexpectedly appears as a client")
+ }
+
+ os.Setenv("TOR_PT_CLIENT_TRANSPORTS", "dummy")
+ if !IsClient() {
+ t.Errorf("IsClient returned false with TOR_PT_CLIENT_TRANSPORTS set")
+ }
+}
+
+func TestIsServer(t *testing.T) {
+ os.Clearenv()
+ if IsServer() {
+ t.Errorf("empty enviornment unexpectedly appears as a server")
+ }
+
+ os.Setenv("TOR_PT_SERVER_TRANSPORTS", "dummy")
+ if !IsServer() {
+ t.Errorf("IsServer returned false with TOR_PT_SERVER_TRANSPORTS set")
+ }
+}
More information about the tor-commits
mailing list