Selaa lähdekoodia

Add establish_tunnels state to server_load log message

Rod Hynes 9 vuotta sitten
vanhempi
sitoutus
eb8e7ba560
2 muutettua tiedostoa jossa 14 lisäystä ja 1 poistoa
  1. 4 0
      psiphon/server/services.go
  2. 10 1
      psiphon/server/tunnelServer.go

+ 4 - 0
psiphon/server/services.go

@@ -277,6 +277,7 @@ func outputProcessProfiles(config *Config) {
 func logServerLoad(server *TunnelServer) {
 
 	// golang runtime stats
+
 	var memStats runtime.MemStats
 	runtime.ReadMemStats(&memStats)
 	fields := LogFields{
@@ -296,6 +297,9 @@ func logServerLoad(server *TunnelServer) {
 	}
 
 	// tunnel server stats
+
+	fields["establish_tunnels"] = server.GetEstablishTunnels()
+
 	for tunnelProtocol, stats := range server.GetLoadStats() {
 		fields[tunnelProtocol] = stats
 	}

+ 10 - 1
psiphon/server/tunnelServer.go

@@ -217,6 +217,11 @@ func (server *TunnelServer) SetEstablishTunnels(establish bool) {
 	server.sshServer.setEstablishTunnels(establish)
 }
 
+// GetEstablishTunnels returns whether new tunnels may be established or not.
+func (server *TunnelServer) GetEstablishTunnels() bool {
+	return server.sshServer.getEstablishTunnels()
+}
+
 type sshServer struct {
 	support              *SupportServices
 	establishTunnels     int32
@@ -264,6 +269,10 @@ func (sshServer *sshServer) setEstablishTunnels(establish bool) {
 		LogFields{"establish": establish}).Info("establishing tunnels")
 }
 
+func (sshServer *sshServer) getEstablishTunnels() bool {
+	return atomic.LoadInt32(&sshServer.establishTunnels) == 1
+}
+
 // runListener is intended to run an a goroutine; it blocks
 // running a particular listener. If an unrecoverable error
 // occurs, it will send the error to the listenerError channel.
@@ -278,7 +287,7 @@ func (sshServer *sshServer) runListener(
 		// listeners in all cases (e.g., meek) since SSH tunnel can
 		// span multiple TCP connections.
 
-		if atomic.LoadInt32(&sshServer.establishTunnels) != 1 {
+		if !sshServer.getEstablishTunnels() {
 			log.WithContext().Debug("not establishing tunnels")
 			clientConn.Close()
 			return