aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2012-08-09 12:31:34 +0100
committerDaniel P. Berrange <berrange@redhat.com>2012-08-15 10:59:10 +0100
commit39b5e4d4d8622aa55251cddb03a48068655d8647 (patch)
tree3dec792b0fd89f7b65bbbe239d67f513db800e8d /src/rpc/virnetserverclient.h
parentAdd further debugging lines to domain lock manager (diff)
downloadlibvirt-39b5e4d4d8622aa55251cddb03a48068655d8647.tar.gz
libvirt-39b5e4d4d8622aa55251cddb03a48068655d8647.tar.bz2
libvirt-39b5e4d4d8622aa55251cddb03a48068655d8647.zip
Refactor RPC client private data setup
Currently there is a hook function that is invoked when a new client connection comes in, which allows an app to setup private data. This setup will make it difficult to serialize client state during process re-exec(). Change to a model where the app registers a callback when creating the virNetServerPtr instance, which is used to allocate the client private data immediately during virNetClientPtr construction. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Diffstat (limited to 'src/rpc/virnetserverclient.h')
-rw-r--r--src/rpc/virnetserverclient.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/rpc/virnetserverclient.h b/src/rpc/virnetserverclient.h
index a1ff19b2d..f950c6170 100644
--- a/src/rpc/virnetserverclient.h
+++ b/src/rpc/virnetserverclient.h
@@ -39,11 +39,17 @@ typedef int (*virNetServerClientFilterFunc)(virNetServerClientPtr client,
virNetMessagePtr msg,
void *opaque);
+typedef void *(*virNetServerClientPrivNew)(virNetServerClientPtr client,
+ void *opaque);
+
virNetServerClientPtr virNetServerClientNew(virNetSocketPtr sock,
int auth,
bool readonly,
size_t nrequests_max,
- virNetTLSContextPtr tls);
+ virNetTLSContextPtr tls,
+ virNetServerClientPrivNew privNew,
+ virFreeCallback privFree,
+ void *privOpaque);
int virNetServerClientAddFilter(virNetServerClientPtr client,
virNetServerClientFilterFunc func,
@@ -74,11 +80,6 @@ const char *virNetServerClientGetIdentity(virNetServerClientPtr client);
int virNetServerClientGetUNIXIdentity(virNetServerClientPtr client,
uid_t *uid, gid_t *gid, pid_t *pid);
-typedef void (*virNetServerClientFreeFunc)(void *data);
-
-void virNetServerClientSetPrivateData(virNetServerClientPtr client,
- void *opaque,
- virNetServerClientFreeFunc ff);
void *virNetServerClientGetPrivateData(virNetServerClientPtr client);
typedef void (*virNetServerClientCloseFunc)(virNetServerClientPtr client);