Just code motion, no change.
---
mllib/Makefile.am | 4 +++-
mllib/curl.ml | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
mllib/curl.mli | 38 +++++++++++++++++++++++++++++++++
po/POTFILES-ml | 2 +-
v2v/Makefile.am | 5 ++---
v2v/curl.ml | 64 -------------------------------------------------------
v2v/curl.mli | 38 ---------------------------------
7 files changed, 108 insertions(+), 107 deletions(-)
create mode 100644 mllib/curl.ml
create mode 100644 mllib/curl.mli
delete mode 100644 v2v/curl.ml
delete mode 100644 v2v/curl.mli
diff --git a/mllib/Makefile.am b/mllib/Makefile.am
index 10bbebf..e728d54 100644
--- a/mllib/Makefile.am
+++ b/mllib/Makefile.am
@@ -28,6 +28,7 @@ CLEANFILES = *~ *.annot *.cmi *.cmo *.cmx *.cmxa *.o
SOURCES_MLI = \
common_utils.mli \
+ curl.mli \
dev_t.mli \
fsync.mli \
JSON.mli \
@@ -52,7 +53,8 @@ SOURCES_ML = \
planner.ml \
regedit.ml \
StatVFS.ml \
- JSON.ml
+ JSON.ml \
+ curl.ml
SOURCES_C = \
../fish/progress.c \
diff --git a/mllib/curl.ml b/mllib/curl.ml
new file mode 100644
index 0000000..f0af160
--- /dev/null
+++ b/mllib/curl.ml
@@ -0,0 +1,64 @@
+(* virt-v2v
+ * Copyright (C) 2009-2016 Red Hat Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *)
+
+open Printf
+
+open Common_utils
+
+type curl_args = (string * string option) list
+
+let run curl_args =
+ let config_file, chan = Filename.open_temp_file "v2vcurl" ".conf"
in
+ List.iter (
+ function
+ | name, None -> fprintf chan "%s\n" name
+ | name, Some value ->
+ fprintf chan "%s = \"" name;
+ (* Write the quoted value. See 'curl' man page for what is
+ * allowed here.
+ *)
+ let len = String.length value in
+ for i = 0 to len-1 do
+ match value.[i] with
+ | '\\' -> output_string chan "\\\\"
+ | '"' -> output_string chan "\\\""
+ | '\t' -> output_string chan "\\t"
+ | '\n' -> output_string chan "\\n"
+ | '\r' -> output_string chan "\\r"
+ | '\x0b' -> output_string chan "\\v"
+ | c -> output_char chan c
+ done;
+ fprintf chan "\"\n"
+ ) curl_args;
+ close_out chan;
+
+ let cmd = sprintf "curl -q --config %s" (Filename.quote config_file) in
+ let lines = external_command ~echo_cmd:false cmd in
+ Unix.unlink config_file;
+ lines
+
+let print_curl_command chan curl_args =
+ fprintf chan "curl -q";
+ List.iter (
+ function
+ | name, None -> fprintf chan " --%s" name
+ (* Don't print passwords in the debug output. *)
+ | "user", Some _ -> fprintf chan " --user <hidden>"
+ | name, Some value -> fprintf chan " --%s %s" name (Filename.quote
value)
+ ) curl_args;
+ fprintf chan "\n";
diff --git a/mllib/curl.mli b/mllib/curl.mli
new file mode 100644
index 0000000..cd01497
--- /dev/null
+++ b/mllib/curl.mli
@@ -0,0 +1,38 @@
+(* virt-v2v
+ * Copyright (C) 2009-2016 Red Hat Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *)
+
+(** Functions for dealing with [curl]. *)
+
+type curl_args = (string * string option) list
+
+val run : curl_args -> string list
+(** [run curl_args] runs the [curl] command.
+
+ It actually uses the [curl --config] option to pass the arguments
+ securely to curl through an external file. Thus passwords etc are
+ not exposed to other users on the same machine.
+
+ The curl arguments are a list of key, value pairs corresponding
+ to curl command line parameters, without leading dashes,
+ eg. [("user", Some "user:password")].
+
+ The result is the output of curl as a list of lines. *)
+
+val print_curl_command : out_channel -> curl_args -> unit
+(** Print the curl command line. This elides any arguments that
+ might contain passwords, so is useful for debugging. *)
diff --git a/po/POTFILES-ml b/po/POTFILES-ml
index f6bade1..5937ff5 100644
--- a/po/POTFILES-ml
+++ b/po/POTFILES-ml
@@ -43,6 +43,7 @@ mllib/URI.ml
mllib/common_gettext.ml
mllib/common_utils.ml
mllib/common_utils_tests.ml
+mllib/curl.ml
mllib/dev_t.ml
mllib/fsync.ml
mllib/guestfs_config.ml
@@ -104,7 +105,6 @@ v2v/cmdline.ml
v2v/convert_linux.ml
v2v/convert_windows.ml
v2v/copy_to_local.ml
-v2v/curl.ml
v2v/domainxml.ml
v2v/input_disk.ml
v2v/input_libvirt.ml
diff --git a/v2v/Makefile.am b/v2v/Makefile.am
index 05f4611..fedc84d 100644
--- a/v2v/Makefile.am
+++ b/v2v/Makefile.am
@@ -31,7 +31,6 @@ SOURCES_MLI = \
cmdline.mli \
convert_linux.mli \
convert_windows.mli \
- curl.mli \
DOM.mli \
domainxml.mli \
input_disk.mli \
@@ -66,7 +65,6 @@ SOURCES_ML = \
types.ml \
xml.ml \
utils.ml \
- curl.ml \
vCenter.ml \
domainxml.ml \
DOM.ml \
@@ -131,6 +129,7 @@ BOBJECTS = \
$(top_builddir)/mllib/mkdtemp.cmo \
$(top_builddir)/mllib/JSON.cmo \
$(top_builddir)/mllib/StatVFS.cmo \
+ $(top_builddir)/mllib/curl.cmo \
$(top_builddir)/customize/customize_utils.cmo \
$(top_builddir)/customize/firstboot.cmo \
$(SOURCES_ML:.ml=.cmo)
@@ -199,9 +198,9 @@ COPY_TO_LOCAL_BOBJECTS = \
$(top_builddir)/mllib/common_utils.cmo \
$(top_builddir)/mllib/JSON.cmo \
$(top_builddir)/mllib/StatVFS.cmo \
+ $(top_builddir)/mllib/curl.cmo \
xml.cmo \
utils.cmo \
- curl.cmo \
vCenter.cmo \
domainxml.cmo \
copy_to_local.cmo
diff --git a/v2v/curl.ml b/v2v/curl.ml
deleted file mode 100644
index f0af160..0000000
--- a/v2v/curl.ml
+++ /dev/null
@@ -1,64 +0,0 @@
-(* virt-v2v
- * Copyright (C) 2009-2016 Red Hat Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *)
-
-open Printf
-
-open Common_utils
-
-type curl_args = (string * string option) list
-
-let run curl_args =
- let config_file, chan = Filename.open_temp_file "v2vcurl" ".conf"
in
- List.iter (
- function
- | name, None -> fprintf chan "%s\n" name
- | name, Some value ->
- fprintf chan "%s = \"" name;
- (* Write the quoted value. See 'curl' man page for what is
- * allowed here.
- *)
- let len = String.length value in
- for i = 0 to len-1 do
- match value.[i] with
- | '\\' -> output_string chan "\\\\"
- | '"' -> output_string chan "\\\""
- | '\t' -> output_string chan "\\t"
- | '\n' -> output_string chan "\\n"
- | '\r' -> output_string chan "\\r"
- | '\x0b' -> output_string chan "\\v"
- | c -> output_char chan c
- done;
- fprintf chan "\"\n"
- ) curl_args;
- close_out chan;
-
- let cmd = sprintf "curl -q --config %s" (Filename.quote config_file) in
- let lines = external_command ~echo_cmd:false cmd in
- Unix.unlink config_file;
- lines
-
-let print_curl_command chan curl_args =
- fprintf chan "curl -q";
- List.iter (
- function
- | name, None -> fprintf chan " --%s" name
- (* Don't print passwords in the debug output. *)
- | "user", Some _ -> fprintf chan " --user <hidden>"
- | name, Some value -> fprintf chan " --%s %s" name (Filename.quote
value)
- ) curl_args;
- fprintf chan "\n";
diff --git a/v2v/curl.mli b/v2v/curl.mli
deleted file mode 100644
index cd01497..0000000
--- a/v2v/curl.mli
+++ /dev/null
@@ -1,38 +0,0 @@
-(* virt-v2v
- * Copyright (C) 2009-2016 Red Hat Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *)
-
-(** Functions for dealing with [curl]. *)
-
-type curl_args = (string * string option) list
-
-val run : curl_args -> string list
-(** [run curl_args] runs the [curl] command.
-
- It actually uses the [curl --config] option to pass the arguments
- securely to curl through an external file. Thus passwords etc are
- not exposed to other users on the same machine.
-
- The curl arguments are a list of key, value pairs corresponding
- to curl command line parameters, without leading dashes,
- eg. [("user", Some "user:password")].
-
- The result is the output of curl as a list of lines. *)
-
-val print_curl_command : out_channel -> curl_args -> unit
-(** Print the curl command line. This elides any arguments that
- might contain passwords, so is useful for debugging. *)
--
2.7.4