mirror of
https://github.com/libvirt/libvirt.git
synced 2026-09-03 20:53:04 -05:00
rpc: virnetserverclient: Implement client connection transport retrieval
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>
This commit is contained in:
@@ -125,6 +125,7 @@ virNetServerClientGetIdentity;
|
||||
virNetServerClientGetPrivateData;
|
||||
virNetServerClientGetReadonly;
|
||||
virNetServerClientGetSELinuxContext;
|
||||
virNetServerClientGetTransport;
|
||||
virNetServerClientGetUNIXIdentity;
|
||||
virNetServerClientImmediateClose;
|
||||
virNetServerClientInit;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -145,5 +145,6 @@ int virNetServerClientSendMessage(virNetServerClientPtr client,
|
||||
|
||||
bool virNetServerClientNeedAuth(virNetServerClientPtr client);
|
||||
|
||||
int virNetServerClientGetTransport(virNetServerClientPtr client);
|
||||
|
||||
#endif /* __VIR_NET_SERVER_CLIENT_H__ */
|
||||
|
||||
Reference in New Issue
Block a user