Fix -n mode: do not wait for clients to connect

This commit is contained in:
Marc André Tanner 2014-06-17 23:36:47 +02:00
parent 3e4485642b
commit a7e13911c5
2 changed files with 7 additions and 1 deletions

View File

@ -104,6 +104,7 @@ typedef struct {
volatile sig_atomic_t running;
const char *name;
const char *session_name;
bool read_pty;
} Server;
static Server server = { .running = true, .exit_status = -1 };
@ -465,6 +466,8 @@ int main(int argc, char *argv[]) {
has_term = true;
}
server.read_pty = (action == 'n');
switch (action) {
redo:
case 'n':

View File

@ -70,6 +70,7 @@ static Client *server_accept_client() {
c->state = STATE_CONNECTED;
c->next = server.clients;
server.clients = c;
server.read_pty = true;
return c;
}
@ -151,6 +152,8 @@ static void server_mainloop() {
FD_ZERO(&new_writefds);
FD_SET(server.socket, &new_readfds);
int new_fdmax = server.socket;
if (server.read_pty)
FD_SET_MAX(server.pty, &new_readfds, new_fdmax);
Packet *exit_pkt = NULL;
while (!exit_pkt) {
@ -243,7 +246,7 @@ static void server_mainloop() {
c = c->next;
}
if (server.running)
if (server.running && server.read_pty)
FD_SET_MAX(server.pty, &new_readfds, new_fdmax);
}