Don't crash when looking at NULL clients; also redraw everything on status change.

This commit is contained in:
Nicholas Marriott
2008-06-04 05:47:46 +00:00
parent 811e75da52
commit 031be1fc72
2 changed files with 32 additions and 23 deletions

View File

@ -1,4 +1,4 @@
/* $Id: server.c,v 1.50 2008-06-04 05:40:35 nicm Exp $ */
/* $Id: server.c,v 1.51 2008-06-04 05:47:46 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -296,16 +296,15 @@ server_handle_clients(struct pollfd **pfd)
for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
c = ARRAY_ITEM(&clients, i);
/* XXX REDRAW FLAGS */
if (c->session != NULL && options_get_number(
&c->session->options, "status-lines") != 0) {
if (clock_gettime(CLOCK_REALTIME, &now) != 0)
fatal("clock_gettime");
if (timespeccmp(&now, &c->status_ts, >))
server_status_client(c);
}
if (c != NULL) {
if (c->session != NULL && options_get_number(
&c->session->options, "status-lines") != 0) {
if (clock_gettime(CLOCK_REALTIME, &now) != 0)
fatal("clock_gettime");
if (timespeccmp(&now, &c->status_ts, >))
server_status_client(c);
}
log_debug("testing client %d (%d)", (*pfd)->fd, c->fd);
if (buffer_poll(*pfd, c->in, c->out) != 0) {
server_lost_client(c);