Having a daemon/ directory makes little sense from a code structure
point of view, as 90% of the code that is built into libvirtd already
lives in the src/ directory. The virtlockd and virlogd daemons also live
entirely in src/{locking,logging} directories. This moves the source
code for libvirtd into src/remote/, alongside the client code.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
.gitignore | 2 +
daemon/Makefile.am | 125 +--------------------
src/Makefile.am | 93 ++++++++++++++-
daemon/libvirtd.c => src/remote/remote_daemon.c | 10 +-
daemon/libvirtd.h => src/remote/remote_daemon.h | 10 +-
.../remote/remote_daemon_config.c | 10 +-
.../remote/remote_daemon_config.h | 10 +-
.../remote/remote_daemon_dispatch.c | 16 +--
.../remote/remote_daemon_dispatch.h | 10 +-
.../stream.c => src/remote/remote_daemon_stream.c | 8 +-
.../stream.h => src/remote/remote_daemon_stream.h | 12 +-
11 files changed, 136 insertions(+), 170 deletions(-)
rename daemon/libvirtd.c => src/remote/remote_daemon.c (99%)
rename daemon/libvirtd.h => src/remote/remote_daemon.h (93%)
rename daemon/libvirtd-config.c => src/remote/remote_daemon_config.c (98%)
rename daemon/libvirtd-config.h => src/remote/remote_daemon_config.h (92%)
rename daemon/remote.c => src/remote/remote_daemon_dispatch.c (99%)
rename daemon/remote.h => src/remote/remote_daemon_dispatch.h (85%)
rename daemon/stream.c => src/remote/remote_daemon_stream.c (99%)
rename daemon/stream.h => src/remote/remote_daemon_stream.h (85%)
diff --git a/.gitignore b/.gitignore
index 189116a3d0..415d6d166b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -139,6 +139,7 @@
/src/libvirt_*helper
/src/libvirt_*probes.h
/src/libvirt_lxc
+/src/libvirtd
/src/locking/libxl-lockd.conf
/src/locking/libxl-sanlock.conf
/src/locking/lock_daemon_dispatch_stubs.h
@@ -157,6 +158,7 @@
/src/qemu/test_libvirtd_qemu.aug
/src/remote/*_client_bodies.h
/src/remote/*_protocol.[ch]
+/src/remote/*_stubs.h
/src/rpc/virkeepaliveprotocol.[ch]
/src/rpc/virnetprotocol.[ch]
/src/test_libvirt*.aug
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index 42d8f7b3fd..4f682fa740 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -16,37 +16,8 @@
## License along with this library. If not, see
## <http://www.gnu.org/licenses/>.
-INCLUDES = \
- -I$(top_builddir)/gnulib/lib -I$(top_srcdir)/gnulib/lib \
- -I$(top_srcdir) \
- -I$(top_builddir)/include -I$(top_srcdir)/include \
- -I$(top_builddir)/src -I$(top_srcdir)/src \
- -I$(top_srcdir)/src/util \
- -I$(top_srcdir)/src/conf \
- -I$(top_srcdir)/src/rpc \
- -I$(top_srcdir)/src/remote \
- -I$(top_srcdir)/src/admin \
- -I$(top_srcdir)/src/access \
- $(GETTEXT_CPPFLAGS)
-
CLEANFILES =
-WARN_CFLAGS += $(STRICT_FRAME_LIMIT_CFLAGS)
-
-DAEMON_GENERATED = \
- remote_dispatch.h \
- lxc_dispatch.h \
- qemu_dispatch.h \
- $(NULL)
-
-DAEMON_SOURCES = \
- libvirtd.c libvirtd.h \
- remote.c remote.h \
- stream.c stream.h \
- $(DAEMON_GENERATED)
-
-LIBVIRTD_CONF_SOURCES = libvirtd-config.c libvirtd-config.h
-
PODFILES = \
libvirtd.pod \
$(NULL)
@@ -57,9 +28,6 @@ MANINFILES = \
DISTCLEANFILES =
EXTRA_DIST = \
- remote_dispatch.h \
- lxc_dispatch.h \
- qemu_dispatch.h \
libvirtd.conf \
libvirtd.init.in \
libvirtd.upstart \
@@ -80,59 +48,14 @@ EXTRA_DIST = \
THREADS.txt \
$(PODFILES) \
$(MANINFILES) \
- $(DAEMON_SOURCES) \
- $(LIBVIRTD_CONF_SOURCES) \
$(NULL)
BUILT_SOURCES =
-REMOTE_PROTOCOL = $(top_srcdir)/src/remote/remote_protocol.x
-LXC_PROTOCOL = $(top_srcdir)/src/remote/lxc_protocol.x
-QEMU_PROTOCOL = $(top_srcdir)/src/remote/qemu_protocol.x
-ADMIN_PROTOCOL = $(top_srcdir)/src/admin/admin_protocol.x
-
-remote_dispatch.h: $(top_srcdir)/src/rpc/gendispatch.pl \
- $(REMOTE_PROTOCOL) Makefile.am
- $(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \
- --mode=server remote REMOTE $(REMOTE_PROTOCOL) \
- > $(srcdir)/remote_dispatch.h
-
-lxc_dispatch.h: $(top_srcdir)/src/rpc/gendispatch.pl \
- $(LXC_PROTOCOL) Makefile.am
- $(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \
- --mode=server lxc LXC $(LXC_PROTOCOL) \
- > $(srcdir)/lxc_dispatch.h
-
-qemu_dispatch.h: $(top_srcdir)/src/rpc/gendispatch.pl \
- $(QEMU_PROTOCOL) Makefile.am
- $(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \
- --mode=server qemu QEMU $(QEMU_PROTOCOL) \
- > $(srcdir)/qemu_dispatch.h
-
if WITH_LIBVIRTD
-# Build a convenience library, for reuse in tests/libvirtdconftest
-noinst_LTLIBRARIES = libvirtd_conf.la
-libvirtd_conf_la_SOURCES = $(LIBVIRTD_CONF_SOURCES)
-libvirtd_conf_la_CFLAGS = \
- $(LIBXML_CFLAGS) \
- $(XDR_CFLAGS) \
- $(WARN_CFLAGS) $(PIE_CFLAGS) \
- $(COVERAGE_CFLAGS) \
- $(NULL)
-libvirtd_conf_la_LDFLAGS = \
- $(RELRO_LDFLAGS) \
- $(PIE_LDFLAGS) \
- $(COVERAGE_LDFLAGS) \
- $(NO_INDIRECT_LDFLAGS) \
- $(NO_UNDEFINED_LDFLAGS) \
- $(NULL)
-libvirtd_conf_la_LIBADD = $(LIBXML_LIBS)
-
man8_MANS = libvirtd.8
-sbin_PROGRAMS = libvirtd
-
confdir = $(sysconfdir)/libvirt/
conf_DATA = libvirtd.conf
@@ -144,44 +67,6 @@ augeastests_DATA = test_libvirtd.aug
CLEANFILES += test_libvirtd.aug
-libvirtd_SOURCES = $(DAEMON_SOURCES)
-
-#-D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_POSIX_C_SOURCE=199506L
-libvirtd_CFLAGS = \
- $(LIBXML_CFLAGS) $(GNUTLS_CFLAGS) $(SASL_CFLAGS) \
- $(XDR_CFLAGS) $(DBUS_CFLAGS) $(LIBNL_CFLAGS) \
- $(WARN_CFLAGS) $(PIE_CFLAGS) \
- $(COVERAGE_CFLAGS) \
- -DQEMUD_PID_FILE="\"$(QEMUD_PID_FILE)\""
-
-libvirtd_LDFLAGS = \
- $(RELRO_LDFLAGS) \
- $(PIE_LDFLAGS) \
- $(COVERAGE_LDFLAGS) \
- $(NO_INDIRECT_LDFLAGS) \
- $(NO_UNDEFINED_LDFLAGS) \
- $(NULL)
-
-libvirtd_LDADD = \
- $(LIBXML_LIBS) \
- $(GNUTLS_LIBS) \
- $(SASL_LIBS) \
- $(DBUS_LIBS) \
- $(LIBNL_LIBS)
-
-if WITH_DTRACE_PROBES
-libvirtd_LDADD += ../src/libvirt_probes.lo
-endif WITH_DTRACE_PROBES
-
-libvirtd_LDADD += \
- libvirtd_conf.la \
- ../src/libvirt_driver_admin.la \
- ../src/libvirt-lxc.la \
- ../src/libvirt-qemu.la \
- $(NULL)
-
-libvirtd_LDADD += ../src/libvirt.la
-
if WITH_POLKIT
if WITH_POLKIT0
policydir = $(datadir)/PolicyKit/policy
@@ -239,9 +124,6 @@ install-data-polkit::
uninstall-data-polkit::
endif ! WITH_POLKIT
-remote.c: $(DAEMON_GENERATED)
-remote.h: $(DAEMON_GENERATED)
-
LOGROTATE_CONFS = libvirtd.qemu.logrotate libvirtd.lxc.logrotate \
libvirtd.libxl.logrotate libvirtd.uml.logrotate \
libvirtd.logrotate
@@ -414,11 +296,6 @@ check-augeas: test_libvirtd.aug
'$(AUGPARSE)' -I $(srcdir) test_libvirtd.aug; \
fi
-
-# This must be added last, since functions it provides/replaces
-# are used by nearly every other library.
-libvirtd_LDADD += ../gnulib/lib/libgnu.la $(LIBSOCKET)
-
else ! WITH_LIBVIRTD
install-data-local: install-data-sasl
uninstall-local:: uninstall-data-sasl
@@ -462,4 +339,4 @@ endif ! WITH_SASL
CLEANFILES += $(BUILT_SOURCES) $(man8_MANS)
CLEANFILES += *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
-MAINTAINERCLEANFILES = $(MANINFILES) $(DAEMON_GENERATED)
+MAINTAINERCLEANFILES = $(MANINFILES)
diff --git a/src/Makefile.am b/src/Makefile.am
index bb51be50d7..a1e5fa573e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -85,6 +85,7 @@ lib_LTLIBRARIES = libvirt.la libvirt-qemu.la libvirt-lxc.la
moddir = $(libdir)/libvirt/connection-driver
mod_LTLIBRARIES =
+sbin_PROGRAMS =
confdir = $(sysconfdir)/libvirt
conf_DATA = libvirt.conf libvirt-admin.conf
@@ -537,12 +538,45 @@ remote/qemu_client_bodies.h: $(srcdir)/rpc/gendispatch.pl \
qemu QEMU $(QEMU_PROTOCOL) \
> $(srcdir)/remote/qemu_client_bodies.h
+remote/remote_daemon_dispatch_stubs.h: $(top_srcdir)/src/rpc/gendispatch.pl \
+ $(REMOTE_PROTOCOL) Makefile.am
+ $(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \
+ --mode=server remote REMOTE $(REMOTE_PROTOCOL) \
+ > $(srcdir)/remote/remote_daemon_dispatch_stubs.h
+
+remote/remote_daemon_dispatch_lxc_stubs.h: $(top_srcdir)/src/rpc/gendispatch.pl \
+ $(LXC_PROTOCOL) Makefile.am
+ $(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \
+ --mode=server lxc LXC $(LXC_PROTOCOL) \
+ > $(srcdir)/remote/remote_daemon_dispatch_lxc_stubs.h
+
+remote/remote_daemon_dispatch_qemu_stubs.h: $(top_srcdir)/src/rpc/gendispatch.pl \
+ $(QEMU_PROTOCOL) Makefile.am
+ $(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \
+ --mode=server qemu QEMU $(QEMU_PROTOCOL) \
+ > $(srcdir)/remote/remote_daemon_dispatch_qemu_stubs.h
+
REMOTE_DRIVER_SOURCES = \
remote/remote_driver.c remote/remote_driver.h \
$(REMOTE_DRIVER_GENERATED)
+LIBVIRTD_GENERATED = \
+ remote/remote_daemon_dispatch_stubs.h \
+ remote/remote_daemon_dispatch_lxc_stubs.h \
+ remote/remote_daemon_dispatch_qemu_stubs.h \
+ $(NULL)
+
+LIBVIRTD_SOURCES = \
+ remote/remote_daemon.c remote/remote_daemon.h \
+ remote/remote_daemon_config.c remote/remote_daemon_config.h \
+ remote/remote_daemon_dispatch.c remote/remote_daemon_dispatch.h \
+ remote/remote_daemon_stream.c remote/remote_daemon_stream.h \
+ $(LIBVIRTD_GENERATED)
+
EXTRA_DIST += $(REMOTE_DRIVER_PROTOCOL) \
- $(REMOTE_DRIVER_GENERATED)
+ $(REMOTE_DRIVER_GENERATED) \
+ $(LIBVIRTD_SOURCES) \
+ $(NULL)
ADMIN_PROTOCOL = $(srcdir)/admin/admin_protocol.x
@@ -1329,6 +1363,55 @@ BUILT_SOURCES += $(REMOTE_DRIVER_GENERATED)
endif WITH_REMOTE
+
+if WITH_LIBVIRTD
+
+sbin_PROGRAMS += libvirtd
+
+BUILT_SOURCES += $(LIBVIRTD_GENERATED)
+
+libvirtd_SOURCES = $(LIBVIRTD_SOURCES)
+
+libvirtd_CFLAGS = \
+ $(LIBXML_CFLAGS) $(GNUTLS_CFLAGS) $(SASL_CFLAGS) \
+ $(XDR_CFLAGS) $(DBUS_CFLAGS) $(LIBNL_CFLAGS) \
+ $(WARN_CFLAGS) $(PIE_CFLAGS) \
+ $(COVERAGE_CFLAGS) \
+ -I$(srcdir)/access \
+ -I$(srcdir)/conf \
+ -I$(srcdir)/rpc \
+ $(NULL)
+
+libvirtd_LDFLAGS = \
+ $(RELRO_LDFLAGS) \
+ $(PIE_LDFLAGS) \
+ $(COVERAGE_LDFLAGS) \
+ $(NO_INDIRECT_LDFLAGS) \
+ $(NO_UNDEFINED_LDFLAGS) \
+ $(NULL)
+
+libvirtd_LDADD = \
+ $(LIBXML_LIBS) \
+ $(GNUTLS_LIBS) \
+ $(SASL_LIBS) \
+ $(DBUS_LIBS) \
+ $(LIBNL_LIBS) \
+ $(NULL)
+
+if WITH_DTRACE_PROBES
+libvirtd_LDADD += ../src/libvirt_probes.lo
+endif WITH_DTRACE_PROBES
+
+libvirtd_LDADD += \
+ libvirt_driver_admin.la \
+ libvirt-lxc.la \
+ libvirt-qemu.la \
+ libvirt.la \
+ ../gnulib/lib/libgnu.la $(LIBSOCKET) \
+ $(NULL)
+
+endif WITH_LIBVIRTD
+
%protocol.c: %protocol.x %protocol.h $(srcdir)/rpc/genprotocol.pl
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/genprotocol.pl $(RPCGEN) -c \
$< $(srcdir)/$(subst $(srcdir)/,,$@)
@@ -2620,7 +2703,7 @@ locking/%-lockd.conf: $(srcdir)/locking/lockd.conf
cp $< $@
-sbin_PROGRAMS = virtlockd virtlogd
+sbin_PROGRAMS += virtlockd virtlogd
virtlockd_SOURCES = \
$(LOCK_DAEMON_SOURCES) \
@@ -3368,4 +3451,8 @@ endif WITH_NETWORK
CLEANFILES += *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda *.i *.s
DISTCLEANFILES += $(GENERATED_SYM_FILES)
-MAINTAINERCLEANFILES += $(REMOTE_DRIVER_GENERATED) $(VIR_NET_RPC_GENERATED)
+MAINTAINERCLEANFILES += \
+ $(REMOTE_DRIVER_GENERATED) \
+ $(LIBVIRTD_GENERATED) \
+ $(VIR_NET_RPC_GENERATED) \
+ $(NULL)
diff --git a/daemon/libvirtd.c b/src/remote/remote_daemon.c
similarity index 99%
rename from daemon/libvirtd.c
rename to src/remote/remote_daemon.c
index c5bb12b8ce..a452c72b59 100644
--- a/daemon/libvirtd.c
+++ b/src/remote/remote_daemon.c
@@ -1,7 +1,7 @@
/*
- * libvirtd.c: daemon start of day, guest process & i/o management
+ * remote_daemon.c: daemon start of day, guest process & i/o management
*
- * Copyright (C) 2006-2015 Red Hat, Inc.
+ * Copyright (C) 2006-2018 Red Hat, Inc.
* Copyright (C) 2006 Daniel P. Berrange
*
* This library is free software; you can redistribute it and/or
@@ -40,8 +40,8 @@
#define VIR_FROM_THIS VIR_FROM_QEMU
-#include "libvirtd.h"
-#include "libvirtd-config.h"
+#include "remote_daemon.h"
+#include "remote_daemon_config.h"
#include "admin/admin_server_dispatch.h"
#include "viruuid.h"
@@ -50,7 +50,7 @@
#include "virconf.h"
#include "virnetlink.h"
#include "virnetdaemon.h"
-#include "remote.h"
+#include "remote_daemon_dispatch.h"
#include "virhook.h"
#include "viraudit.h"
#include "virstring.h"
diff --git a/daemon/libvirtd.h b/src/remote/remote_daemon.h
similarity index 93%
rename from daemon/libvirtd.h
rename to src/remote/remote_daemon.h
index 082c4bc4df..4467f71da9 100644
--- a/daemon/libvirtd.h
+++ b/src/remote/remote_daemon.h
@@ -1,7 +1,7 @@
/*
- * libvirtd.h: daemon data structure definitions
+ * remote_daemon.h: daemon data structure definitions
*
- * Copyright (C) 2006-2015 Red Hat, Inc.
+ * Copyright (C) 2006-2018 Red Hat, Inc.
* Copyright (C) 2006 Daniel P. Berrange
*
* This library is free software; you can redistribute it and/or
@@ -22,8 +22,8 @@
*/
-#ifndef LIBVIRTD_H__
-# define LIBVIRTD_H__
+#ifndef __REMOTE_DAEMON_H__
+# define __REMOTE_DAEMON_H__
# define VIR_ENUM_SENTINELS
@@ -85,4 +85,4 @@ extern virNetSASLContextPtr saslCtxt;
extern virNetServerProgramPtr remoteProgram;
extern virNetServerProgramPtr qemuProgram;
-#endif
+#endif /* __REMOTE_DAEMON_H__ */
diff --git a/daemon/libvirtd-config.c b/src/remote/remote_daemon_config.c
similarity index 98%
rename from daemon/libvirtd-config.c
rename to src/remote/remote_daemon_config.c
index 19b3d168ea..2317115b82 100644
--- a/daemon/libvirtd-config.c
+++ b/src/remote/remote_daemon_config.c
@@ -1,7 +1,7 @@
/*
- * libvirtd-config.c: daemon start of day, guest process & i/o management
+ * remote_daemon_config.h: libvirtd config file handling
*
- * Copyright (C) 2006-2012, 2014, 2015 Red Hat, Inc.
+ * Copyright (C) 2006-2018 Red Hat, Inc.
* Copyright (C) 2006 Daniel P. Berrange
*
* This library is free software; you can redistribute it and/or
@@ -23,15 +23,15 @@
#include <config.h>
-#include "libvirtd-config.h"
+#include "remote_daemon_config.h"
#include "virconf.h"
#include "viralloc.h"
#include "virerror.h"
#include "virlog.h"
#include "rpc/virnetserver.h"
#include "configmake.h"
-#include "remote/remote_protocol.h"
-#include "remote/remote_driver.h"
+#include "remote_protocol.h"
+#include "remote_driver.h"
#include "util/virnetdevopenvswitch.h"
#include "virstring.h"
#include "virutil.h"
diff --git a/daemon/libvirtd-config.h b/src/remote/remote_daemon_config.h
similarity index 92%
rename from daemon/libvirtd-config.h
rename to src/remote/remote_daemon_config.h
index d618c96608..49ea80104b 100644
--- a/daemon/libvirtd-config.h
+++ b/src/remote/remote_daemon_config.h
@@ -1,7 +1,7 @@
/*
- * libvirtd-config.h: daemon start of day, guest process & i/o management
+ * remote_daemon_config.h: libvirtd config file handling
*
- * Copyright (C) 2006-2012, 2015 Red Hat, Inc.
+ * Copyright (C) 2006-2018 Red Hat, Inc.
* Copyright (C) 2006 Daniel P. Berrange
*
* This library is free software; you can redistribute it and/or
@@ -21,8 +21,8 @@
* Author: Daniel P. Berrange <berrange@redhat.com>
*/
-#ifndef __LIBVIRTD_CONFIG_H__
-# define __LIBVIRTD_CONFIG_H__
+#ifndef __REMOTE_DAEMON_CONFIG_H__
+# define __REMOTE_DAEMON_CONFIG_H__
# include "internal.h"
@@ -106,4 +106,4 @@ int daemonConfigLoadData(struct daemonConfig *data,
const char *filename,
const char *filedata);
-#endif /* __LIBVIRTD_CONFIG_H__ */
+#endif /* __REMOTE_DAEMON_CONFIG_H__ */
diff --git a/daemon/remote.c b/src/remote/remote_daemon_dispatch.c
similarity index 99%
rename from daemon/remote.c
rename to src/remote/remote_daemon_dispatch.c
index 6de4bd00d4..fdb0a362e4 100644
--- a/daemon/remote.c
+++ b/src/remote/remote_daemon_dispatch.c
@@ -1,7 +1,7 @@
/*
- * remote.c: handlers for RPC method calls
+ * remote_daemon_dispatch.c: handlers for RPC method calls
*
- * Copyright (C) 2007-2015 Red Hat, Inc.
+ * Copyright (C) 2007-2018 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
@@ -24,13 +24,13 @@
#include "virerror.h"
-#include "remote.h"
-#include "libvirtd.h"
+#include "remote_daemon_dispatch.h"
+#include "remote_daemon.h"
#include "libvirt_internal.h"
#include "datatypes.h"
#include "viralloc.h"
#include "virlog.h"
-#include "stream.h"
+#include "remote_daemon_stream.h"
#include "viruuid.h"
#include "vircommand.h"
#include "intprops.h"
@@ -108,9 +108,9 @@ remoteSerializeDomainDiskErrors(virDomainDiskErrorPtr errors,
remote_domain_disk_error **ret_errors_val,
u_int *ret_errors_len);
-#include "remote_dispatch.h"
-#include "qemu_dispatch.h"
-#include "lxc_dispatch.h"
+#include "remote_daemon_dispatch_stubs.h"
+#include "remote_daemon_dispatch_qemu_stubs.h"
+#include "remote_daemon_dispatch_lxc_stubs.h"
/* Prototypes */
diff --git a/daemon/remote.h b/src/remote/remote_daemon_dispatch.h
similarity index 85%
rename from daemon/remote.h
rename to src/remote/remote_daemon_dispatch.h
index c1bce9ba2e..015ab977fc 100644
--- a/daemon/remote.h
+++ b/src/remote/remote_daemon_dispatch.h
@@ -1,7 +1,7 @@
/*
- * remote.h: handlers for RPC method calls
+ * remote_daemon_dispatch.h: handlers for RPC method calls
*
- * Copyright (C) 2007, 2008, 2009 Red Hat, Inc.
+ * Copyright (C) 2007-2018 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
@@ -21,8 +21,8 @@
* Author: Daniel P. Berrange <berrange@redhat.com>
*/
-#ifndef __LIBVIRTD_REMOTE_H__
-# define __LIBVIRTD_REMOTE_H__
+#ifndef __REMOTE_DAEMON_DISPATCH_H__
+# define __REMOTE_DAEMON_DISPATCH_H__
# include "remote_protocol.h"
# include "rpc/virnetserverprogram.h"
@@ -42,4 +42,4 @@ void remoteClientFree(void *data);
void *remoteClientNew(virNetServerClientPtr client,
void *opaque);
-#endif /* __LIBVIRTD_REMOTE_H__ */
+#endif /* __REMOTE_DAEMON_DISPATCH_H__ */
diff --git a/daemon/stream.c b/src/remote/remote_daemon_stream.c
similarity index 99%
rename from daemon/stream.c
rename to src/remote/remote_daemon_stream.c
index 49682f1145..4dd3af9e0d 100644
--- a/daemon/stream.c
+++ b/src/remote/remote_daemon_stream.c
@@ -1,7 +1,7 @@
/*
- * stream.c: APIs for managing client streams
+ * remote_daemon_stream.c: APIs for managing client streams
*
- * Copyright (C) 2009-2014 Red Hat, Inc.
+ * Copyright (C) 2009-2018 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
@@ -23,8 +23,8 @@
#include <config.h>
-#include "stream.h"
-#include "remote.h"
+#include "remote_daemon_stream.h"
+#include "remote_daemon_dispatch.h"
#include "viralloc.h"
#include "virlog.h"
#include "virnetserverclient.h"
diff --git a/daemon/stream.h b/src/remote/remote_daemon_stream.h
similarity index 85%
rename from daemon/stream.h
rename to src/remote/remote_daemon_stream.h
index e1f1067595..832e1f7547 100644
--- a/daemon/stream.h
+++ b/src/remote/remote_daemon_stream.h
@@ -1,7 +1,7 @@
/*
- * stream.h: APIs for managing client streams
+ * remote_daemon_stream.h: APIs for managing client streams
*
- * Copyright (C) 2009 Red Hat, Inc.
+ * Copyright (C) 2009-2018 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
@@ -21,10 +21,10 @@
*/
-#ifndef __LIBVIRTD_STREAM_H__
-# define __LIBVIRTD_STREAM_H__
+#ifndef __REMOTE_DAEMON_STREAM_H__
+# define __REMOTE_DAEMON_STREAM_H__
-# include "libvirtd.h"
+# include "remote_daemon.h"
daemonClientStream *
daemonCreateClientStream(virNetServerClientPtr client,
@@ -47,4 +47,4 @@ daemonRemoveClientStream(virNetServerClientPtr client,
void
daemonRemoveAllClientStreams(daemonClientStream *stream);
-#endif /* __LIBVIRTD_STREAM_H__ */
+#endif /* __REMOTE_DAEMON_STREAM_H__ */
--
2.14.3
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On 02/21/2018 04:35 PM, Daniel P. Berrangé wrote: > Having a daemon/ directory makes little sense from a code structure > point of view, as 90% of the code that is built into libvirtd already > lives in the src/ directory. The virtlockd and virlogd daemons also live > entirely in src/{locking,logging} directories. This moves the source > code for libvirtd into src/remote/, alongside the client code. > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > --- > .gitignore | 2 + > daemon/Makefile.am | 125 +-------------------- > src/Makefile.am | 93 ++++++++++++++- > daemon/libvirtd.c => src/remote/remote_daemon.c | 10 +- > daemon/libvirtd.h => src/remote/remote_daemon.h | 10 +- > .../remote/remote_daemon_config.c | 10 +- > .../remote/remote_daemon_config.h | 10 +- > .../remote/remote_daemon_dispatch.c | 16 +-- > .../remote/remote_daemon_dispatch.h | 10 +- > .../stream.c => src/remote/remote_daemon_stream.c | 8 +- > .../stream.h => src/remote/remote_daemon_stream.h | 12 +- > 11 files changed, 136 insertions(+), 170 deletions(-) > rename daemon/libvirtd.c => src/remote/remote_daemon.c (99%) > rename daemon/libvirtd.h => src/remote/remote_daemon.h (93%) > rename daemon/libvirtd-config.c => src/remote/remote_daemon_config.c (98%) > rename daemon/libvirtd-config.h => src/remote/remote_daemon_config.h (92%) > rename daemon/remote.c => src/remote/remote_daemon_dispatch.c (99%) > rename daemon/remote.h => src/remote/remote_daemon_dispatch.h (85%) > rename daemon/stream.c => src/remote/remote_daemon_stream.c (99%)> rename daemon/stream.h => src/remote/remote_daemon_stream.h (85%) Not that simple. Instead of pointing out in the patch, here's the diff you need to squash in: diff --git i/cfg.mk w/cfg.mk index 920b60917..3172822cf 100644 --- i/cfg.mk +++ w/cfg.mk @@ -32,7 +32,7 @@ gnulib_dir = $(srcdir)/.gnulib # List of additional files that we want to pick up in our POTFILES.in # This is all gnulib files, as well as generated files for RPC code. generated_files = \ - $(srcdir)/daemon/{lxc,qemu,remote}_dispatch.h \ + $(srcdir)/src/remote/remote_daemon_dispatch{_lxc,_qemu,_}_stubs.h \ $(srcdir)/src/*/{admin_server,log_daemon,lock_daemon}_dispatch_stubs.h \ $(srcdir)/src/lxc/{lxc_monitor,lxc_controller}_dispatch.h \ $(srcdir)/src/remote/*_client_bodies.h \ @@ -1116,17 +1116,26 @@ test-wrap-argv: # sc_po_check can fail if generated files are not built first sc_po_check: \ - $(srcdir)/daemon/remote_dispatch.h \ - $(srcdir)/daemon/qemu_dispatch.h \ + $(srcdir)/src/remote/lxc_client_bodies.h \ + $(srcdir)/src/remote/qemu_client_bodies.h \ $(srcdir)/src/remote/remote_client_bodies.h \ + $(srcdir)/src/remote/remote_daemon_dispatch_lxc_stubs.h \ + $(srcdir)/src/remote/remote_daemon_dispatch_qemu_stubs.h \ + $(srcdir)/src/remote/remote_daemon_dispatch_stubs.h \ $(srcdir)/src/admin/admin_server_dispatch_stubs.h \ $(srcdir)/src/admin/admin_client.h -$(srcdir)/daemon/remote_dispatch.h: $(srcdir)/src/remote/remote_protocol.x - $(MAKE) -C daemon remote_dispatch.h -$(srcdir)/daemon/qemu_dispatch.h: $(srcdir)/src/remote/qemu_protocol.x - $(MAKE) -C daemon qemu_dispatch.h +$(srcdir)/src/remote/lxc_client_bodies.h: $(srcdir)/src/remote/lxc_protocol.x + $(MAKE) -C src remote/lxc_client_bodies.h +$(srcdir)/src/remote/qemu_client_bodies.h: $(srcdir)/src/remote/qemu_protocol.x + $(MAKE) -C src remote/qemu_client_bodies.h $(srcdir)/src/remote/remote_client_bodies.h: $(srcdir)/src/remote/remote_protocol.x $(MAKE) -C src remote/remote_client_bodies.h +$(srcdir)/src/remote/remote_daemon_dispatch_lxc_stubs.h: $(srcdir)/src/remote/lxc_protocol.x + $(MAKE) -C src remote/remote_daemon_dispatch_lxc_stubs.h +$(srcdir)/src/remote/remote_daemon_dispatch_qemu_stubs.h: $(srcdir)/src/remote/qemu_protocol.x + $(MAKE) -C src remote/remote_daemon_dispatch_qemu_stubs.h +$(srcdir)/src/remote/remote_daemon_dispatch_stubs.h: $(srcdir)/src/remote/remote_protocol.x + $(MAKE) -C src remote/remote_daemon_dispatch_stubs.h $(srcdir)/src/admin/admin_server_dispatch_stubs.h: $(srcdir)/src/admin/admin_protocol.x $(MAKE) -C src admin/admin_server_dispatch_stubs.h $(srcdir)/src/admin/admin_client.h: $(srcdir)/src/admin/admin_protocol.x @@ -1138,7 +1147,7 @@ exclude_file_name_regexp--sc_avoid_strcase = ^tools/vsh\.h$$ _src1=libvirt-stream|qemu/qemu_monitor|util/vir(command|file|fdstream)|xen/xend_internal|rpc/virnetsocket|lxc/lxc_controller|locking/lock_daemon|logging/log_daemon _test1=shunloadtest|virnettlscontexttest|virnettlssessiontest|vircgroupmock|commandhelper exclude_file_name_regexp--sc_avoid_write = \ - ^(src/($(_src1))|daemon/libvirtd|tools/virsh-console|tests/($(_test1)))\.c$$ + ^(src/($(_src1))|tools/virsh-console|tests/($(_test1)))\.c$$ exclude_file_name_regexp--sc_bindtextdomain = .* @@ -1159,7 +1168,7 @@ exclude_file_name_regexp--sc_libvirt_unmarked_diagnostics = \ exclude_file_name_regexp--sc_po_check = ^(docs/|src/rpc/gendispatch\.pl$$) exclude_file_name_regexp--sc_prohibit_VIR_ERR_NO_MEMORY = \ - ^(cfg\.mk|include/libvirt/virterror\.h|daemon/dispatch\.c|src/util/virerror\.c|docs/internals/oomtesting\.html\.in)$$ + ^(cfg\.mk|include/libvirt/virterror\.h|src/util/virerror\.c|docs/internals/oomtesting\.html\.in)$$ exclude_file_name_regexp--sc_prohibit_PATH_MAX = \ ^cfg\.mk$$ @@ -1179,9 +1188,9 @@ exclude_file_name_regexp--sc_prohibit_close = \ exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = \ (^tests/(qemuhelp|virhostcpu|virpcitest)data/|docs/js/.*\.js|docs/fonts/.*\.woff|\.diff|tests/virconfdata/no-newline\.conf$$) -_src2=src/(util/vircommand|libvirt|lxc/lxc_controller|locking/lock_daemon|logging/log_daemon) +_src2=src/(util/vircommand|libvirt|lxc/lxc_controller|locking/lock_daemon|logging/log_daemon|remote/remote_daemon) exclude_file_name_regexp--sc_prohibit_fork_wrappers = \ - (^($(_src2)|tests/testutils|daemon/libvirtd)\.c$$) + (^($(_src2)|tests/testutils)\.c$$) exclude_file_name_regexp--sc_prohibit_gethostname = ^src/util/vir(util|log)\.c$$ diff --git i/po/POTFILES.in w/po/POTFILES.in index 285955469..306535579 100644 --- i/po/POTFILES.in +++ w/po/POTFILES.in @@ -1,9 +1,3 @@ -daemon/libvirtd-config.c -daemon/libvirtd.c -daemon/qemu_dispatch.h -daemon/remote.c -daemon/remote_dispatch.h -daemon/stream.c gnulib/lib/gai_strerror.c gnulib/lib/getopt.c gnulib/lib/regcomp.c @@ -148,6 +142,11 @@ src/qemu/qemu_monitor_text.c src/qemu/qemu_parse_command.c src/qemu/qemu_process.c src/remote/remote_client_bodies.h +src/remote/remote_daemon.c +src/remote/remote_daemon_config.c +src/remote/remote_daemon_dispatch.c +src/remote/remote_daemon_dispatch_qemu_stubs.h +src/remote/remote_daemon_stream.c src/remote/remote_driver.c src/rpc/virkeepalive.c src/rpc/virnetclient.c diff --git i/src/Makefile.am w/src/Makefile.am index a1e5fa573..decdb9c3e 100644 --- i/src/Makefile.am +++ w/src/Makefile.am @@ -544,14 +544,14 @@ remote/remote_daemon_dispatch_stubs.h: $(top_srcdir)/src/rpc/gendispatch.pl \ --mode=server remote REMOTE $(REMOTE_PROTOCOL) \ > $(srcdir)/remote/remote_daemon_dispatch_stubs.h -remote/remote_daemon_dispatch_lxc_stubs.h: $(top_srcdir)/src/rpc/gendispatch.pl \ - $(LXC_PROTOCOL) Makefile.am +remote/remote_daemon_dispatch_lxc_stubs.h: \ + $(top_srcdir)/src/rpc/gendispatch.pl $(LXC_PROTOCOL) Makefile.am $(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \ --mode=server lxc LXC $(LXC_PROTOCOL) \ > $(srcdir)/remote/remote_daemon_dispatch_lxc_stubs.h -remote/remote_daemon_dispatch_qemu_stubs.h: $(top_srcdir)/src/rpc/gendispatch.pl \ - $(QEMU_PROTOCOL) Makefile.am +remote/remote_daemon_dispatch_qemu_stubs.h: \ + $(top_srcdir)/src/rpc/gendispatch.pl $(QEMU_PROTOCOL) Makefile.am $(AM_V_GEN)$(PERL) -w $(top_srcdir)/src/rpc/gendispatch.pl \ --mode=server qemu QEMU $(QEMU_PROTOCOL) \ > $(srcdir)/remote/remote_daemon_dispatch_qemu_stubs.h diff --git i/src/remote/remote_daemon.c w/src/remote/remote_daemon.c index a452c72b5..f8082f62f 100644 --- i/src/remote/remote_daemon.c +++ w/src/remote/remote_daemon.c @@ -1466,9 +1466,7 @@ int main(int argc, char **argv) { */ if (statuswrite != -1) { char status = 0; - while (write(statuswrite, &status, 1) == -1 && - errno == EINTR) - ; + ignore_value(safewrite(statuswrite, &status, 1)); VIR_FORCE_CLOSE(statuswrite); } @@ -1534,9 +1532,7 @@ int main(int argc, char **argv) { if (ret != 0) { /* Tell parent of daemon what failed */ char status = ret; - while (write(statuswrite, &status, 1) == -1 && - errno == EINTR) - ; + ignore_value(safewrite(statuswrite, &status, 1)); } VIR_FORCE_CLOSE(statuswrite); } diff --git i/src/remote/remote_daemon_config.c w/src/remote/remote_daemon_config.c index 2317115b8..b1516befb 100644 --- i/src/remote/remote_daemon_config.c +++ w/src/remote/remote_daemon_config.c @@ -1,5 +1,5 @@ /* - * remote_daemon_config.h: libvirtd config file handling + * remote_daemon_config.c: libvirtd config file handling * * Copyright (C) 2006-2018 Red Hat, Inc. * Copyright (C) 2006 Daniel P. Berrange Michal -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
On Thu, Feb 22, 2018 at 11:24:24AM +0100, Michal Privoznik wrote: > On 02/21/2018 04:35 PM, Daniel P. Berrangé wrote: > > Having a daemon/ directory makes little sense from a code structure > > point of view, as 90% of the code that is built into libvirtd already > > lives in the src/ directory. The virtlockd and virlogd daemons also live > > entirely in src/{locking,logging} directories. This moves the source > > code for libvirtd into src/remote/, alongside the client code. > > > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > > --- > > .gitignore | 2 + > > daemon/Makefile.am | 125 +-------------------- > > src/Makefile.am | 93 ++++++++++++++- > > daemon/libvirtd.c => src/remote/remote_daemon.c | 10 +- > > daemon/libvirtd.h => src/remote/remote_daemon.h | 10 +- > > .../remote/remote_daemon_config.c | 10 +- > > .../remote/remote_daemon_config.h | 10 +- > > .../remote/remote_daemon_dispatch.c | 16 +-- > > .../remote/remote_daemon_dispatch.h | 10 +- > > .../stream.c => src/remote/remote_daemon_stream.c | 8 +- > > .../stream.h => src/remote/remote_daemon_stream.h | 12 +- > > 11 files changed, 136 insertions(+), 170 deletions(-) > > rename daemon/libvirtd.c => src/remote/remote_daemon.c (99%) > > rename daemon/libvirtd.h => src/remote/remote_daemon.h (93%) > > rename daemon/libvirtd-config.c => src/remote/remote_daemon_config.c (98%) > > rename daemon/libvirtd-config.h => src/remote/remote_daemon_config.h (92%) > > rename daemon/remote.c => src/remote/remote_daemon_dispatch.c (99%) > > rename daemon/remote.h => src/remote/remote_daemon_dispatch.h (85%) > > rename daemon/stream.c => src/remote/remote_daemon_stream.c (99%)> rename daemon/stream.h => src/remote/remote_daemon_stream.h (85%) > > Not that simple. Instead of pointing out in the patch, here's the diff > you need to squash in: > > > diff --git i/cfg.mk w/cfg.mk > index 920b60917..3172822cf 100644 > --- i/cfg.mk > +++ w/cfg.mk > @@ -32,7 +32,7 @@ gnulib_dir = $(srcdir)/.gnulib > # List of additional files that we want to pick up in our POTFILES.in > # This is all gnulib files, as well as generated files for RPC code. > generated_files = \ > - $(srcdir)/daemon/{lxc,qemu,remote}_dispatch.h \ > + $(srcdir)/src/remote/remote_daemon_dispatch{_lxc,_qemu,_}_stubs.h \ > $(srcdir)/src/*/{admin_server,log_daemon,lock_daemon}_dispatch_stubs.h \ I squashed the rule into the next line instead - $(srcdir)/daemon/{lxc,qemu,remote}_dispatch.h \ - $(srcdir)/src/*/{admin_server,log_daemon,lock_daemon}_dispatch_stubs.h \ + $(srcdir)/src/*/{remote_daemon,admin_server,log_daemon,lock_daemon}_dispatch_*stubs.h \ > @@ -1116,17 +1116,26 @@ test-wrap-argv: > > # sc_po_check can fail if generated files are not built first > sc_po_check: \ > - $(srcdir)/daemon/remote_dispatch.h \ > - $(srcdir)/daemon/qemu_dispatch.h \ > + $(srcdir)/src/remote/lxc_client_bodies.h \ > + $(srcdir)/src/remote/qemu_client_bodies.h \ These two client_bodies.h additions are unrelated to this patch. > $(srcdir)/src/remote/remote_client_bodies.h \ > + $(srcdir)/src/remote/remote_daemon_dispatch_lxc_stubs.h \ > + $(srcdir)/src/remote/remote_daemon_dispatch_qemu_stubs.h \ > + $(srcdir)/src/remote/remote_daemon_dispatch_stubs.h \ > $(srcdir)/src/admin/admin_server_dispatch_stubs.h \ > $(srcdir)/src/admin/admin_client.h > -$(srcdir)/daemon/remote_dispatch.h: $(srcdir)/src/remote/remote_protocol.x > - $(MAKE) -C daemon remote_dispatch.h > -$(srcdir)/daemon/qemu_dispatch.h: $(srcdir)/src/remote/qemu_protocol.x > - $(MAKE) -C daemon qemu_dispatch.h > +$(srcdir)/src/remote/lxc_client_bodies.h: $(srcdir)/src/remote/lxc_protocol.x > + $(MAKE) -C src remote/lxc_client_bodies.h > +$(srcdir)/src/remote/qemu_client_bodies.h: $(srcdir)/src/remote/qemu_protocol.x > + $(MAKE) -C src remote/qemu_client_bodies.h These two are unrelated too > diff --git i/src/Makefile.am w/src/Makefile.am > index a1e5fa573..decdb9c3e 100644 > --- i/src/Makefile.am > +++ w/src/Makefile.am > @@ -544,14 +544,14 @@ remote/remote_daemon_dispatch_stubs.h: $(top_srcdir)/src/rpc/gendispatch.pl \ > --mode=server remote REMOTE $(REMOTE_PROTOCOL) \ > > $(srcdir)/remote/remote_daemon_dispatch_stubs.h > > -remote/remote_daemon_dispatch_lxc_stubs.h: $(top_srcdir)/src/rpc/gendispatch.pl \ > - $(LXC_PROTOCOL) Makefile.am > +remote/remote_daemon_dispatch_lxc_stubs.h: \ > + $(top_srcdir)/src/rpc/gendispatch.pl $(LXC_PROTOCOL) Makefile.am Better is to replace $(top_srcdir)/src with $(srcdir) Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2025 Red Hat, Inc.