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::OptNegpackages. - The client send a
commands::Commandfor each SMTP command it receives - The server responds to each of those commands with an
actions::Action - After
commands::EndOfBodythe server responds with a list ofmodifications::ModificationActionto 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
Actions 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