Expand description
§Miltr Common
Single source of truth for miltr-server
and miltr-client
implementations.
The milter protocol basically works as follows:
- A client establishes a connection to a server, negotiating Options
via both sending
optneg::OptNeg
packages. - The client send a
commands::Command
for each SMTP command it receives - The server responds to each of those commands with an
actions::Action
- After
commands::EndOfBody
the server responds with a list ofmodifications::ModificationAction
to instruct the client what to change in the processed mail.
This is what’s contained within the actions
, commands
, modifications
and optneg
module.
As all packages share some logic on how to be (de-)serialized, modules
encoding
and decoding
contain the implementation of that.
All parsing is based on splitting bytes::BytesMut
into smaller parts.
Modules§
- actions
- Control flow (re-)actions to
Commands
. - commands
- Containing data to be taken
Action
s on. - decoding
- Implement what components may be parsed from the wire
- encoding
- Implement what components may write to the wire
- modifications
- Response containing modified data
- optneg
- Contains anything related to option negotiation between server and client
Structs§
- Invalid
Data - Error when receiving bogus data from the other end
- NotEnough
Data - Raised when definitely more data is necessary
Enums§
- Protocol
Error - Encapsulating error for the different de-/encoding problems