Browse Source

Do not start relay service unless explicitly asked for, or global announcement server is running

Audrius Butkevicius 10 years ago
parent
commit
031804827f

+ 6 - 3
cmd/syncthing/main.go

@@ -630,7 +630,7 @@ func syncthingMain() {
 			m.StartDeadlockDetector(time.Duration(it) * time.Second)
 		}
 	} else if !IsRelease || IsBeta {
-		m.StartDeadlockDetector(20 * 60 * time.Second)
+		m.StartDeadlockDetector(20 * time.Minute)
 	}
 
 	// Clear out old indexes for other devices. Otherwise we'll start up and
@@ -674,10 +674,13 @@ func syncthingMain() {
 	// Start the relevant services
 
 	connectionSvc := newConnectionSvc(cfg, myID, m, tlsCfg)
-	relaySvc = relay.NewSvc(cfg, tlsCfg, connectionSvc.conns)
-	connectionSvc.Add(relaySvc)
 	mainSvc.Add(connectionSvc)
 
+	if opts.GlobalAnnEnabled || opts.RelayWithoutGlobalAnn {
+		relaySvc = relay.NewSvc(cfg, tlsCfg, connectionSvc.conns)
+		connectionSvc.Add(relaySvc)
+	}
+
 	// Start discovery
 
 	localPort := addr.Port

+ 1 - 0
lib/config/config.go

@@ -224,6 +224,7 @@ type OptionsConfiguration struct {
 	MaxRecvKbps             int      `xml:"maxRecvKbps" json:"maxRecvKbps"`
 	ReconnectIntervalS      int      `xml:"reconnectionIntervalS" json:"reconnectionIntervalS" default:"60"`
 	RelayReconnectIntervalM int      `xml:"relayReconnectIntervalM" json:"relayReconnectIntervalM" default:"10"`
+	RelayWithoutGlobalAnn   bool     `xml:"relayWithoutGlobalAnn" json:"relayWithoutGlobalAnn" default:"false"`
 	StartBrowser            bool     `xml:"startBrowser" json:"startBrowser" default:"true"`
 	UPnPEnabled             bool     `xml:"upnpEnabled" json:"upnpEnabled" default:"true"`
 	UPnPLeaseM              int      `xml:"upnpLeaseMinutes" json:"upnpLeaseMinutes" default:"60"`

+ 2 - 0
lib/config/config_test.go

@@ -42,6 +42,7 @@ func TestDefaultValues(t *testing.T) {
 		MaxRecvKbps:             0,
 		ReconnectIntervalS:      60,
 		RelayReconnectIntervalM: 10,
+		RelayWithoutGlobalAnn:   false,
 		StartBrowser:            true,
 		UPnPEnabled:             true,
 		UPnPLeaseM:              60,
@@ -155,6 +156,7 @@ func TestOverriddenValues(t *testing.T) {
 		MaxRecvKbps:             2341,
 		ReconnectIntervalS:      6000,
 		RelayReconnectIntervalM: 20,
+		RelayWithoutGlobalAnn:   true,
 		StartBrowser:            false,
 		UPnPEnabled:             false,
 		UPnPLeaseM:              90,

+ 1 - 0
lib/config/testdata/overridenvalues.xml

@@ -14,6 +14,7 @@
         <maxRecvKbps>2341</maxRecvKbps>
         <reconnectionIntervalS>6000</reconnectionIntervalS>
         <relayReconnectIntervalM>20</relayReconnectIntervalM>
+        <relayWithoutGlobalAnn>true</relayWithoutGlobalAnn>
         <startBrowser>false</startBrowser>
         <upnpEnabled>false</upnpEnabled>
         <upnpLeaseMinutes>90</upnpLeaseMinutes>