Skip to main content

send_forwarded_record

Function send_forwarded_record 

Source
pub fn send_forwarded_record(
    socket: c_int,
    target: &str,
    record_suffix: &str,
    index: u64,
    message: Arguments<'_>,
)
Expand description

Sends one record as one [forwarded_line] message on socket, a message-oriented socket (such as one end of a SOCK_SEQPACKET pair) that carries nothing but records, from which Hermit’s verification moves them into the run’s log.

It uses one raw send with MSG_NOSIGNAL, so a socket whose reader has gone never raises SIGPIPE in the guest. A record that cannot be sent (too large for the socket, or any other error) is replaced by a short FORWARDING_LOSS_NOTICE message, so the loss is visible rather than silent; if that notice cannot be sent either, a notice precedes the next message that can. The calling thread’s errno is preserved.