version 1.12, 2005/02/22 23:17:42 |
version 1.13, 2005/03/10 22:15:03 |
|
|
int |
int |
cvsd_sock_open(void) |
cvsd_sock_open(void) |
{ |
{ |
|
mode_t old_umask; |
|
|
if (cvsd_sock >= 0) |
if (cvsd_sock >= 0) |
cvsd_sock_close(); |
cvsd_sock_close(); |
|
|
|
|
return (-1); |
return (-1); |
} |
} |
|
|
|
old_umask = umask(S_IXUSR|S_IXGRP|S_IWOTH|S_IROTH|S_IXOTH); |
if (bind(cvsd_sock, (struct sockaddr *)&cvsd_sun, |
if (bind(cvsd_sock, (struct sockaddr *)&cvsd_sun, |
SUN_LEN(&cvsd_sun)) == -1) { |
SUN_LEN(&cvsd_sun)) == -1) { |
cvs_log(LP_ERRNO, "failed to bind local socket to `%s'", |
cvs_log(LP_ERRNO, "failed to bind local socket to `%s'", |
cvsd_sock_path); |
cvsd_sock_path); |
(void)close(cvsd_sock); |
(void)close(cvsd_sock); |
|
umask(old_umask); |
return (-1); |
return (-1); |
} |
} |
|
umask(old_umask); |
|
|
(void)listen(cvsd_sock, 10); |
(void)listen(cvsd_sock, 10); |
|
|