version 1.4, 2009/07/22 21:58:56 |
version 1.5, 2009/07/23 20:24:27 |
|
|
sigcont = 0; |
sigcont = 0; |
} |
} |
|
|
switch (client_msg_dispatch(cctx, &error)) { |
switch (client_msg_dispatch(cctx)) { |
case -1: |
case -1: |
goto out; |
goto out; |
case 0: |
case 0: |
|
|
fatal("poll failed"); |
fatal("poll failed"); |
} |
} |
|
|
if (buffer_poll(&pfd, cctx->srv_in, cctx->srv_out) != 0) |
if (buffer_poll(&pfd, cctx->srv_in, cctx->srv_out) != 0) { |
goto server_dead; |
cctx->exittype = CCTX_DIED; |
|
break; |
|
} |
} |
} |
|
|
out: |
out: |
|
|
printf("[terminated]\n"); |
printf("[terminated]\n"); |
return (1); |
return (1); |
} |
} |
|
switch (cctx->exittype) { |
if (cctx->flags & CCTX_SHUTDOWN) { |
case CCTX_DIED: |
|
printf("[lost server]\n"); |
|
return (0); |
|
case CCTX_SHUTDOWN: |
printf("[server exited]\n"); |
printf("[server exited]\n"); |
return (0); |
return (0); |
} |
case CCTX_EXIT: |
|
|
if (cctx->flags & CCTX_EXIT) { |
|
printf("[exited]\n"); |
printf("[exited]\n"); |
return (0); |
return (0); |
} |
case CCTX_DETACH: |
|
|
if (cctx->flags & CCTX_DETACH) { |
|
printf("[detached]\n"); |
printf("[detached]\n"); |
return (0); |
return (0); |
|
default: |
|
printf("[error: %s]\n", cctx->errstr); |
|
return (1); |
} |
} |
|
|
printf("[error: %s]\n", error); |
|
return (1); |
|
|
|
server_dead: |
|
printf("[lost server]\n"); |
|
return (0); |
|
} |
} |
|
|
void |
void |