mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-06 06:15:46 +00:00
virnetserverclient: Add an internal method to retrieve client's identity
This method just aggregates various client object attributes, like socket address, connection type (RO/RW), and some TCP/TLS/UNIX identity in an atomic manner. Signed-off-by: Erik Skultety <eskultet@redhat.com>
This commit is contained in:
parent
bde2cb6136
commit
8420a53edf
@ -122,6 +122,7 @@ virNetServerClientDelayedClose;
|
|||||||
virNetServerClientGetAuth;
|
virNetServerClientGetAuth;
|
||||||
virNetServerClientGetFD;
|
virNetServerClientGetFD;
|
||||||
virNetServerClientGetIdentity;
|
virNetServerClientGetIdentity;
|
||||||
|
virNetServerClientGetInfo;
|
||||||
virNetServerClientGetPrivateData;
|
virNetServerClientGetPrivateData;
|
||||||
virNetServerClientGetReadonly;
|
virNetServerClientGetReadonly;
|
||||||
virNetServerClientGetSELinuxContext;
|
virNetServerClientGetSELinuxContext;
|
||||||
|
@ -1612,3 +1612,33 @@ virNetServerClientGetTransport(virNetServerClientPtr client)
|
|||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
virNetServerClientGetInfo(virNetServerClientPtr client,
|
||||||
|
bool *readonly, const char **sock_addr,
|
||||||
|
virIdentityPtr *identity)
|
||||||
|
{
|
||||||
|
int ret = -1;
|
||||||
|
|
||||||
|
virObjectLock(client);
|
||||||
|
*readonly = client->readonly;
|
||||||
|
|
||||||
|
if (!(*sock_addr = virNetServerClientRemoteAddrString(client))) {
|
||||||
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
|
_("No network socket associated with client"));
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!client->identity) {
|
||||||
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
|
_("No identity information available for client"));
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
*identity = virObjectRef(client->identity);
|
||||||
|
|
||||||
|
ret = 0;
|
||||||
|
cleanup:
|
||||||
|
virObjectUnlock(client);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
@ -149,5 +149,8 @@ int virNetServerClientSendMessage(virNetServerClientPtr client,
|
|||||||
bool virNetServerClientNeedAuth(virNetServerClientPtr client);
|
bool virNetServerClientNeedAuth(virNetServerClientPtr client);
|
||||||
|
|
||||||
int virNetServerClientGetTransport(virNetServerClientPtr client);
|
int virNetServerClientGetTransport(virNetServerClientPtr client);
|
||||||
|
int virNetServerClientGetInfo(virNetServerClientPtr client,
|
||||||
|
bool *readonly, const char **sock_addr,
|
||||||
|
virIdentityPtr *identity);
|
||||||
|
|
||||||
#endif /* __VIR_NET_SERVER_CLIENT_H__ */
|
#endif /* __VIR_NET_SERVER_CLIENT_H__ */
|
||||||
|
Loading…
Reference in New Issue
Block a user