Blame SOURCES/0003-vCenter-fix-parsing-of-HTTP-status-string-RHBZ-18373.patch

7ed5e3
From bb94c68c521aa546d3f2e59aa25e388bfd9c5fc5 Mon Sep 17 00:00:00 2001
7ed5e3
From: Pino Toscano <ptoscano@redhat.com>
7ed5e3
Date: Tue, 19 May 2020 12:14:18 +0200
7ed5e3
Subject: [PATCH] vCenter: fix parsing of HTTP status string (RHBZ#1837328)
7ed5e3
7ed5e3
vCenter 7 answers with an HTTP/2 status string, so we cannot extract
7ed5e3
the status code from it by using fixed positions in that string.
7ed5e3
Hence, pick the status code by reading what's after the whitespace.
7ed5e3
7ed5e3
Tested with vCenter 6.5 and 7.
7ed5e3
7ed5e3
(cherry picked from commit d2aa82317964d62fcc8dc7b6737773003d04b998)
7ed5e3
---
7ed5e3
 v2v/vCenter.ml | 4 +++-
7ed5e3
 1 file changed, 3 insertions(+), 1 deletion(-)
7ed5e3
7ed5e3
diff --git a/v2v/vCenter.ml b/v2v/vCenter.ml
7ed5e3
index c28a4ced..4c128b0c 100644
7ed5e3
--- a/v2v/vCenter.ml
7ed5e3
+++ b/v2v/vCenter.ml
7ed5e3
@@ -190,7 +190,9 @@ and fetch_headers_from_url password_file uri sslverify https_url =
7ed5e3
     | [] ->
7ed5e3
        dump_response stderr;
7ed5e3
        error (f_"vcenter: no status code in output of ‘curl’ command.  Is ‘curl’ installed?")
7ed5e3
-    | ss -> String.sub (List.hd (List.rev ss)) 9 3 in
7ed5e3
+    | ss ->
7ed5e3
+      let s = List.hd (List.rev ss) in
7ed5e3
+      String.sub s (String.index s ' ' + 1) 3 in
7ed5e3
 
7ed5e3
   let headers =
7ed5e3
     List.map (
7ed5e3
-- 
7ed5e3
2.18.4
7ed5e3