]> xenbits.xensource.com Git - libvirt.git/commitdiff
remote: allow TLS protocol/cipher priority override in URI
authorDaniel P. Berrange <berrange@redhat.com>
Mon, 6 Jun 2016 14:41:01 +0000 (15:41 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 8 Jun 2016 12:48:45 +0000 (13:48 +0100)
Add support for a "tls_priority" URI parameter in remote
driver URIs. eg

 qemu+tls://localhost/session?tls_priority=NORMAL:-VERS-SSL3.0

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
docs/remote.html.in
src/remote/remote_driver.c

index 638fdae6d0f2a4cc9101ba37a3e82b88d1643388..9b132f13d71814176607324629c44ce6bb865466 100644 (file)
@@ -228,6 +228,19 @@ Note that parameter values must be
         <td colspan="2"/>
         <td> Example: <code>name=qemu:///system</code> </td>
       </tr>
+      <tr>
+        <td>
+          <code>tls_priority</code>
+        </td>
+        <td> tls </td>
+        <td>
+  A vaid GNUTLS priority string
+</td>
+      </tr>
+      <tr>
+        <td colspan="2"/>
+        <td> Example: <code>tls_priority=NORMAL:-VERS-SSL3.0</code> </td>
+      </tr>
       <tr>
         <td>
           <code>command</code>
index 219cf478cac01889785cd6dfe28f78b0ebd69477..4e44e2ad9954a66b9cc3d5d43e81c31973b98dce 100644 (file)
@@ -652,6 +652,7 @@ doRemoteOpen(virConnectPtr conn,
 #ifndef WIN32
     char *daemonPath = NULL;
 #endif
+    char *tls_priority = NULL;
 
     /* We handle *ALL* URIs here. The caller has rejected any
      * URIs we don't care about */
@@ -774,6 +775,7 @@ doRemoteOpen(virConnectPtr conn,
             EXTRACT_URI_ARG_STR("pkipath", pkipath);
             EXTRACT_URI_ARG_STR("known_hosts", knownHosts);
             EXTRACT_URI_ARG_STR("known_hosts_verify", knownHostsVerify);
+            EXTRACT_URI_ARG_STR("tls_priority", tls_priority);
 
             EXTRACT_URI_ARG_BOOL("no_sanity", sanity);
             EXTRACT_URI_ARG_BOOL("no_verify", verify);
@@ -845,12 +847,13 @@ doRemoteOpen(virConnectPtr conn,
 #ifdef WITH_GNUTLS
         priv->tls = virNetTLSContextNewClientPath(pkipath,
                                                   geteuid() != 0 ? true : false,
-                                                  NULL,
+                                                  tls_priority,
                                                   sanity, verify);
         if (!priv->tls)
             goto failed;
         priv->is_secure = 1;
 #else
+        (void)tls_priority;
         (void)sanity;
         (void)verify;
         virReportError(VIR_ERR_INVALID_ARG, "%s",
@@ -1126,6 +1129,7 @@ doRemoteOpen(virConnectPtr conn,
     VIR_FREE(username);
     VIR_FREE(port);
     VIR_FREE(pkipath);
+    VIR_FREE(tls_priority);
     VIR_FREE(knownHostsVerify);
     VIR_FREE(knownHosts);
 #ifndef WIN32