1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-17 09:37:02 +00:00

More config cleanups for #86

This commit is contained in:
James Hillyerd
2018-03-22 20:02:34 -07:00
parent 845cbedc0d
commit f0a94f4848
7 changed files with 23 additions and 23 deletions

View File

@@ -49,18 +49,18 @@ func init() {
func main() {
// Command line flags.
help := flag.Bool("help", false, "Displays this help")
pidfile := flag.String("pidfile", "", "Write our PID into the specified file")
logfile := flag.String("logfile", "stderr", "Write out log into the specified file")
help := flag.Bool("help", false, "Displays help on flags and env variables.")
pidfile := flag.String("pidfile", "", "Write our PID into the specified file.")
logfile := flag.String("logfile", "stderr", "Write out log into the specified file.")
flag.Usage = func() {
fmt.Fprintln(os.Stderr, "Usage: inbucket [options]")
flag.PrintDefaults()
fmt.Fprintln(os.Stderr, "")
config.Usage()
}
flag.Parse()
if *help {
flag.Usage()
fmt.Fprintln(os.Stderr, "")
config.Usage()
return
}
// Process configuration.

View File

@@ -11,11 +11,11 @@ import (
const (
prefix = "inbucket"
tableFormat = `Inbucket is configured via the environment. The following environment
variables can be used:
tableFormat = `Inbucket is configured via the environment. The following environment variables
can be used:
KEY DEFAULT REQUIRED DESCRIPTION
{{range .}}{{usage_key .}} {{usage_default .}} {{usage_required .}} {{usage_description .}}
KEY DEFAULT DESCRIPTION
{{range .}}{{usage_key .}} {{usage_default .}} {{usage_description .}}
{{end}}`
)
@@ -42,16 +42,16 @@ type SMTP struct {
Domain string `required:"true" default:"inbucket" desc:"HELO domain"`
DomainNoStore string `desc:"Load testing domain"`
MaxRecipients int `required:"true" default:"200" desc:"Maximum RCPT TO per message"`
MaxIdle time.Duration `required:"true" default:"300s" desc:"Idle network timeout"`
MaxMessageBytes int `required:"true" default:"2048000" desc:"Maximum message size"`
StoreMessages bool `required:"true" default:"true" desc:"Store incoming mail?"`
Timeout time.Duration `required:"true" default:"300s" desc:"Idle network timeout"`
}
// POP3 contains the POP3 server configuration.
type POP3 struct {
Addr string `required:"true" default:"0.0.0.0:1100" desc:"POP3 server IP4 host:port"`
Domain string `required:"true" default:"inbucket" desc:"HELLO domain"`
MaxIdle time.Duration `required:"true" default:"600s" desc:"Idle network timeout"`
Timeout time.Duration `required:"true" default:"600s" desc:"Idle network timeout"`
}
// Web contains the HTTP server configuration.

View File

@@ -496,7 +496,7 @@ func (ses *Session) sendMessageTop(msg storage.Message, lineCount int) {
// Load the users mailbox
func (ses *Session) loadMailbox() {
m, err := ses.server.dataStore.GetMessages(ses.user)
m, err := ses.server.store.GetMessages(ses.user)
if err != nil {
ses.logError("Failed to load messages for %v: %v", ses.user, err)
}
@@ -522,7 +522,7 @@ func (ses *Session) processDeletes() {
for i, msg := range ses.messages {
if !ses.retain[i] {
ses.logTrace("Deleting %v", msg)
if err := ses.server.dataStore.RemoveMessage(ses.user, msg.ID()); err != nil {
if err := ses.server.store.RemoveMessage(ses.user, msg.ID()); err != nil {
ses.logWarn("Error deleting %v: %v", msg, err)
}
}
@@ -536,7 +536,7 @@ func (ses *Session) enterState(state State) {
// Calculate the next read or write deadline based on maxIdleSeconds
func (ses *Session) nextDeadline() time.Time {
return time.Now().Add(ses.server.maxIdle)
return time.Now().Add(ses.server.timeout)
}
// Send requested message, store errors in Session.sendError

View File

@@ -15,20 +15,20 @@ import (
type Server struct {
host string
domain string
maxIdle time.Duration
dataStore storage.Store
timeout time.Duration
store storage.Store
listener net.Listener
globalShutdown chan bool
waitgroup *sync.WaitGroup
}
// New creates a new Server struct
func New(cfg config.POP3, shutdownChan chan bool, ds storage.Store) *Server {
func New(cfg config.POP3, shutdownChan chan bool, store storage.Store) *Server {
return &Server{
host: cfg.Addr,
domain: cfg.Domain,
dataStore: ds,
maxIdle: cfg.MaxIdle,
store: store,
timeout: cfg.Timeout,
globalShutdown: shutdownChan,
waitgroup: new(sync.WaitGroup),
}

View File

@@ -414,7 +414,7 @@ func (ss *Session) greet() {
// Calculate the next read or write deadline based on maxIdle
func (ss *Session) nextDeadline() time.Time {
return time.Now().Add(ss.server.maxIdle)
return time.Now().Add(ss.server.timeout)
}
// Send requested message, store errors in Session.sendError

View File

@@ -366,7 +366,7 @@ func setupSMTPServer(ds storage.Store) (s *Server, buf *bytes.Buffer, teardown f
Domain: "inbucket.local",
DomainNoStore: "bitbucket.local",
MaxRecipients: 5,
MaxIdle: 5,
Timeout: 5,
MaxMessageBytes: 5000,
StoreMessages: true,
}

View File

@@ -42,9 +42,9 @@ type Server struct {
domain string
domainNoStore string
maxRecips int
maxIdle time.Duration
maxMessageBytes int
storeMessages bool
timeout time.Duration
// Dependencies
apolicy *policy.Addressing // Address policy.
@@ -89,7 +89,7 @@ func NewServer(
domain: cfg.Domain,
domainNoStore: strings.ToLower(cfg.DomainNoStore),
maxRecips: cfg.MaxRecipients,
maxIdle: cfg.MaxIdle,
timeout: cfg.Timeout,
maxMessageBytes: cfg.MaxMessageBytes,
storeMessages: cfg.StoreMessages,
globalShutdown: globalShutdown,