Commit Graph

30 Commits

Author SHA1 Message Date
Jonathon Reinhart
b5f17a69f6
Implement graceful shutdown (#11)
* Implement graceful shutdown

This borrows heavily from the implementation of net/http Server.Shutdown().

Closes #10

* Add Server.Address() function to return listener address of a Server

This is useful for logging, etc.

* Refactor out Server.Wait() and add 'wait' param to Shutdown()

This allows a consumer which runs multiple Servers (decke/smtprelay) to
first shut down all servers (passing wait=false) so no new connections are
accepted, and then wait for outstanding client connections to finish.
2021-03-29 10:24:55 +02:00
Bernhard Froehlich
9fccea2351
Ensure that the TLS handshake has been done before using tls.ConnectionState()
otherwise handshake is performed on first read/write and peer.TLS is invalid.
2018-12-14 11:04:35 +00:00
Christian Joergensen
722e9f7848 Also set Peer.TLS connection state on raw TLS connections.
Fix double underscore typo.
2017-10-10 10:10:59 +02:00
Christian Joergensen
52e449011b Support TLS listeners (fixes issue #2). 2017-10-09 20:05:15 +02:00
Christian Joergensen
3ad0b67af6 Add Go Report Card, fix a couple of golint warnings. 2017-08-24 11:41:02 +02:00
Christian Joergensen
3cbf67409f Merge. 2017-05-22 19:54:10 +02:00
Christian Joergensen
843d673448 Proxy protocol support, go vet. 2017-05-22 19:45:42 +02:00
Marcel Voigt
f4b9300d6a Add ProtocolLogger to Server
- If set, logs received and sent SMTP messages
2016-05-01 15:37:06 +02:00
Craig
66f94a07ae Fix several panics on invalid input 2016-02-12 01:26:50 +00:00
Christian Joergensen
1d5d658be6 Added new Server field Hostname for the FQDN over the server (and updated various uses of the hostname). Moved Server.Addr to a parameter for ListenAndServe, as it was only used there. 2014-07-21 12:43:42 +02:00
Christian Joergensen
d28767953f Added TLS param to Peer. Added option to prepend Received header to envelope data. 2014-07-21 00:06:56 +02:00
Christian Joergensen
c6fe39d4dc Update synopsis. 2014-07-20 21:53:47 +02:00
Christian Joergensen
9695f7c734 XCLIENT support. 2014-07-20 21:51:39 +02:00
Christian Joergensen
0fa1acf706 Handle too long lines. Make envelope reset into a session method. 2014-07-19 20:55:40 +02:00
Christian Joergensen
97b38af3b4 Send the HELO hostname to the HeloChecker. 2014-07-18 08:46:39 +02:00
Christian Joergensen
a0c514f12d Different fixes.
Handle empty e-mail addresses.
Implemented MaxRecipients check.
Announce PIPELINING support.
Corrected error code on Too Busy error.
Implemented DataTimeout for timeouts on DATA.
Use textproto.DotReader in handleDATA to implement dot-stuffing.
Reset deadlines on old socket in STARTTLS, add new deadlines to new TLS socket.
2014-07-17 16:00:44 +02:00
Christian Joergensen
ca017c1955 Typo, README. 2014-07-15 13:22:18 +02:00
Christian Joergensen
98573fb190 Cleanup, added license. 2014-07-15 12:37:25 +02:00
Christian Joergensen
b2f59a653e Fixes. 2014-07-15 11:16:34 +02:00
Christian Joergensen
cda2908ec8 newSession cannot fail. 2014-07-15 10:11:37 +02:00
Christian Joergensen
333ada9388 go fmt. 2014-07-15 10:09:34 +02:00
Christian Joergensen
64d201aecb Implemented MaxConnections, corrected examples, removed MailAddress. 2014-07-15 10:07:58 +02:00
Christian Joergensen
587b6ad4ac Examples. 2014-07-14 20:44:14 +02:00
Christian Joergensen
be03306860 Test cases, fixes. 2014-07-14 19:44:10 +02:00
Christian Joergensen
4bb7e21f40 Fixes. 2014-07-14 14:51:31 +02:00
Christian Joergensen
dd3db75d5c go fmt. 2014-07-14 14:20:36 +02:00
Christian Joergensen
ab4df6d73e Authentication support. 2014-07-14 14:20:08 +02:00
Christian Joergensen
1b8b0c4863 Fix. 2014-07-14 13:59:30 +02:00
Christian Joergensen
3127bd4ed8 Refactor. 2014-07-14 13:55:41 +02:00
Christian Joergensen
ac162dc7ac Initial checkin. 2014-07-13 23:24:13 +02:00