mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-13 08:58:33 +03:00
With the current code it is neccessary to call virNetDaemonNewPostExecRestart() and then for each server that needs restarting you are supposed to call virNetDaemonAddSeverPostExecRestart() This is fine if there's only ever one server, but as soon as you have two servers it is impossible to use this design. The code has no idea which servers were recorded in the JSON state doc, nor in which order the hash table serialized its keys. So this patch changes things so that we only call virNetDaemonNewPostExecRestart() passing in a callback, which is invoked once for each server found int he JSON state doc. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
90 lines
3.2 KiB
C
90 lines
3.2 KiB
C
/*
|
|
* virnetdaemon.h
|
|
*
|
|
* Copyright (C) 2015 Red Hat, Inc.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library. If not, see
|
|
* <http://www.gnu.org/licenses/>.
|
|
*
|
|
* Author: Martin Kletzander <mkletzan@redhat.com>
|
|
*/
|
|
|
|
#ifndef __VIR_NET_DAEMON_H__
|
|
# define __VIR_NET_DAEMON_H__
|
|
|
|
# include <signal.h>
|
|
|
|
# ifdef WITH_GNUTLS
|
|
# include "virnettlscontext.h"
|
|
# endif
|
|
# include "virobject.h"
|
|
# include "virjson.h"
|
|
# include "virnetserverprogram.h"
|
|
# include "virnetserverclient.h"
|
|
# include "virnetserverservice.h"
|
|
# include "virnetserver.h"
|
|
|
|
virNetDaemonPtr virNetDaemonNew(void);
|
|
|
|
int virNetDaemonAddServer(virNetDaemonPtr dmn,
|
|
virNetServerPtr srv);
|
|
|
|
typedef virNetServerPtr (*virNetDaemonNewServerPostExecRestart)(virNetDaemonPtr dmn,
|
|
const char *name,
|
|
virJSONValuePtr object,
|
|
void *opaque);
|
|
virNetDaemonPtr virNetDaemonNewPostExecRestart(virJSONValuePtr object,
|
|
size_t nDefServerNames,
|
|
const char **defServerNames,
|
|
virNetDaemonNewServerPostExecRestart cb,
|
|
void *opaque);
|
|
|
|
virJSONValuePtr virNetDaemonPreExecRestart(virNetDaemonPtr dmn);
|
|
|
|
typedef int (*virNetDaemonAutoShutdownFunc)(virNetDaemonPtr dmn, void *opaque);
|
|
|
|
bool virNetDaemonIsPrivileged(virNetDaemonPtr dmn);
|
|
|
|
void virNetDaemonAutoShutdown(virNetDaemonPtr dmn,
|
|
unsigned int timeout);
|
|
|
|
void virNetDaemonAddShutdownInhibition(virNetDaemonPtr dmn);
|
|
void virNetDaemonRemoveShutdownInhibition(virNetDaemonPtr dmn);
|
|
|
|
typedef void (*virNetDaemonSignalFunc)(virNetDaemonPtr dmn, siginfo_t *info, void *opaque);
|
|
|
|
int virNetDaemonAddSignalHandler(virNetDaemonPtr dmn,
|
|
int signum,
|
|
virNetDaemonSignalFunc func,
|
|
void *opaque);
|
|
|
|
void virNetDaemonUpdateServices(virNetDaemonPtr dmn,
|
|
bool enabled);
|
|
|
|
void virNetDaemonRun(virNetDaemonPtr dmn);
|
|
|
|
void virNetDaemonQuit(virNetDaemonPtr dmn);
|
|
|
|
void virNetDaemonClose(virNetDaemonPtr dmn);
|
|
|
|
bool virNetDaemonHasClients(virNetDaemonPtr dmn);
|
|
|
|
virNetServerPtr virNetDaemonGetServer(virNetDaemonPtr dmn,
|
|
const char *serverName);
|
|
ssize_t virNetDaemonGetServers(virNetDaemonPtr dmn, virNetServerPtr **servers);
|
|
bool virNetDaemonHasServer(virNetDaemonPtr dmn,
|
|
const char *serverName);
|
|
|
|
#endif /* __VIR_NET_DAEMON_H__ */
|