[Libguestfs] [v2v PATCH] vCenter: fix parsing of HTTP status string (RHBZ#1837328)

Pino Toscano ptoscano at redhat.com
Tue May 19 10:19:58 UTC 2020


vCenter 7 answers with an HTTP/2 status string, so we cannot extract
the status code from it by using fixed positions in that string.
Hence, pick the status code by reading what's after the whitespace.

Tested with vCenter 6.5 and 7.
---
 v2v/vCenter.ml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/v2v/vCenter.ml b/v2v/vCenter.ml
index c28a4ced..4c128b0c 100644
--- a/v2v/vCenter.ml
+++ b/v2v/vCenter.ml
@@ -190,7 +190,9 @@ and fetch_headers_from_url password_file uri sslverify https_url =
     | [] ->
        dump_response stderr;
        error (f_"vcenter: no status code in output of ‘curl’ command.  Is ‘curl’ installed?")
-    | ss -> String.sub (List.hd (List.rev ss)) 9 3 in
+    | ss ->
+      let s = List.hd (List.rev ss) in
+      String.sub s (String.index s ' ' + 1) 3 in
 
   let headers =
     List.map (
-- 
2.25.4




More information about the Libguestfs mailing list