promise/plugin: Add check_socket_listening promise
This promise generalizes the check_port_listening promise to include AF_UNIX sockets in addition to AF_INET and AF_INET6 host/port sockets.
The socket family and address is deduced from the set of arguments:
-
host
&port
: AF_INET or AF_INET6 -
pathname
: filesystem pathname address for AF_UNIX -
abstract
: '\0' is prefixed to build an abstract AF_UNIX address
All other combinations of arguments are forbidden.
The promise creates a socket accordingly and attempts to connect to the provided address. The promise fails if the connection fails.
The check_port_listening promise now inherits from this implementation.