Skip to content

Conversation

@mehnazyunus
Copy link
Member

@mehnazyunus mehnazyunus commented Oct 7, 2025

Release Summary:

Resolved issues:

n/a

Description of changes:

Creates a sender and receiver for Unix domain sockets. This handles a message along with a file descriptor as ancillary data. This functionality is required for reusing dcQUIC handshakes across application processes.

Call-outs:

Testing:

Added unit test.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@mehnazyunus mehnazyunus marked this pull request as draft October 7, 2025 16:50
@boquan-fang boquan-fang marked this pull request as ready for review October 7, 2025 20:49
@mehnazyunus mehnazyunus marked this pull request as draft October 7, 2025 21:17
@mehnazyunus mehnazyunus marked this pull request as ready for review October 8, 2025 02:05
@Mark-Simulacrum
Copy link
Collaborator

Looks like as of #2848 we'll need someone from @aws/s2n-core to review as well, requested @maddeleine for now.

@Mark-Simulacrum Mark-Simulacrum enabled auto-merge (squash) October 10, 2025 19:33
Ok(()) => {
return Ok(());
}
Err(nix::Error::EAGAIN) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aren't you also going to get partial sends that you might need to handle? I don't see where you're checking the number of bytes sent.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm pretty sure datagram sockets are either 'send everything' or 'send nothing' - but it would be good to confirm and probably add an assertion that any returned size matches what we expected to send.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah that would make sense, although eh, confirming that is kind of a pain. I suppose if this is between two processes I'm not sure a partial send could even occur.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This stack overflow answer seems to imply that yes, if you can't fully send with a datagram socket, you get an error instead of a partial send.

@Mark-Simulacrum Mark-Simulacrum merged commit 5240fd6 into aws:main Oct 10, 2025
266 of 269 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants