43 #include <sys/socket.h>
62 struct sockaddr_un sun;
63 ssize_t len = strlen(addr);
69 if (len >=
sizeof(sun.sun_path))
70 msg_fatal(
"unix-domain name too long: %s", addr);
71 memset((
void *) &sun, 0,
sizeof(sun));
72 sun.sun_family = AF_UNIX;
74 sun.sun_len = len + 1;
76 memcpy(sun.sun_path, addr, len + 1);
81 if ((sock = socket(AF_UNIX, SOCK_STREAM, 0)) < 0)
89 if (
timed_connect(sock, (
struct sockaddr *) &sun,
sizeof(sun), timeout) < 0) {
103 if (
sane_connect(sock, (
struct sockaddr *) &sun,
sizeof(sun)) < 0
104 && errno != EINPROGRESS) {
int sane_connect(int sock, struct sockaddr *sa, SOCKADDR_SIZE len)
int unix_connect(const char *addr, int block_mode, int timeout)
int timed_connect(int sock, struct sockaddr *sa, int len, int timeout)
NORETURN msg_fatal(const char *fmt,...)
int non_blocking(int, int)