pack_sockaddr_un#
Build a packed sockaddr_un from a filesystem path, for use with Unix-domain sockets.
Synopsis#
my $sun = pack_sockaddr_un($path);
What you get back#
A fixed-size byte string matching the platform’s struct sockaddr_un, ready for bind or connect against an
AF_UNIX / AF_LOCAL socket.
Examples#
socket(my $sock, AF_UNIX, SOCK_STREAM, 0) or die $!;
connect($sock, pack_sockaddr_un("/tmp/app.sock")) or die $!;
## Abstract Linux namespace: first byte is NUL.
my $sun = pack_sockaddr_un("\0app.mysvc");
Edge cases#
Paths longer than 107 bytes are truncated to fit
sun_path.No explicit trailing NUL is appended by the caller; the struct is zero-initialised and the path is copied in.
Differences from upstream#
Fully compatible with upstream Socket.
See also#
unpack_sockaddr_un— reverse direction.sockaddr_family— read the family byte from an unknown sockaddr.