[CRIU] Re: [PATCH 1/9] protobuf: Convert sk_opts_entry to PB format

Pavel Emelyanov xemul at parallels.com
Thu Jul 19 01:34:42 EDT 2012


On 07/18/2012 04:13 PM, Pavel Emelyanov wrote:
> On 07/18/2012 12:21 PM, Cyrill Gorcunov wrote:
>>
>> This patch prepares the ground for further patches.
>> sk_opts_entry get converted to PB format but not
>> yet used anywhere in code. Also a few additional
>> pb_ helpers are added.
>>
>> Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
>> ---
>>  include/sockets.h      |    8 ++++++
>>  protobuf/Makefile      |    1 +
>>  protobuf/sk-opts.proto |    7 +++++
>>  sockets.c              |   65 ++++++++++++++++++++++++++++++++++++++++++++++++
>>  4 files changed, 81 insertions(+), 0 deletions(-)
>>  create mode 100644 protobuf/sk-opts.proto
>>
> 
>> +message sk_opts_entry {
>> +	required uint32		so_sndbuf	= 1;
>> +	required uint32		so_rcvbuf	= 2;
>> +
>> +	repeated uint64		so_snd_tmo	= 3;
>> +	repeated uint64		so_rcv_tmo	= 4;
>> +}
> 
> Here's what I thought. These times are effectively struct timeval
> date. Thus we _should_ declare these in proto file as
> 
> 	required uint64	so_snd_tmo_sec = 3;
> 	required uint64 so_snd_tmo_usec = 4;
> 	required uint64	so_rcv_tmo_sec = 5;
> 	required uint64 so_rcv_tmo_usec = 6;
> 
> Next. This:
> 
>> +int pb_dump_socket_opts(int sk, SkOptsEntry *soe)
>> +{
>> ...
>> +	size = pb_repeated_size(soe, so_snd_tmo);
>> +
>> ...
>> +	ret |= do_dump_opt(sk, SO_SNDTIMEO, soe->so_snd_tmo, size);
>> +	ret |= do_dump_opt(sk, SO_RCVTIMEO, soe->so_rcv_tmo, size);
>> ...
>> +}
> 
> is not what I asked for. You should not mix protobuf data types with C ones.
> Taking the above into account this (and the restore part which you didn't
> touch) will get properly fixed like this:
> 
> 	struct timeval snd;
> 
> 	snd.tv_sec = soe->so_snd_tmo_sec;
> 	snd.tv_usec = soe->so_snd_tmo_usec;
> 
> 	ret |= do_restore_opt(sk, SO_SNDTIMEO, &snd, sizeof(snd));
> 
> Please.

Never mind, it's easy, I did it myself. Patches 1-3 applied.


More information about the CRIU mailing list