mirror of https://github.com/martanne/abduco
Fix -n mode: do not wait for clients to connect
This commit is contained in:
parent
3e4485642b
commit
a7e13911c5
3
abduco.c
3
abduco.c
|
|
@ -104,6 +104,7 @@ typedef struct {
|
||||||
volatile sig_atomic_t running;
|
volatile sig_atomic_t running;
|
||||||
const char *name;
|
const char *name;
|
||||||
const char *session_name;
|
const char *session_name;
|
||||||
|
bool read_pty;
|
||||||
} Server;
|
} Server;
|
||||||
|
|
||||||
static Server server = { .running = true, .exit_status = -1 };
|
static Server server = { .running = true, .exit_status = -1 };
|
||||||
|
|
@ -465,6 +466,8 @@ int main(int argc, char *argv[]) {
|
||||||
has_term = true;
|
has_term = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
server.read_pty = (action == 'n');
|
||||||
|
|
||||||
switch (action) {
|
switch (action) {
|
||||||
redo:
|
redo:
|
||||||
case 'n':
|
case 'n':
|
||||||
|
|
|
||||||
5
server.c
5
server.c
|
|
@ -70,6 +70,7 @@ static Client *server_accept_client() {
|
||||||
c->state = STATE_CONNECTED;
|
c->state = STATE_CONNECTED;
|
||||||
c->next = server.clients;
|
c->next = server.clients;
|
||||||
server.clients = c;
|
server.clients = c;
|
||||||
|
server.read_pty = true;
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -151,6 +152,8 @@ static void server_mainloop() {
|
||||||
FD_ZERO(&new_writefds);
|
FD_ZERO(&new_writefds);
|
||||||
FD_SET(server.socket, &new_readfds);
|
FD_SET(server.socket, &new_readfds);
|
||||||
int new_fdmax = server.socket;
|
int new_fdmax = server.socket;
|
||||||
|
if (server.read_pty)
|
||||||
|
FD_SET_MAX(server.pty, &new_readfds, new_fdmax);
|
||||||
Packet *exit_pkt = NULL;
|
Packet *exit_pkt = NULL;
|
||||||
|
|
||||||
while (!exit_pkt) {
|
while (!exit_pkt) {
|
||||||
|
|
@ -243,7 +246,7 @@ static void server_mainloop() {
|
||||||
c = c->next;
|
c = c->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (server.running)
|
if (server.running && server.read_pty)
|
||||||
FD_SET_MAX(server.pty, &new_readfds, new_fdmax);
|
FD_SET_MAX(server.pty, &new_readfds, new_fdmax);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue