[CRIU] [PATCH 6/9] service: add cr_errno to criu_resp and send cr_errno in it

Pavel Emelyanov xemul at parallels.com
Fri Dec 19 08:00:40 PST 2014


On 12/11/2014 11:55 PM, Ruslan Kuprieiev wrote:
> Signed-off-by: Ruslan Kuprieiev <kupruser at gmail.com>
> ---
>  cr-service.c       | 9 ++++++++-
>  protobuf/rpc.proto | 2 ++
>  2 files changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/cr-service.c b/cr-service.c
> index 99cba06..9ad7769 100644
> --- a/cr-service.c
> +++ b/cr-service.c
> @@ -88,7 +88,8 @@ static void send_criu_err(int sk, char *msg)
>  
>  	resp.type = CRIU_REQ_TYPE__EMPTY;
>  	resp.success = false;
> -	/* XXX -- add optional error code to CriuResp */
> +	resp.has_cr_errno = true;

I guess we only need to report we have an errno when it's != 0.
other wise we kinda don't have one :)

> +	resp.cr_errno = get_cr_errno();
>  
>  	send_criu_msg(sk, &resp);
>  }
> @@ -100,6 +101,8 @@ int send_criu_dump_resp(int socket_fd, bool success, bool restored)
>  
>  	msg.type = CRIU_REQ_TYPE__DUMP;
>  	msg.success = success;
> +	msg.has_cr_errno = true;
> +	msg.cr_errno = get_cr_errno();
>  	msg.dump = &resp;
>  
>  	resp.has_restored = true;
> @@ -114,6 +117,8 @@ static int send_criu_pre_dump_resp(int socket_fd, bool success)
>  
>  	msg.type = CRIU_REQ_TYPE__PRE_DUMP;
>  	msg.success = success;
> +	msg.has_cr_errno = true;
> +	msg.cr_errno = get_cr_errno();
>  
>  	return send_criu_msg(socket_fd, &msg);
>  }
> @@ -125,6 +130,8 @@ int send_criu_restore_resp(int socket_fd, bool success, int pid)
>  
>  	msg.type = CRIU_REQ_TYPE__RESTORE;
>  	msg.success = success;
> +	msg.has_cr_errno = true;
> +	msg.cr_errno = get_cr_errno();
>  	msg.restore = &resp;
>  
>  	resp.pid = pid;
> diff --git a/protobuf/rpc.proto b/protobuf/rpc.proto
> index d511512..ed76d4f 100644
> --- a/protobuf/rpc.proto
> +++ b/protobuf/rpc.proto
> @@ -116,4 +116,6 @@ message criu_resp {
>  	optional criu_restore_resp	restore		= 4;
>  	optional criu_notify		notify		= 5;
>  	optional criu_page_server_info	ps		= 6;
> +
> +	optional int32			cr_errno	= 7;
>  }
> 



More information about the CRIU mailing list