Use SUN_LEN() for length of UNIX domain addresses. This should fix problems
with connection to clients on libc5 machines.
This commit is contained in:
parent
0e376168c5
commit
0b3bf4b1d8
2 changed files with 2 additions and 2 deletions
|
@ -250,7 +250,7 @@ server_connect(void)
|
||||||
bzero(&sa, sizeof(sa));
|
bzero(&sa, sizeof(sa));
|
||||||
sa.sun_family = AF_UNIX;
|
sa.sun_family = AF_UNIX;
|
||||||
strcpy(sa.sun_path, server_path);
|
strcpy(sa.sun_path, server_path);
|
||||||
if (connect(server_fd, (struct sockaddr *) &sa, sizeof(struct sockaddr)) < 0)
|
if (connect(server_fd, (struct sockaddr *) &sa, SUN_LEN(&sa)) < 0)
|
||||||
die("Unable to connect to server control socket (%s): %m", server_path);
|
die("Unable to connect to server control socket (%s): %m", server_path);
|
||||||
if (fcntl(server_fd, F_SETFL, O_NONBLOCK) < 0)
|
if (fcntl(server_fd, F_SETFL, O_NONBLOCK) < 0)
|
||||||
die("fcntl: %m");
|
die("fcntl: %m");
|
||||||
|
|
|
@ -774,7 +774,7 @@ sk_open_unix(sock *s, char *name)
|
||||||
unlink(name);
|
unlink(name);
|
||||||
sa.sun_family = AF_UNIX;
|
sa.sun_family = AF_UNIX;
|
||||||
strcpy(sa.sun_path, name);
|
strcpy(sa.sun_path, name);
|
||||||
if (bind(fd, (struct sockaddr *) &sa, sizeof(sa)) < 0)
|
if (bind(fd, (struct sockaddr *) &sa, SUN_LEN(&sa)) < 0)
|
||||||
ERR("bind");
|
ERR("bind");
|
||||||
if (listen(fd, 8))
|
if (listen(fd, 8))
|
||||||
ERR("listen");
|
ERR("listen");
|
||||||
|
|
Loading…
Reference in a new issue