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);
|
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) {
|
static bool server_read_pty(Packet *pkt) {
|
||||||
pkt->type = MSG_CONTENT;
|
pkt->type = MSG_CONTENT;
|
||||||
ssize_t len = read(server.pty, pkt->u.msg, sizeof(pkt->u.msg));
|
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 */
|
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) {
|
static void server_sigusr1_handler(int sig) {
|
||||||
int socket = server_create_socket(server.session_name);
|
int socket = server_create_socket(server.session_name);
|
||||||
if (socket != -1) {
|
if (socket != -1) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue