version 1.74, 2009/11/05 08:50:32 |
version 1.75, 2009/11/11 08:00:42 |
|
|
int server_should_shutdown(void); |
int server_should_shutdown(void); |
void server_send_shutdown(void); |
void server_send_shutdown(void); |
void server_clean_dead(void); |
void server_clean_dead(void); |
int server_update_socket(void); |
|
void server_accept_callback(int, short, void *); |
void server_accept_callback(int, short, void *); |
void server_signal_callback(int, short, void *); |
void server_signal_callback(int, short, void *); |
void server_child_signal(void); |
void server_child_signal(void); |
|
|
if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) |
if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) |
fatal("fcntl failed"); |
fatal("fcntl failed"); |
|
|
|
server_update_socket(); |
|
|
return (fd); |
return (fd); |
} |
} |
|
|
|
|
server_loop(void) |
server_loop(void) |
{ |
{ |
while (!server_should_shutdown()) { |
while (!server_should_shutdown()) { |
server_update_socket(); |
|
|
|
event_loop(EVLOOP_ONCE); |
event_loop(EVLOOP_ONCE); |
|
|
server_window_loop(); |
server_window_loop(); |
|
|
} |
} |
|
|
/* Update socket execute permissions based on whether sessions are attached. */ |
/* Update socket execute permissions based on whether sessions are attached. */ |
int |
void |
server_update_socket(void) |
server_update_socket(void) |
{ |
{ |
struct session *s; |
struct session *s; |
|
|
else |
else |
chmod(socket_path, S_IRUSR|S_IWUSR); |
chmod(socket_path, S_IRUSR|S_IWUSR); |
} |
} |
|
|
return (n); |
|
} |
} |
|
|
/* Callback for server socket. */ |
/* Callback for server socket. */ |