From b445a7c4d3aa086f74292bf7e857bbf5c75c5236 Mon Sep 17 00:00:00 2001 From: Audrius Butkevicius Date: Thu, 4 Sep 2014 23:01:34 +0100 Subject: [PATCH] Check if we had successfully acquired a UPnP mapping before (fixes #627) --- cmd/syncthing/main.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/cmd/syncthing/main.go b/cmd/syncthing/main.go index 763e99ff8..61f3d6784 100644 --- a/cmd/syncthing/main.go +++ b/cmd/syncthing/main.go @@ -663,13 +663,16 @@ func renewUPnP(port int) { } // Just renew the same port that we already have - err = igd.AddPortMapping(upnp.TCP, externalPort, port, "syncthing", cfg.Options.UPnPLease*60) - if err == nil { - l.Infoln("Renewed UPnP port mapping - external port", externalPort) - continue + if externalPort != 0 { + err = igd.AddPortMapping(upnp.TCP, externalPort, port, "syncthing", cfg.Options.UPnPLease*60) + if err == nil { + l.Infoln("Renewed UPnP port mapping - external port", externalPort) + continue + } } - // Something strange has happened. Perhaps the gateway has changed? + // Something strange has happened. We didn't have an external port before? + // Or perhaps the gateway has changed? // Retry the same port sequence from the beginning. r := setupExternalPort(igd, port) if r != 0 {