diff options
author | Daniel P. Berrange <berrange@redhat.com> | 2012-08-09 12:31:34 +0100 |
---|---|---|
committer | Daniel P. Berrange <berrange@redhat.com> | 2012-08-15 10:59:10 +0100 |
commit | 39b5e4d4d8622aa55251cddb03a48068655d8647 (patch) | |
tree | 3dec792b0fd89f7b65bbbe239d67f513db800e8d /src/rpc/virnetserverclient.h | |
parent | Add further debugging lines to domain lock manager (diff) | |
download | libvirt-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.h | 13 |
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); |