mirror of https://gitee.com/openkylin/libvirt.git
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:
parent
15500e9229
commit
42b06aa65d
|
@ -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__ */
|
||||
|
|
Loading…
Reference in New Issue