Don't log disconnection error if logout command has already been sent.
Hopefully fixes random errors at disconnect time: Error: Client disconnected: read(...) failed: Connection reset by peer
Add ssl[=any-cert] parameter to enable SSL connections
Using port 993 no longer automatically enables SSL.
If client gets disconnected with error set, log the error
This especially logs any SSL handshake errors.
Use io_add_istream() to fix hangs with SSL
Still missing some o_stream_nsend*()
Log an error if output=file writing failed
Don't log "Keyword not in PERMANENTFLAGS found" warning when EXAMINEing a mailbox
I'm not entirely sure why this warning is logged when SELECTing either.
tests: Ignore $HasAttachment and $HasNoAttachment flags by default
These may be added by Dovecot nowadays. Hopefully these flags also make it into a standard.
It could be useful to make these a command-line parameter to specify what keywords should be ignored, but didn't bother to do that yet.
Add support for secs=<secs>,<final secs>
Once <secs> is reached, imaptest waits a maximum of <final secs> for existing clients to disconnect before forcibly stopping.
Previously <final secs> was always equal to <secs>. The new default is 30 seconds, which makes more sense.
Fix crash at LMTP delivery timeout
LMTP connection was unreferenced too early.
Fix aborting LMTP deliveries at deinit.
tests: If test is skipped, LOGOUT all connections cleanly
This allows cleanly shutting down the IMAP server immediately after imaptest is run. Otherwise there could be some errors logged when some connection is still in the middle of logging in. This was happening especially because urlauth tests are the last tests to be run and they use multiple connections.
tests: Add support for !ifenv, !ifnenv, !else and !endif
This can be used to run the tests inside only if the environment variable exists. For example:
* foo stuff
The "foo" command is run only have HAVE_FOO environment exists.
Similarly !ifnenv HAVE_FOO block is run only if HAVE_FOO environment doesn't exist. !else can also be used.