X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=generator%2Fgenerator_xdr.ml;h=5714c803fbbcfbef30a48ef9847d492581bb96cf;hb=f341624668d10c58e2899354cef1e11c4175992a;hp=ca114c5921ec2d430aede04cf78a97023a37408a;hpb=3aa8182c3cc478bf723205f1a4dd84e160768448;p=libguestfs.git diff --git a/generator/generator_xdr.ml b/generator/generator_xdr.ml index ca114c5..5714c80 100644 --- a/generator/generator_xdr.ml +++ b/generator/generator_xdr.ml @@ -65,12 +65,14 @@ let generate_xdr () = List.iter ( fun (shortname, (ret, args, optargs), _, _, _, _, _) -> - if optargs <> [] then - failwithf "optional arguments not supported in XDR yet"; - let name = "guestfs_" ^ shortname in - (match args with + (* Ordinary arguments and optional arguments are concatenated + * together in the XDR args struct. The optargs_bitmask field + * in the header controls which optional arguments are + * meaningful. + *) + (match args @ optargs with | [] -> () | args -> pr "struct %s_args {\n" name;