1 Protocol spoken by the submit server
2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 (1) Server sends "+OK\n" or "+TLS\n"
6 (2) TLS is started if requested
8 (3) Client sends hello, server replies
10 (4) Loop: client sends command, server replies
12 Except for the initial "+xxx" message, all requests and replies are simple objects
13 as handled by the Sherlock library. Each line starts with a single-character
14 attribute name followed by the value of the attribute, the object is terminated
15 by an empty line. Parentheses can delimit nested blocks.
17 Every reply contains either a "+" or "-" attribute denoting status (OK/failed).
18 The value of the attribute is a message for the user, which should not be
19 interpreted in any way.