Explorar o código

feat(worker): add 'use_ipv4' option for rsync provider

bigeagle %!s(int64=8) %!d(string=hai) anos
pai
achega
a475b044c6
Modificáronse 3 ficheiros con 5 adicións e 1 borrados
  1. 1 0
      worker/config.go
  2. 1 0
      worker/provider.go
  3. 3 1
      worker/rsync_provider.go

+ 1 - 0
worker/config.go

@@ -123,6 +123,7 @@ type mirrorConfig struct {
 
 	Command       string `toml:"command"`
 	UseIPv6       bool   `toml:"use_ipv6"`
+	UseIPv4       bool   `toml:"use_ipv4"`
 	ExcludeFile   string `toml:"exclude_file"`
 	Username      string `toml:"username"`
 	Password      string `toml:"password"`

+ 1 - 0
worker/provider.go

@@ -130,6 +130,7 @@ func newMirrorProvider(mirror mirrorConfig, cfg *Config) mirrorProvider {
 			logDir:      logDir,
 			logFile:     filepath.Join(logDir, "latest.log"),
 			useIPv6:     mirror.UseIPv6,
+			useIPv4:     mirror.UseIPv4,
 			interval:    time.Duration(mirror.Interval) * time.Minute,
 		}
 		p, err := newRsyncProvider(rc)

+ 3 - 1
worker/rsync_provider.go

@@ -11,7 +11,7 @@ type rsyncConfig struct {
 	rsyncCmd                                     string
 	upstreamURL, username, password, excludeFile string
 	workingDir, logDir, logFile                  string
-	useIPv6                                      bool
+	useIPv6, useIPv4                             bool
 	interval                                     time.Duration
 }
 
@@ -49,6 +49,8 @@ func newRsyncProvider(c rsyncConfig) (*rsyncProvider, error) {
 
 	if c.useIPv6 {
 		options = append(options, "-6")
+	} else if c.useIPv4 {
+		options = append(options, "-4")
 	}
 
 	if c.excludeFile != "" {