forked from github/abduco
Move server_accept_client function around
This commit is contained in:
parent
bb7e4e77f4
commit
e48ea73ce0
42
server.c
42
server.c
|
|
@ -75,27 +75,6 @@ static int server_set_socket_non_blocking(int sock) {
|
|||
return fcntl(sock, F_SETFL, flags | O_NONBLOCK);
|
||||
}
|
||||
|
||||
static Client *server_accept_client(void) {
|
||||
int newfd = accept(server.socket, NULL, NULL);
|
||||
if (newfd == -1 || server_set_socket_non_blocking(newfd) == -1)
|
||||
goto error;
|
||||
Client *c = client_malloc(newfd);
|
||||
if (!c)
|
||||
goto error;
|
||||
if (!server.clients)
|
||||
server_mark_socket_exec(true, true);
|
||||
c->socket = newfd;
|
||||
c->state = STATE_CONNECTED;
|
||||
c->next = server.clients;
|
||||
server.clients = c;
|
||||
server.read_pty = true;
|
||||
return c;
|
||||
error:
|
||||
if (newfd != -1)
|
||||
close(newfd);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static bool server_read_pty(Packet *pkt) {
|
||||
pkt->type = MSG_CONTENT;
|
||||
ssize_t len = read(server.pty, pkt->u.msg, sizeof(pkt->u.msg));
|
||||
|
|
@ -157,6 +136,27 @@ static void server_sigterm_handler(int sig) {
|
|||
exit(EXIT_FAILURE); /* invoke atexit handler */
|
||||
}
|
||||
|
||||
static Client *server_accept_client(void) {
|
||||
int newfd = accept(server.socket, NULL, NULL);
|
||||
if (newfd == -1 || server_set_socket_non_blocking(newfd) == -1)
|
||||
goto error;
|
||||
Client *c = client_malloc(newfd);
|
||||
if (!c)
|
||||
goto error;
|
||||
if (!server.clients)
|
||||
server_mark_socket_exec(true, true);
|
||||
c->socket = newfd;
|
||||
c->state = STATE_CONNECTED;
|
||||
c->next = server.clients;
|
||||
server.clients = c;
|
||||
server.read_pty = true;
|
||||
return c;
|
||||
error:
|
||||
if (newfd != -1)
|
||||
close(newfd);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void server_sigusr1_handler(int sig) {
|
||||
int socket = server_create_socket(server.session_name);
|
||||
if (socket != -1) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue