Protocol buffer schemas for Halon
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
README.md
hsh.proto
package.json
queued.proto
rated.proto
smtpd.proto

README.md

Protobuf files for talking to Halon

These protobuf files are for communication with the Halon MTA daemons over the control (Unix domain) socket.

All requests begin with one "command identifier" (ASCII char, assigned from a to z..). In requests with a body, it's followed by a binary host packed (LE) unsigned 64 bit integer telling the size of the protobuf data. The command identifiers are alphabetically chosen so make no assumptions about their individual meaning.

The reply begins with either

  • + followed by data, for a successful command (with optionally response body)
  • E followed by data, for an error

Both + and E will send a binary host (LE) packed unsigned 64 bit integer telling the size of either the response or the error (string) that follows.

> request
< possible response1
< possible response2...

smtpd.proto

Blue/Green deployments

Deploy green config

> 'a' <size> ConfigGreenDeployRequest
< '+' <0>
< 'E' <size> <message>

Green config status

> 'b'
< '+' <size> [ConfigGreenStatusResponse]

Cancel green config

> 'c'
< '+' <0>

HSL

Get break point (non-blocking)

> 'd' <size> HSLBreakPointRequest
< '+' <size> [HSLBreakPointResponse]

Get cache [] data

> 'g'
< '+' <size> [HSLCacheResponse]

Clear cache [] data

> 'h' <size> HSLCacheClearRequest
< '+' <size> HSLCacheClearResponse

Reload configuration (smtpd-app.conf)

> 'r'
< '+' <0>
< 'E' <size> <message>

Reload DNS servers

Calls res_init()

> 'k'
< '+' <0>

Get license users

> 'n'
< '+' <size> [UsersResponse]

queued.proto

Blue/Green deployments

Deploy green config

> 'a' <size> ConfigGreenDeployRequest
< '+' <0>
< 'E' <size> <message>

Cancel green config

> 'c'
< '+' <0>

HSL

Get break point (non-blocking)

> 'd' <size> HSLBreakPointRequest
< '+' <size> [HSLBreakPointResponse]

Get cache [] data

> 'g'
< '+' <size> [HSLCacheResponse]

Clear cache [] data

> 'h' <size> HSLCacheClearRequest
< '+' <size> HSLCacheClearResponse

Discard pre-fetched queue

Needed if actions are taken on the queue database

> 'l'
< '+' <0>

Get active queue

Messages that are currenty being processed by the queue worker

> 'm'
< '+' <size> ActiveQueueResponse

Reload configuration (queued-app.conf)

> 'r'
< '+' <0>
< 'E' <size> <message>

Reload DNS servers

Calls res_init()

> 'k'
< '+' <0>

rated.proto

Get rates

> 'i' <size> HSLRateRequest
< '+' <size> HSLRateResponse

Clear rates

> 'j' <size> HSLRateClearRequest
< '+' <size> HSLRateClearResponse

Reload configuration

> 'r'
< '+' <0>
< 'E' <size> <message>

hsh.proto

HSL

Get break point (non-blocking)

> 'd' <size> HSLBreakPointRequest
< '+' <size> HSLBreakPointResponse

Wait for break point (blocking)

> 'e' <size> HSLBreakPointRequest
< '+' <size> HSLBreakPointResponse

Continue from previous break point

> 'c'
< '+' <0>