virNetServerClientGetAuth;
virNetServerClientGetFD;
virNetServerClientGetIdentity;
+virNetServerClientGetInfo;
virNetServerClientGetPrivateData;
virNetServerClientGetReadonly;
virNetServerClientGetSELinuxContext;
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;
+}
bool virNetServerClientNeedAuth(virNetServerClientPtr client);
int virNetServerClientGetTransport(virNetServerClientPtr client);
+int virNetServerClientGetInfo(virNetServerClientPtr client,
+ bool *readonly, const char **sock_addr,
+ virIdentityPtr *identity);
#endif /* __VIR_NET_SERVER_CLIENT_H__ */