The message-of-the-day (MOTD) extension is a lightweight, one-way communication channel from server to client. During the Wisp v2 handshake the server encodes an arbitrary UTF-8 string into the extension payload. After the mux is created, the client can read that string from the negotiated extension list. The extension carries no client payload; only the server sends data.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/MercuryWorkshop/epoxy-tls/llms.txt
Use this file to discover all available pages before exploring further.
Extension details
| Field | Value |
|---|---|
| Extension ID | 0x04 |
| Extension struct | MotdProtocolExtension |
| Builder enum | MotdProtocolExtensionBuilder |
| Feature gate | none (always available) |
| Direction | Server → Client only |
Server setup
Use theServer variant of MotdProtocolExtensionBuilder and pass the MOTD string.
MotdProtocolExtensionBuilder::new_server(motd) is an equivalent constructor that may be more readable in longer builder chains.Client setup
Use theClient variant to tell the library to capture the MOTD string during the handshake. No credentials or configuration are needed.
Reading the MOTD after connection
AfterClientMux::new completes, call mux.get_extensions().find_extension::<MotdProtocolExtension>(). The motd field on the returned struct contains the server’s message. On the client side motd is populated from the wire; on the server side it remains an empty string.
Full example (from simple-wisp-client)
The snippet below is adapted fromsimple-wisp-client and shows how MOTD parsing integrates with a full connection setup that may also enable UDP and authentication extensions.
epoxy-server MOTD configuration
When using epoxy-server, the MOTD is set to the server’s version string by default. You can override it via themotd_extension key in the server configuration file. Set motd_extension to an empty string to disable the extension entirely.