]> xenbits.xensource.com Git - libvirt.git/commitdiff
rpc: virnetserverclient: Implement client connection transport retrieval
authorErik Skultety <eskultet@redhat.com>
Thu, 14 Apr 2016 22:25:04 +0000 (00:25 +0200)
committerErik Skultety <eskultet@redhat.com>
Tue, 3 May 2016 08:04:49 +0000 (10:04 +0200)
Although we document 6 types of transport that we support, internally we can
only differentiate between TCP, TLS, and UNIX transports only, since both SSH
and libssh2 transports, due to using netcat, behave in the exactly the same
way as a UNIX socket.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
src/libvirt_remote.syms
src/rpc/virnetserverclient.c
src/rpc/virnetserverclient.h

index ea92043e80cf6f3f181dfe89effbbea9bbfa1c68..963683d5c7b44eefc33d2d519c952df221d00a18 100644 (file)
@@ -125,6 +125,7 @@ virNetServerClientGetIdentity;
 virNetServerClientGetPrivateData;
 virNetServerClientGetReadonly;
 virNetServerClientGetSELinuxContext;
+virNetServerClientGetTransport;
 virNetServerClientGetUNIXIdentity;
 virNetServerClientImmediateClose;
 virNetServerClientInit;
index a1543b9df44a26b58624a67daa0197f2646977e0..a9d70e1738445cea20fd572e0455df38c5213b81 100644 (file)
@@ -1568,3 +1568,25 @@ virNetServerClientStartKeepAlive(virNetServerClientPtr client)
     virObjectUnlock(client);
     return ret;
 }
+
+int
+virNetServerClientGetTransport(virNetServerClientPtr client)
+{
+    int ret = -1;
+
+    virObjectLock(client);
+
+    if (client->sock && virNetSocketIsLocal(client->sock))
+        ret = VIR_CLIENT_TRANS_UNIX;
+    else
+        ret = VIR_CLIENT_TRANS_TCP;
+
+#ifdef WITH_GNUTLS
+    if (client->tls)
+        ret = VIR_CLIENT_TRANS_TLS;
+#endif
+
+    virObjectUnlock(client);
+
+    return ret;
+}
index e68ef76f040daba54f14b186c625e41a69f4139b..1318fa2410c9ffa2bffb1746133ae487827027bf 100644 (file)
@@ -145,5 +145,6 @@ int virNetServerClientSendMessage(virNetServerClientPtr client,
 
 bool virNetServerClientNeedAuth(virNetServerClientPtr client);
 
+int virNetServerClientGetTransport(virNetServerClientPtr client);
 
 #endif /* __VIR_NET_SERVER_CLIENT_H__ */