version 1.179, 2018/02/22 10:54:51 |
version 1.180, 2018/03/08 08:09:10 |
|
|
{ |
{ |
struct client *c; |
struct client *c; |
u_int items; |
u_int items; |
|
struct job *job; |
|
|
do { |
do { |
items = cmdq_next(NULL); |
items = cmdq_next(NULL); |
|
|
if (!TAILQ_EMPTY(&clients)) |
if (!TAILQ_EMPTY(&clients)) |
return (0); |
return (0); |
|
|
|
LIST_FOREACH(job, &all_jobs, entry) { |
|
if ((~job->flags & JOB_NOWAIT) && job->state == JOB_RUNNING) |
|
return (0); |
|
} |
|
|
return (1); |
return (1); |
} |
} |
|
|
|
|
TAILQ_FOREACH_SAFE(c, &clients, entry, c1) { |
TAILQ_FOREACH_SAFE(c, &clients, entry, c1) { |
if (c->flags & CLIENT_SUSPENDED) |
if (c->flags & CLIENT_SUSPENDED) |
server_client_lost(c); |
server_client_lost(c); |
else |
else { |
|
if (c->flags & CLIENT_ATTACHED) |
|
notify_client("client-detached", c); |
proc_send(c->peer, MSG_SHUTDOWN, -1, NULL, 0); |
proc_send(c->peer, MSG_SHUTDOWN, -1, NULL, 0); |
|
} |
c->session = NULL; |
c->session = NULL; |
} |
} |
|
|