mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-30 13:58:34 +00:00
service: Do one exit point from cr_service_work
That's preparation to "several requests per connection" patch. Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
parent
76017ec5a4
commit
eed38acc72
21
cr-service.c
21
cr-service.c
@ -530,6 +530,7 @@ out:
|
|||||||
|
|
||||||
int cr_service_work(int sk)
|
int cr_service_work(int sk)
|
||||||
{
|
{
|
||||||
|
int ret = -1;
|
||||||
CriuReq *msg = 0;
|
CriuReq *msg = 0;
|
||||||
|
|
||||||
if (recv_criu_msg(sk, &msg) == -1) {
|
if (recv_criu_msg(sk, &msg) == -1) {
|
||||||
@ -539,23 +540,27 @@ int cr_service_work(int sk)
|
|||||||
|
|
||||||
switch (msg->type) {
|
switch (msg->type) {
|
||||||
case CRIU_REQ_TYPE__DUMP:
|
case CRIU_REQ_TYPE__DUMP:
|
||||||
return dump_using_req(sk, msg->opts);
|
ret = dump_using_req(sk, msg->opts);
|
||||||
|
break;
|
||||||
case CRIU_REQ_TYPE__RESTORE:
|
case CRIU_REQ_TYPE__RESTORE:
|
||||||
return restore_using_req(sk, msg->opts);
|
ret = restore_using_req(sk, msg->opts);
|
||||||
|
break;
|
||||||
case CRIU_REQ_TYPE__CHECK:
|
case CRIU_REQ_TYPE__CHECK:
|
||||||
return check(sk);
|
ret = check(sk);
|
||||||
|
break;
|
||||||
case CRIU_REQ_TYPE__PRE_DUMP:
|
case CRIU_REQ_TYPE__PRE_DUMP:
|
||||||
return pre_dump_loop(sk, msg);
|
ret = pre_dump_loop(sk, msg);
|
||||||
|
break;
|
||||||
case CRIU_REQ_TYPE__PAGE_SERVER:
|
case CRIU_REQ_TYPE__PAGE_SERVER:
|
||||||
return start_page_server_req(sk, msg->opts);
|
ret = start_page_server_req(sk, msg->opts);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
send_criu_err(sk, "Invalid req");
|
send_criu_err(sk, "Invalid req");
|
||||||
goto err;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
err:
|
err:
|
||||||
return -1;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void reap_worker(int signo)
|
static void reap_worker(int signo)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user