4.1.1. Control sockets

The server programs have a control socket (Unix domain) as specified by environment.controlsocket.path.

All requests begin with a version (two bytes, ASCII char 5 and 5 for version ‘5.5’), and a command identifier (one byte, ASCII char). The command identifiers are assigned in alphabetical order. In requests with a Protobuf request body, the command identifier is followed by a binary host packed (LE) unsigned 64 bit integer telling the size of the request body.

The response begins with one byte indicating the status; + for success, or E for error. It is followed by a binary host (LE) packed unsigned 64 bit integer telling the size the response data that follows. In the success case, the data is a Protobuf response body. In the error case, it is an ASCII string.