[libvirt] [PATCH 20/21] gendispatch: Support modern listing of more types

Ján Tomko jtomko at redhat.com
Thu Mar 10 14:26:04 UTC 2016


On Thu, Mar 10, 2016 at 05:54:09AM +0100, Martin Kletzander wrote:
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
>  src/rpc/gendispatch.pl | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/src/rpc/gendispatch.pl b/src/rpc/gendispatch.pl
> index 21f16d19bbed..5e800ab05e41 100755
> --- a/src/rpc/gendispatch.pl
> +++ b/src/rpc/gendispatch.pl
> @@ -649,7 +649,7 @@ elsif ($mode eq "server") {
>                          if (!$modern_ret_as_list) {
>                              push(@ret_list, "ret->$3 = tmp.$3;");
>                          }
> -                    } elsif ($ret_member =~ m/admin_nonnull_(server) (\S+)<(\S+)>;/) {
> +                    } elsif ($ret_member =~ m/(?:admin|remote)_nonnull_(secret|nwfilter|node_device|interface|network|storage_vol|storage_pool|domain_snapshot|domain|server) (\S+)<(\S+)>;/) {
>                          $modern_ret_struct_name = $1;
>                          $single_ret_list_error_msg_type = $1;
>                          $single_ret_list_name = $2;
> @@ -1401,7 +1401,7 @@ elsif ($mode eq "client") {
>                          }
> 
>                          push(@ret_list, "memcpy(result->$3, ret.$3, sizeof(result->$3));");
> -                    } elsif ($ret_member =~ m/admin_nonnull_(server) (\S+)<(\S+)>;/) {
> +                    } elsif ($ret_member =~ m/(?:admin|remote)_nonnull_(secret|nwfilter|node_device|interface|network|storage_vol|storage_pool|domain_snapshot|domain|server) (\S+)<(\S+)>;/) {
>                          my $proc_name = name_to_TypeName($1);
> 
>                          if ($structprefix eq "admin") {

These lines are way too long. I don't know whether splitting the regex
over multiple lines with /x or putting parts of it in a separate
variable is the preferred way.

> @@ -1413,6 +1413,7 @@ elsif ($mode eq "client") {
>                          $modern_ret_struct_name = $1;
>                          $single_ret_list_name = $2;
>                          $single_ret_list_max_var = $3;
> +                        $single_ret_list_error_msg_type = $1;
> 
>                          $modern_ret_as_list = 1;
>                      } elsif ($ret_member =~ m/<\S+>;/ or $ret_member =~ m/\[\S+\];/) {

This hunk should be in the commit adding the other assignments.

ACK minus the hunk error_msg hunk.

Jan




More information about the libvir-list mailing list