diff --git a/src/libvirt_remote.syms b/src/libvirt_remote.syms index ea92043e80..963683d5c7 100644 --- a/src/libvirt_remote.syms +++ b/src/libvirt_remote.syms @@ -125,6 +125,7 @@ virNetServerClientGetIdentity; virNetServerClientGetPrivateData; virNetServerClientGetReadonly; virNetServerClientGetSELinuxContext; +virNetServerClientGetTransport; virNetServerClientGetUNIXIdentity; virNetServerClientImmediateClose; virNetServerClientInit; diff --git a/src/rpc/virnetserverclient.c b/src/rpc/virnetserverclient.c index a1543b9df4..a9d70e1738 100644 --- a/src/rpc/virnetserverclient.c +++ b/src/rpc/virnetserverclient.c @@ -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; +} diff --git a/src/rpc/virnetserverclient.h b/src/rpc/virnetserverclient.h index e68ef76f04..1318fa2410 100644 --- a/src/rpc/virnetserverclient.h +++ b/src/rpc/virnetserverclient.h @@ -145,5 +145,6 @@ int virNetServerClientSendMessage(virNetServerClientPtr client, bool virNetServerClientNeedAuth(virNetServerClientPtr client); +int virNetServerClientGetTransport(virNetServerClientPtr client); #endif /* __VIR_NET_SERVER_CLIENT_H__ */