Richard W.M. Jones
2009-Nov-26 12:07 UTC
[Libguestfs] [PATCH] daemon/Win32: use gnulib modules connect, socket and symlinkat (for readlinkat).
We should try to replace readlinkat with {a,x}readlinkat, but I'll leave that to a future change. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://et.redhat.com/~rjones/virt-top -------------- next part -------------->From 97b25cc5a5a30ad9fabb3a705d808051c813f2b8 Mon Sep 17 00:00:00 2001From: Richard Jones <rjones at redhat.com> Date: Thu, 26 Nov 2009 11:52:28 +0000 Subject: [PATCH] daemon/Win32: use gnulib modules connect, socket and symlinkat (for readlinkat). --- daemon/.gitignore | 1 + daemon/Makefile.am | 9 ++++++++- daemon/guestfsd.c | 2 ++ daemon/m4/gnulib-cache.m4 | 5 ++++- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/daemon/.gitignore b/daemon/.gitignore index 0d9dac7..df14433 100644 --- a/daemon/.gitignore +++ b/daemon/.gitignore @@ -123,6 +123,7 @@ m4/string_h.m4 m4/strndup.m4 m4/strnlen.m4 m4/symlink.m4 +m4/symlinkat.m4 m4/sys_ioctl_h.m4 m4/sys_select_h.m4 m4/sys_socket_h.m4 diff --git a/daemon/Makefile.am b/daemon/Makefile.am index 2f43448..04d50eb 100644 --- a/daemon/Makefile.am +++ b/daemon/Makefile.am @@ -131,7 +131,14 @@ guestfsd_SOURCES = \ zerofree.c guestfsd_LDADD = \ libprotocol.a \ - lib/libgnu.a $(LIB_CLOCK_GETTIME) + lib/libgnu.a \ + $(GETADDRINFO_LIB) \ + $(HOSTENT_LIB) \ + $(INET_NTOP_LIB) \ + $(LIBSOCKET) \ + $(LIB_CLOCK_GETTIME) \ + $(LIBINTL) \ + $(SERVENT_LIB) AM_CPPFLAGS = -I$(srcdir)/lib -Ilib guestfsd_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) diff --git a/daemon/guestfsd.c b/daemon/guestfsd.c index acb44f9..10a3742 100644 --- a/daemon/guestfsd.c +++ b/daemon/guestfsd.c @@ -39,6 +39,8 @@ #include <netdb.h> #include <sys/select.h> #include <sys/wait.h> +#include <arpa/inet.h> +#include <netinet/in.h> #ifdef HAVE_PRINTF_H # include <printf.h> diff --git a/daemon/m4/gnulib-cache.m4 b/daemon/m4/gnulib-cache.m4 index e8b9edf..1e0fd17 100644 --- a/daemon/m4/gnulib-cache.m4 +++ b/daemon/m4/gnulib-cache.m4 @@ -15,13 +15,14 @@ # Specification in the form of a command-line invocation: -# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --no-libtool --macro-prefix=gl byteswap c-ctype fsusage futimens getaddrinfo getline glob hash ignore-value manywarnings mkdtemp netdb openat perror pread readlink select sleep strchrnul strndup sys_select sys_wait vasprintf warnings +# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --no-libtool --macro-prefix=gl byteswap c-ctype connect fsusage futimens getaddrinfo getline glob hash ignore-value manywarnings mkdtemp netdb openat perror pread readlink select sleep socket strchrnul strndup symlinkat sys_select sys_wait vasprintf warnings # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([]) gl_MODULES([ byteswap c-ctype + connect fsusage futimens getaddrinfo @@ -38,8 +39,10 @@ gl_MODULES([ readlink select sleep + socket strchrnul strndup + symlinkat sys_select sys_wait vasprintf -- 1.6.5.2
Richard W.M. Jones
2009-Nov-26 13:33 UTC
[Libguestfs] [PATCH VERSION 2] daemon/Win32: use gnulib modules connect, socket and symlinkat (for readlinkat).
This now calls WSAStartup via the Gnulib gl_sockets_startup function. (Thanks Dan Berrange and Jim Meyering). Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://et.redhat.com/~rjones/virt-top -------------- next part -------------->From cac1018e353c788faa758e00418b01ab65da8692 Mon Sep 17 00:00:00 2001From: Richard Jones <rjones at redhat.com> Date: Thu, 26 Nov 2009 11:52:28 +0000 Subject: [PATCH] daemon/Win32: use gnulib modules connect, socket and symlinkat (for readlinkat). --- daemon/.gitignore | 1 + daemon/Makefile.am | 9 ++++++++- daemon/guestfsd.c | 26 ++++++++++++++++++++++++++ daemon/m4/gnulib-cache.m4 | 5 ++++- 4 files changed, 39 insertions(+), 2 deletions(-) diff --git a/daemon/.gitignore b/daemon/.gitignore index 0d9dac7..df14433 100644 --- a/daemon/.gitignore +++ b/daemon/.gitignore @@ -123,6 +123,7 @@ m4/string_h.m4 m4/strndup.m4 m4/strnlen.m4 m4/symlink.m4 +m4/symlinkat.m4 m4/sys_ioctl_h.m4 m4/sys_select_h.m4 m4/sys_socket_h.m4 diff --git a/daemon/Makefile.am b/daemon/Makefile.am index 2f43448..04d50eb 100644 --- a/daemon/Makefile.am +++ b/daemon/Makefile.am @@ -131,7 +131,14 @@ guestfsd_SOURCES = \ zerofree.c guestfsd_LDADD = \ libprotocol.a \ - lib/libgnu.a $(LIB_CLOCK_GETTIME) + lib/libgnu.a \ + $(GETADDRINFO_LIB) \ + $(HOSTENT_LIB) \ + $(INET_NTOP_LIB) \ + $(LIBSOCKET) \ + $(LIB_CLOCK_GETTIME) \ + $(LIBINTL) \ + $(SERVENT_LIB) AM_CPPFLAGS = -I$(srcdir)/lib -Ilib guestfsd_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) diff --git a/daemon/guestfsd.c b/daemon/guestfsd.c index acb44f9..c67503e 100644 --- a/daemon/guestfsd.c +++ b/daemon/guestfsd.c @@ -39,11 +39,14 @@ #include <netdb.h> #include <sys/select.h> #include <sys/wait.h> +#include <arpa/inet.h> +#include <netinet/in.h> #ifdef HAVE_PRINTF_H # include <printf.h> #endif +#include "sockets.h" #include "c-ctype.h" #include "ignore-value.h" @@ -89,6 +92,24 @@ daemon (int nochdir, int noclose) } #endif /* WIN32 */ +#ifdef WIN32 +static int +winsock_init (void) +{ + int r; + + /* http://msdn2.microsoft.com/en-us/library/ms742213.aspx */ + r = gl_sockets_startup (SOCKETS_2_2); + return r == 0 ? 0 : -1; +} +#else /* !WIN32 */ +static int +winsock_init (void) +{ + return 0; +} +#endif /* !WIN32 */ + /* Location to mount root device. */ const char *sysroot = "/sysroot"; /* No trailing slash. */ int sysroot_len = 8; @@ -116,6 +137,11 @@ main (int argc, char *argv[]) char *cmdline; char *vmchannel = NULL; + if (winsock_init () == -1) { + fprintf (stderr, "winsock initialization failed\n"); + return -1; + } + #ifdef HAVE_REGISTER_PRINTF_SPECIFIER /* http://udrepper.livejournal.com/20948.html */ register_printf_specifier ('Q', print_shell_quote, print_arginfo); diff --git a/daemon/m4/gnulib-cache.m4 b/daemon/m4/gnulib-cache.m4 index e8b9edf..1e0fd17 100644 --- a/daemon/m4/gnulib-cache.m4 +++ b/daemon/m4/gnulib-cache.m4 @@ -15,13 +15,14 @@ # Specification in the form of a command-line invocation: -# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --no-libtool --macro-prefix=gl byteswap c-ctype fsusage futimens getaddrinfo getline glob hash ignore-value manywarnings mkdtemp netdb openat perror pread readlink select sleep strchrnul strndup sys_select sys_wait vasprintf warnings +# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --no-libtool --macro-prefix=gl byteswap c-ctype connect fsusage futimens getaddrinfo getline glob hash ignore-value manywarnings mkdtemp netdb openat perror pread readlink select sleep socket strchrnul strndup symlinkat sys_select sys_wait vasprintf warnings # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([]) gl_MODULES([ byteswap c-ctype + connect fsusage futimens getaddrinfo @@ -38,8 +39,10 @@ gl_MODULES([ readlink select sleep + socket strchrnul strndup + symlinkat sys_select sys_wait vasprintf -- 1.6.5.2