Home:ALL Converter>Does sendto() bind ephemeral path to a unix domain socket automatically?

Does sendto() bind ephemeral path to a unix domain socket automatically?

Ask Time:2022-07-06T23:22:11         Author:QnA

Json Formatter

For a UDP socket, sendto() will attempt to bind an ephemeral port. For a Unix domain socket of datagram type, since there is no port concept, only a path address, does sendto() try to come up with a random path(which needs to be backed by a real file in the fs), or a random abstract path(such as '@blah'), and then binds to it?

I am asking because on my machine I see these datagram Unix socket pairs in 'ESTAB' state, and I wonder how are these endpoints identified if the address here is '*', which I guess is a NULL string?

# ss -xp | grep dev-log
u_dgr ESTAB 0      0              /run/systemd/journal/dev-log 15236             * 0      users:(("systemd-journal",pid=254,fd=3),("systemd",pid=1,fd=36))                                                                                                                                                                                                                                                                                 
# ss -xp | grep 15236
u_dgr ESTAB 0      0              /run/systemd/journal/dev-log 15236             * 0      users:(("systemd-journal",pid=254,fd=3),("systemd",pid=1,fd=36))                                                                                                                                                                                                                                                                                 
u_dgr ESTAB 0      0                                         * 19250             * 15236  users:(("dbus-daemon",pid=369,fd=14))                                                                                                                                                                                                                                                                                                            
u_dgr ESTAB 0      0                                         * 21686             * 15236  users:(("dbus-daemon",pid=701,fd=10)) 

                                                                                                                                                                                                                                                                                                       

A related question is, what are those numbers in place of port numbers mean, in unix domain socket world?

Author:QnA,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/72886141/does-sendto-bind-ephemeral-path-to-a-unix-domain-socket-automatically
yy