Add custom networks that are considered local (internal routing, VPN etc)

Allows things like this in the <options> element:

  <alwaysLocalNet>10.0.0.0/8</alwaysLocalNet>
This commit is contained in:
Jakob Borg 2015-09-11 15:07:38 +02:00
parent 0da7142a59
commit fa95c82daf
2 changed files with 9 additions and 0 deletions

View File

@ -595,6 +595,14 @@ func syncthingMain() {
for _, lan := range lans { for _, lan := range lans {
networks = append(networks, lan.String()) networks = append(networks, lan.String())
} }
for _, lan := range opts.AlwaysLocalNets {
_, ipnet, err := net.ParseCIDR(lan)
if err != nil {
l.Infoln("Network", lan, "is malformed:", err)
continue
}
networks = append(networks, ipnet.String())
}
l.Infoln("Local networks:", strings.Join(networks, ", ")) l.Infoln("Local networks:", strings.Join(networks, ", "))
} }

View File

@ -249,6 +249,7 @@ type OptionsConfiguration struct {
PingIdleTimeS int `xml:"pingIdleTimeS" json:"pingIdleTimeS" default:"60"` PingIdleTimeS int `xml:"pingIdleTimeS" json:"pingIdleTimeS" default:"60"`
MinHomeDiskFreePct float64 `xml:"minHomeDiskFreePct" json:"minHomeDiskFreePct" default:"1"` MinHomeDiskFreePct float64 `xml:"minHomeDiskFreePct" json:"minHomeDiskFreePct" default:"1"`
ReleasesURL string `xml:"releasesURL" json:"releasesURL" default:"https://api.github.com/repos/syncthing/syncthing/releases?per_page=30"` ReleasesURL string `xml:"releasesURL" json:"releasesURL" default:"https://api.github.com/repos/syncthing/syncthing/releases?per_page=30"`
AlwaysLocalNets []string `xml:"alwaysLocalNet" json:"alwaysLocalNets"`
} }
func (orig OptionsConfiguration) Copy() OptionsConfiguration { func (orig OptionsConfiguration) Copy() OptionsConfiguration {