]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Add a opaque parameter to the RPC client init callback
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 15 Mar 2012 18:14:51 +0000 (18:14 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 5 Jul 2012 09:46:09 +0000 (10:46 +0100)
The callback that is invoked when a new RPC client is
initialized does not have any opaque parameter. Add
one so that custom data can be passed into the callback

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
daemon/libvirtd.c
daemon/remote.c
daemon/remote.h
src/rpc/virnetserver.c
src/rpc/virnetserver.h

index 9c06344cf69f58aa2a83671f97cec2414d8b632d..8c434a0edeea02f529244801ace9d13eabf5f3a8 100644 (file)
@@ -1176,7 +1176,8 @@ int main(int argc, char **argv) {
                                 config->keepalive_count,
                                 !!config->keepalive_required,
                                 config->mdns_adv ? config->mdns_name : NULL,
-                                remoteClientInitHook))) {
+                                remoteClientInitHook,
+                                NULL))) {
         ret = VIR_DAEMON_ERR_INIT;
         goto cleanup;
     }
index b8c2aab13be3288bd3469b7c917e052810cc99d5..095d854f594876d7483ecd18b621de08a1d6160d 100644 (file)
@@ -640,7 +640,8 @@ static void remoteClientCloseFunc(virNetServerClientPtr client)
 
 
 int remoteClientInitHook(virNetServerPtr srv ATTRIBUTE_UNUSED,
-                         virNetServerClientPtr client)
+                         virNetServerClientPtr client,
+                         void *opaque ATTRIBUTE_UNUSED)
 {
     struct daemonClientPrivate *priv;
     int i;
index 5444e4786e97f93e80789ec9e7698845633de389..d3e1b2d4626a6724d455dfc53aca4fe534ade7b9 100644 (file)
@@ -36,6 +36,7 @@ extern virNetServerProgramProc qemuProcs[];
 extern size_t qemuNProcs;
 
 int remoteClientInitHook(virNetServerPtr srv,
-                         virNetServerClientPtr client);
+                         virNetServerClientPtr client,
+                         void *opaque);
 
 #endif /* __LIBVIRTD_REMOTE_H__ */
index 247ddd75854b11bd601b202a5f4b7e7fb650dc08..358666d2488b16e246a7f67881f3fafb560fa805 100644 (file)
@@ -112,6 +112,7 @@ struct _virNetServer {
     void *autoShutdownOpaque;
 
     virNetServerClientInitHook clientInitHook;
+    void *clientInitOpaque;
 };
 
 
@@ -248,7 +249,7 @@ static int virNetServerDispatchNewClient(virNetServerServicePtr svc ATTRIBUTE_UN
         goto error;
 
     if (srv->clientInitHook &&
-        srv->clientInitHook(srv, client) < 0)
+        srv->clientInitHook(srv, client, srv->clientInitOpaque) < 0)
         goto error;
 
     if (VIR_EXPAND_N(srv->clients, srv->nclients, 1) < 0) {
@@ -310,7 +311,8 @@ virNetServerPtr virNetServerNew(size_t min_workers,
                                 unsigned int keepaliveCount,
                                 bool keepaliveRequired,
                                 const char *mdnsGroupName,
-                                virNetServerClientInitHook clientInitHook)
+                                virNetServerClientInitHook clientInitHook,
+                                void *opaque)
 {
     virNetServerPtr srv;
     struct sigaction sig_action;
@@ -334,6 +336,7 @@ virNetServerPtr virNetServerNew(size_t min_workers,
     srv->keepaliveRequired = keepaliveRequired;
     srv->sigwrite = srv->sigread = -1;
     srv->clientInitHook = clientInitHook;
+    srv->clientInitOpaque = opaque;
     srv->privileged = geteuid() == 0 ? true : false;
 
     if (mdnsGroupName &&
index 0ebe00e798935ae40fab86b6849370cd782b7b8b..438f524110c6f380d784fd617a9078f9d87a1376 100644 (file)
@@ -32,7 +32,8 @@
 # include "virnetserverservice.h"
 
 typedef int (*virNetServerClientInitHook)(virNetServerPtr srv,
-                                          virNetServerClientPtr client);
+                                          virNetServerClientPtr client,
+                                          void *opaque);
 
 virNetServerPtr virNetServerNew(size_t min_workers,
                                 size_t max_workers,
@@ -42,7 +43,8 @@ virNetServerPtr virNetServerNew(size_t min_workers,
                                 unsigned int keepaliveCount,
                                 bool keepaliveRequired,
                                 const char *mdnsGroupName,
-                                virNetServerClientInitHook clientInitHook);
+                                virNetServerClientInitHook clientInitHook,
+                                void *opaque);
 
 typedef int (*virNetServerAutoShutdownFunc)(virNetServerPtr srv, void *opaque);