File 0f38dedd-add-virNetDaemonSetShutdownCallbacks.patch of Package libvirt.22291

commit 0f38dedd8929dcb1473fc64773be4b941526ee1d
Author: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Date:   Thu Jul 23 09:43:46 2020 +0300

    rpc: add virNetDaemonSetShutdownCallbacks
    
    The function is used to set shutdown prepare and wait callbacks. Prepare
    callback is used to inform other threads of the daemon that the daemon will be
    closed soon so that they can start to shutdown. Wait callback is used to wait
    for other threads to actually finish.
    
    Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
    Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>

Index: libvirt-6.0.0/src/libvirt_remote.syms
===================================================================
--- libvirt-6.0.0.orig/src/libvirt_remote.syms
+++ libvirt-6.0.0/src/libvirt_remote.syms
@@ -87,6 +87,7 @@ virNetDaemonPreExecRestart;
 virNetDaemonQuit;
 virNetDaemonRemoveShutdownInhibition;
 virNetDaemonRun;
+virNetDaemonSetShutdownCallbacks;
 virNetDaemonUpdateServices;
 
 
Index: libvirt-6.0.0/src/rpc/virnetdaemon.c
===================================================================
--- libvirt-6.0.0.orig/src/rpc/virnetdaemon.c
+++ libvirt-6.0.0/src/rpc/virnetdaemon.c
@@ -69,6 +69,8 @@ struct _virNetDaemon {
     virHashTablePtr servers;
     virJSONValuePtr srvObject;
 
+    virNetDaemonShutdownCallback shutdownPrepareCb;
+    virNetDaemonShutdownCallback shutdownWaitCb;
     bool quit;
 
     unsigned int autoShutdownTimeout;
@@ -906,3 +908,16 @@ virNetDaemonHasClients(virNetDaemonPtr d
 
     return ret;
 }
+
+void
+virNetDaemonSetShutdownCallbacks(virNetDaemonPtr dmn,
+                                 virNetDaemonShutdownCallback prepareCb,
+                                 virNetDaemonShutdownCallback waitCb)
+{
+    virObjectLock(dmn);
+
+    dmn->shutdownPrepareCb = prepareCb;
+    dmn->shutdownWaitCb = waitCb;
+
+    virObjectUnlock(dmn);
+}
Index: libvirt-6.0.0/src/rpc/virnetdaemon.h
===================================================================
--- libvirt-6.0.0.orig/src/rpc/virnetdaemon.h
+++ libvirt-6.0.0/src/rpc/virnetdaemon.h
@@ -78,3 +78,9 @@ virNetServerPtr virNetDaemonGetServer(vi
 ssize_t virNetDaemonGetServers(virNetDaemonPtr dmn, virNetServerPtr **servers);
 bool virNetDaemonHasServer(virNetDaemonPtr dmn,
                            const char *serverName);
+
+typedef int (*virNetDaemonShutdownCallback)(void);
+
+void virNetDaemonSetShutdownCallbacks(virNetDaemonPtr dmn,
+                                      virNetDaemonShutdownCallback prepareCb,
+                                      virNetDaemonShutdownCallback waitCb);
openSUSE Build Service is sponsored by