diff --git a/example_test.go b/example_test.go index 1c0fbef..f0c669d 100644 --- a/example_test.go +++ b/example_test.go @@ -1,32 +1,32 @@ -package smtpd +package smtpd_test import ( + "bitbucket.org/chrj/smtpd" "errors" "net/smtp" "strings" ) func ExampleServer() { - - var server *Server + var server *smtpd.Server // No-op server. Accepts and discards - server = &Server{} + server = &smtpd.Server{} server.ListenAndServe() // Relay server. Accepts only from single IP address and forwards using the Gmail smtp - server = &Server{ + server = &smtpd.Server{ Addr: "0.0.0.0:10025", - HeloChecker: func(peer Peer) error { + HeloChecker: func(peer smtpd.Peer) error { if !strings.HasPrefix(peer.Addr.String(), "42.42.42.42:") { return errors.New("Denied") } return nil }, - Handler: func(peer Peer, env Envelope) error { + Handler: func(peer smtpd.Peer, env smtpd.Envelope) error { return smtp.SendMail( "smtp.gmail.com:587", smtp.PlainAuth( @@ -43,5 +43,4 @@ func ExampleServer() { } server.ListenAndServe() - } diff --git a/smtpd_test.go b/smtpd_test.go index 37cc108..4998052 100644 --- a/smtpd_test.go +++ b/smtpd_test.go @@ -1,6 +1,7 @@ -package smtpd +package smtpd_test import ( + "bitbucket.org/chrj/smtpd" "crypto/tls" "errors" "fmt" @@ -42,7 +43,7 @@ func TestSMTP(t *testing.T) { defer ln.Close() - server := &Server{} + server := &smtpd.Server{} go func() { server.Serve(ln) @@ -120,7 +121,7 @@ func TestListenAndServe(t *testing.T) { ln.Close() - server := &Server{Addr: addr} + server := &smtpd.Server{Addr: addr} go func() { server.ListenAndServe() @@ -153,8 +154,8 @@ func TestSTARTTLS(t *testing.T) { t.Fatalf("Cert load failed: %v", err) } - server := &Server{ - Authenticator: func(peer Peer, username, password string) error { return nil }, + server := &smtpd.Server{ + Authenticator: func(peer smtpd.Peer, username, password string) error { return nil }, TLSConfig: &tls.Config{ Certificates: []tls.Certificate{cert}, }, @@ -248,9 +249,9 @@ func TestAuthRejection(t *testing.T) { t.Fatalf("Cert load failed: %v", err) } - server := &Server{ - Authenticator: func(peer Peer, username, password string) error { - return Error{Code: 550, Message: "Denied"} + server := &smtpd.Server{ + Authenticator: func(peer smtpd.Peer, username, password string) error { + return smtpd.Error{Code: 550, Message: "Denied"} }, TLSConfig: &tls.Config{ Certificates: []tls.Certificate{cert}, @@ -286,9 +287,9 @@ func TestConnectionCheck(t *testing.T) { defer ln.Close() - server := &Server{ - ConnectionChecker: func(peer Peer) error { - return Error{Code: 552, Message: "Denied"} + server := &smtpd.Server{ + ConnectionChecker: func(peer smtpd.Peer) error { + return smtpd.Error{Code: 552, Message: "Denied"} }, } @@ -311,8 +312,8 @@ func TestConnectionCheckSimpleError(t *testing.T) { defer ln.Close() - server := &Server{ - ConnectionChecker: func(peer Peer) error { + server := &smtpd.Server{ + ConnectionChecker: func(peer smtpd.Peer) error { return errors.New("Denied") }, } @@ -336,9 +337,9 @@ func TestHELOCheck(t *testing.T) { defer ln.Close() - server := &Server{ - HeloChecker: func(peer Peer) error { - return Error{Code: 552, Message: "Denied"} + server := &smtpd.Server{ + HeloChecker: func(peer smtpd.Peer) error { + return smtpd.Error{Code: 552, Message: "Denied"} }, } @@ -366,9 +367,9 @@ func TestSenderCheck(t *testing.T) { defer ln.Close() - server := &Server{ - SenderChecker: func(peer Peer, addr string) error { - return Error{Code: 552, Message: "Denied"} + server := &smtpd.Server{ + SenderChecker: func(peer smtpd.Peer, addr string) error { + return smtpd.Error{Code: 552, Message: "Denied"} }, } @@ -396,9 +397,9 @@ func TestRecipientCheck(t *testing.T) { defer ln.Close() - server := &Server{ - RecipientChecker: func(peer Peer, addr string) error { - return Error{Code: 552, Message: "Denied"} + server := &smtpd.Server{ + RecipientChecker: func(peer smtpd.Peer, addr string) error { + return smtpd.Error{Code: 552, Message: "Denied"} }, } @@ -430,7 +431,7 @@ func TestMaxMessageSize(t *testing.T) { defer ln.Close() - server := &Server{ + server := &smtpd.Server{ MaxMessageSize: 5, } @@ -481,8 +482,8 @@ func TestHandler(t *testing.T) { defer ln.Close() - server := &Server{ - Handler: func(peer Peer, env Envelope) error { + server := &smtpd.Server{ + Handler: func(peer smtpd.Peer, env smtpd.Envelope) error { if env.Sender != "sender@example.org" { t.Fatalf("Unknown sender: %v", env.Sender) } @@ -546,9 +547,9 @@ func TestRejectHandler(t *testing.T) { defer ln.Close() - server := &Server{ - Handler: func(peer Peer, env Envelope) error { - return Error{Code: 550, Message: "Rejected"} + server := &smtpd.Server{ + Handler: func(peer smtpd.Peer, env smtpd.Envelope) error { + return smtpd.Error{Code: 550, Message: "Rejected"} }, } @@ -599,7 +600,7 @@ func TestMaxConnections(t *testing.T) { defer ln.Close() - server := &Server{ + server := &smtpd.Server{ MaxConnections: 1, } @@ -629,7 +630,7 @@ func TestNoMaxConnections(t *testing.T) { defer ln.Close() - server := &Server{ + server := &smtpd.Server{ MaxConnections: -1, } @@ -654,7 +655,7 @@ func TestInvalidHelo(t *testing.T) { defer ln.Close() - server := &Server{} + server := &smtpd.Server{} go func() { server.Serve(ln) @@ -680,7 +681,7 @@ func TestInvalidSender(t *testing.T) { defer ln.Close() - server := &Server{} + server := &smtpd.Server{} go func() { server.Serve(ln) @@ -706,7 +707,7 @@ func TestInvalidRecipient(t *testing.T) { defer ln.Close() - server := &Server{} + server := &smtpd.Server{} go func() { server.Serve(ln) @@ -736,7 +737,7 @@ func TestRCPTbeforeMAIL(t *testing.T) { defer ln.Close() - server := &Server{} + server := &smtpd.Server{} go func() { server.Serve(ln) @@ -762,9 +763,9 @@ func TestDATAbeforeRCPT(t *testing.T) { defer ln.Close() - server := &Server{ - Handler: func(peer Peer, env Envelope) error { - return Error{Code: 550, Message: "Rejected"} + server := &smtpd.Server{ + Handler: func(peer smtpd.Peer, env smtpd.Envelope) error { + return smtpd.Error{Code: 550, Message: "Rejected"} }, } @@ -800,8 +801,8 @@ func TestInterruptedDATA(t *testing.T) { defer ln.Close() - server := &Server{ - Handler: func(peer Peer, env Envelope) error { + server := &smtpd.Server{ + Handler: func(peer smtpd.Peer, env smtpd.Envelope) error { t.Fatal("Accepted DATA despite disconnection") return nil },