[Libguestfs] [PATCH v2 2/8] curl: Change the API to use an abstract data type.
Pino Toscano
ptoscano at redhat.com
Thu Jul 7 15:45:32 UTC 2016
On Thursday 07 July 2016 16:22:05 Richard W.M. Jones wrote:
> Change the Curl module to use an ADT to store the name of the curl
> binary and the arguments.
Good idea.
The implementation looks mostly good, although I have a couple of notes.
>
> Also add Curl.safe_args, a list of arguments that control redirects etc.
The current implementation basically "forces" every caller to pass them
to Curl.create (and indeed this patch and patch #3 do this job), which
IMHO makes it easy to forget them.
Since we want those arguments on by default in all the curl invocations,
I'd do the following: hide Curl.safe_args, and add them automatically
in Curl.to_string. If in the future there will be the need to not use
them for some curl invocation, we can always add ~use_safe_args:false
for Curl.create.
> +type proxy =
> + | UnsetProxy (** The proxy is forced off. *)
> + | ForcedProxy of string (** The proxy is forced to the specified URL. *)
> +
> +val args_of_proxy : proxy -> args
> +(** Convert the proxy setting to the equivalent list of curl arguments.
> +
> + To use the system proxy, no additional arguments are required, so
> + if you don't want to control the proxy (but just use the defaults)
> + you do not need to call this function at all.
> +
> + Callers should append these arguments to the list of arguments
> + passed to {!create}. *)
Just wondering whether it makes sense a method to set the proxy for a
Curl.t handle, letting Curl do the proxy -> args conversion internally
(less work for users).
Thanks,
--
Pino Toscano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20160707/5ec55847/attachment.sig>
More information about the Libguestfs
mailing list