encode_connect_link

Function encode_connect_link 

Source
pub fn encode_connect_link(
    out: &mut [u8],
    callsign: &Callsign,
    client_module: Module,
    reflector_module: Module,
    reflector_callsign: &Callsign,
    gateway_type: GatewayType,
) -> Result<usize, EncodeError>
Expand description

Encode a 519-byte LINK request.

Layout per ircDDBGateway/Common/ConnectData.cpp:337-363 (getDCSData CT_LINK1):

  • [0..7]: first 7 chars of the client repeater callsign
  • [7]: space padding (from memset(data, ' ', 8))
  • [8]: client module letter (8th char of the repeater)
  • [9]: reflector module letter
  • [10]: 0x00
  • [11..18]: first 7 chars of the reflector callsign
  • [18]: space padding (from memset(data + 11, ' ', 8))
  • [19..519]: 500-byte HTML banner identifying the gateway type, zero-padded. The receiving reflector logs this banner but does not parse it — any short ASCII payload that fits in 500 bytes is valid.

§Errors

Returns EncodeError::BufferTooSmall if out.len() < 519.

§See also

ircDDBGateway/Common/ConnectData.cpp:337-363 (getDCSData CT_LINK1 branch) for the reference encoder this function mirrors.