letterbox

A simple SMTP to Maildir delivery agent
git clone https://www.brianlane.com/git/letterbox
Log | Files | Refs | README | LICENSE

commit 15931d5df311548c36282fa369cd5b5d27511279
parent d261251baa035cf2c5b8b9e6a8b255471b6a853c
Author: Brian C. Lane <bcl@brianlane.com>
Date:   Sat,  7 Mar 2020 15:32:45 -0800

Change readConfig to use an io.Reader

This will make it easier to test the function without requiring
temporary files.

Diffstat:
Mmain.go | 12+++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/main.go b/main.go @@ -36,6 +36,7 @@ import ( "github.com/BurntSushi/toml" "github.com/bradfitz/go-smtpd/smtpd" "github.com/luksen/maildir" + "io" "log" "net" "os" @@ -98,9 +99,9 @@ var allowedNetworks []*net.IPNet hosts = ["192.168.101.0/24", "fozzy.brianlane.com", "192.168.103.15"] emails = ["user@domain.com", "root@domain.com"] */ -func readConfig(filename string) (letterboxConfig, error) { +func readConfig(r io.Reader) (letterboxConfig, error) { var config letterboxConfig - if _, err := toml.DecodeFile(filename, &config); err != nil { + if _, err := toml.DecodeReader(r, &config); err != nil { return config, err } return config, nil @@ -271,7 +272,12 @@ func main() { } var err error - cfg, err = readConfig(cmdline.Config) + cfgFile, err := os.Open(cmdline.Config) + if err != nil { + log.Fatalf("Error opening config file: %s", err) + } + cfg, err = readConfig(cfgFile) + cfgFile.Close() if err != nil { log.Fatalf("Error reading config file %s: %s\n", cmdline.Config, err) }