mirror of
https://github.com/octoleo/syncthing.git
synced 2024-12-22 02:48:59 +00:00
When creating an initial default config, we usually probe for a free TCP port. But when a UNIX socket is specified via the `STGUIADDRESS=` override or the `--gui-address=unix:///...` command line syntax, parsing that option will fail during port probing. The solution is to just skip the port probing when the address is determined to specify something other than a TCP socket. ### Testing Start with a fresh home directory each time. 1. Specify a UNIX socket for the GUI (works with this PR): TMPHOME=$(mktemp -d); ./syncthing --home=$TMPHOME --gui-address=unix://$TMPHOME/socket 2. Specify no GUI address (probes for a free port if default is taken, as before): TMPHOME=$(mktemp -d); ./syncthing --home=$TMPHOME 3. Specify a TCP GUI address (probes whether the given port is taken, as before): TMPHOME=$(mktemp -d); ./syncthing --home=$TMPHOME --gui-address=127.0.0.1:8385
This commit is contained in:
parent
7bea8c758a
commit
b9c6d3ae09
@ -139,6 +139,7 @@ func New(myID protocol.DeviceID) Configuration {
|
||||
}
|
||||
|
||||
func (cfg *Configuration) ProbeFreePorts() error {
|
||||
if cfg.GUI.Network() == "tcp" {
|
||||
guiHost, guiPort, err := net.SplitHostPort(cfg.GUI.Address())
|
||||
if err != nil {
|
||||
return fmt.Errorf("get default port (GUI): %w", err)
|
||||
@ -152,8 +153,9 @@ func (cfg *Configuration) ProbeFreePorts() error {
|
||||
return fmt.Errorf("get free port (GUI): %w", err)
|
||||
}
|
||||
cfg.GUI.RawAddress = net.JoinHostPort(guiHost, strconv.Itoa(port))
|
||||
}
|
||||
|
||||
port, err = getFreePort("0.0.0.0", DefaultTCPPort)
|
||||
port, err := getFreePort("0.0.0.0", DefaultTCPPort)
|
||||
if err != nil {
|
||||
return fmt.Errorf("get free port (BEP): %w", err)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user