[libvirt] [PATCHv2 6/6] remote: remove special case for getting version
Matthias Bolte
matthias.bolte at googlemail.com
Wed May 18 19:34:22 UTC 2011
2011/5/18 Eric Blake <eblake at redhat.com>:
> The on-the-wire protocol is identical; XDR guarantees that
> both 'hyper' and 'unsigned hyper' are transmitted as 8 bytes.
>
> * src/remote/remote_protocol.x (remote_get_version_ret)
> (remote_get_lib_version_ret): Match public API.
> * daemon/remote_generator.pl: Drop special case.
> * src/remote_protocol-structs: Reflect updated type.
> ---
>
> v2: fix src/remote_protocol-structs
> v1: reviewed but no ACK at:
> https://www.redhat.com/archives/libvir-list/2011-May/msg00718.html
>
> daemon/remote_generator.pl | 23 +++++++++--------------
> src/remote/remote_protocol.x | 4 ++--
> src/remote_protocol-structs | 4 ++--
> 3 files changed, 13 insertions(+), 18 deletions(-)
>
> diff --git a/daemon/remote_generator.pl b/daemon/remote_generator.pl
> index a3b8421..1fc3b17 100755
> --- a/daemon/remote_generator.pl
> +++ b/daemon/remote_generator.pl
> @@ -995,19 +988,21 @@ elsif ($opt_k) {
> $single_ret_type = "int";
> } elsif ($ret_member =~ m/^unsigned hyper (\S+);/) {
> my $arg_name = $1;
> - push(@ret_list, "rv = ret.$arg_name;");
> - $single_ret_var = "unsigned long rv = 0";
> - $single_ret_type = "unsigned long";
> - } elsif ($ret_member =~ m/^hyper (\S+);/) {
> - my $arg_name = $1;
> -
> if ($call->{ProcName} =~ m/Get(Lib)?Version/) {
> push(@args_list, "unsigned long *$arg_name");
> push(@ret_list, "if ($arg_name) *$arg_name = ret.$arg_name;");
> push(@ret_list, "rv = 0;");
> $single_ret_var = "int rv = -1";
> $single_ret_type = "int";
> - } elsif ($call->{ProcName} eq "NodeGetFreeMemory") {
> + } else {
> + push(@ret_list, "rv = ret.$arg_name;");
> + $single_ret_var = "unsigned long rv = 0";
> + $single_ret_type = "unsigned long";
> + }
> + } elsif ($ret_member =~ m/^hyper (\S+);/) {
> + my $arg_name = $1;
> +
> + if ($call->{ProcName} eq "NodeGetFreeMemory") {
> push(@ret_list, "rv = ret.$arg_name;");
> $single_ret_var = "unsigned long long rv = 0";
> $single_ret_type = "unsigned long long";
I tested that a new virsh connected to an old libvirtd still gives the
right version number.
ACK.
Matthias
More information about the libvir-list
mailing list