diff options
Diffstat (limited to 'plugin')
| -rw-r--r-- | plugin/maxmind/asn_csv.go | 14 | ||||
| -rw-r--r-- | plugin/maxmind/country_csv.go | 28 |
2 files changed, 33 insertions, 9 deletions
diff --git a/plugin/maxmind/asn_csv.go b/plugin/maxmind/asn_csv.go index 73cd052b..e738a44b 100644 --- a/plugin/maxmind/asn_csv.go +++ b/plugin/maxmind/asn_csv.go @@ -163,13 +163,21 @@ func (g *geoLite2ASNCSV) process(file string, entries map[string]*lib.Entry) err entries = make(map[string]*lib.Entry) } - fReader, err := os.Open(file) + var f io.ReadCloser + var err error + switch { + case strings.HasPrefix(strings.ToLower(file), "http://"), strings.HasPrefix(strings.ToLower(file), "https://"): + f, err = lib.GetRemoteURLReader(file) + default: + f, err = os.Open(file) + } + if err != nil { return err } - defer fReader.Close() + defer f.Close() - reader := csv.NewReader(fReader) + reader := csv.NewReader(f) reader.Read() // skip header for { diff --git a/plugin/maxmind/country_csv.go b/plugin/maxmind/country_csv.go index 4aa02975..090de13a 100644 --- a/plugin/maxmind/country_csv.go +++ b/plugin/maxmind/country_csv.go @@ -153,13 +153,21 @@ func (g *geoLite2CountryCSV) Input(container lib.Container) (lib.Container, erro } func (g *geoLite2CountryCSV) getCountryCode() (map[string]string, error) { - ccReader, err := os.Open(g.CountryCodeFile) + var f io.ReadCloser + var err error + switch { + case strings.HasPrefix(strings.ToLower(g.CountryCodeFile), "http://"), strings.HasPrefix(strings.ToLower(g.CountryCodeFile), "https://"): + f, err = lib.GetRemoteURLReader(g.CountryCodeFile) + default: + f, err = os.Open(g.CountryCodeFile) + } + if err != nil { return nil, err } - defer ccReader.Close() + defer f.Close() - reader := csv.NewReader(ccReader) + reader := csv.NewReader(f) lines, err := reader.ReadAll() if err != nil { return nil, err @@ -199,13 +207,21 @@ func (g *geoLite2CountryCSV) process(file string, ccMap map[string]string, entri entries = make(map[string]*lib.Entry, len(ccMap)) } - fReader, err := os.Open(file) + var f io.ReadCloser + var err error + switch { + case strings.HasPrefix(strings.ToLower(file), "http://"), strings.HasPrefix(strings.ToLower(file), "https://"): + f, err = lib.GetRemoteURLReader(file) + default: + f, err = os.Open(file) + } + if err != nil { return err } - defer fReader.Close() + defer f.Close() - reader := csv.NewReader(fReader) + reader := csv.NewReader(f) reader.Read() // skip header for { |
