mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 04:25:18 +00:00
Fix Win32 portability problems
The network filter / snapshot / hooks code introduced some non-portable pices that broke the win32 build * configure.ac: Check for net/ethernet.h required by nwfile config parsing code * src/conf/nwfilter_conf.c: Define ethernet protocol constants if net/ethernet.h is missing * src/util/hooks.c: Disable hooks build on Win32 since it lacks fork/exec/pipe * src/util/threads-win32.c: Fix unchecked return value * tools/virsh.c: Disable SIGPIPE on Win32 since it doesn't exist. Fix non-portable strftime() formats
This commit is contained in:
parent
9fd54a78dc
commit
3d3af08879
@ -112,7 +112,7 @@ dnl Availability of various not common threadsafe functions
|
|||||||
AC_CHECK_FUNCS([strerror_r strtok_r getmntent_r getgrnam_r getpwuid_r])
|
AC_CHECK_FUNCS([strerror_r strtok_r getmntent_r getgrnam_r getpwuid_r])
|
||||||
|
|
||||||
dnl Availability of various common headers (non-fatal if missing).
|
dnl Availability of various common headers (non-fatal if missing).
|
||||||
AC_CHECK_HEADERS([pwd.h paths.h regex.h sys/syslimits.h sys/utsname.h sys/wait.h winsock2.h sched.h termios.h sys/poll.h syslog.h mntent.h])
|
AC_CHECK_HEADERS([pwd.h paths.h regex.h sys/syslimits.h sys/utsname.h sys/wait.h winsock2.h sched.h termios.h sys/poll.h syslog.h mntent.h net/ethernet.h])
|
||||||
|
|
||||||
dnl Where are the XDR functions?
|
dnl Where are the XDR functions?
|
||||||
dnl If portablexdr is installed, prefer that.
|
dnl If portablexdr is installed, prefer that.
|
||||||
|
@ -26,9 +26,13 @@
|
|||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <net/ethernet.h>
|
#if HAVE_NET_ETHERNET_H
|
||||||
|
# include <net/ethernet.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
|
|
||||||
@ -41,6 +45,22 @@
|
|||||||
#include "domain_conf.h"
|
#include "domain_conf.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* XXX
|
||||||
|
* The config parser/structs should not be using platform specific
|
||||||
|
* constants. Win32 lacks these constants, breaking the parser,
|
||||||
|
* so temporarily define them until this can be re-written to use
|
||||||
|
* locally defined enums for all constants
|
||||||
|
*/
|
||||||
|
#ifndef ETHERTYPE_IP
|
||||||
|
#define ETHERTYPE_IP 0x0800
|
||||||
|
#endif
|
||||||
|
#ifndef ETHERTYPE_ARP
|
||||||
|
#define ETHERTYPE_ARP 0x0806
|
||||||
|
#endif
|
||||||
|
#ifndef ETHERTYPE_IPV6
|
||||||
|
#define ETHERTYPE_IPV6 0x86dd
|
||||||
|
#endif
|
||||||
|
|
||||||
#define VIR_FROM_THIS VIR_FROM_NWFILTER
|
#define VIR_FROM_THIS VIR_FROM_NWFILTER
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,7 +24,9 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#if HAVE_SYS_WAIT_H
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
|
#endif
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -188,6 +190,19 @@ virHookPresent(int driver) {
|
|||||||
* Returns: 0 if the execution succeeded, 1 if the script was not found or
|
* Returns: 0 if the execution succeeded, 1 if the script was not found or
|
||||||
* invalid parameters, and -1 if script returned an error
|
* invalid parameters, and -1 if script returned an error
|
||||||
*/
|
*/
|
||||||
|
#ifdef WIN32
|
||||||
|
int
|
||||||
|
virHookCall(int driver ATTRIBUTE_UNUSED,
|
||||||
|
const char *id ATTRIBUTE_UNUSED,
|
||||||
|
int op ATTRIBUTE_UNUSED,
|
||||||
|
int sub_op ATTRIBUTE_UNUSED,
|
||||||
|
const char *extra ATTRIBUTE_UNUSED,
|
||||||
|
const char *input ATTRIBUTE_UNUSED) {
|
||||||
|
virReportSystemError(ENOSYS, "%s",
|
||||||
|
_("spawning hooks not supported on this platform"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
#else
|
||||||
int
|
int
|
||||||
virHookCall(int driver, const char *id, int op, int sub_op, const char *extra,
|
virHookCall(int driver, const char *id, int op, int sub_op, const char *extra,
|
||||||
const char *input) {
|
const char *input) {
|
||||||
@ -447,3 +462,4 @@ no_memory:
|
|||||||
#undef ADD_ENV_LIT
|
#undef ADD_ENV_LIT
|
||||||
#undef ADD_ENV_SPACE
|
#undef ADD_ENV_SPACE
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
@ -69,7 +69,7 @@ void virThreadOnExit(void)
|
|||||||
|
|
||||||
int virMutexInit(virMutexPtr m)
|
int virMutexInit(virMutexPtr m)
|
||||||
{
|
{
|
||||||
virMutexInitRecursive(m);
|
return virMutexInitRecursive(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
int virMutexInitRecursive(virMutexPtr m)
|
int virMutexInitRecursive(virMutexPtr m)
|
||||||
|
@ -414,6 +414,7 @@ out:
|
|||||||
*/
|
*/
|
||||||
static int disconnected = 0; /* we may have been disconnected */
|
static int disconnected = 0; /* we may have been disconnected */
|
||||||
|
|
||||||
|
#ifdef SIGPIPE
|
||||||
/*
|
/*
|
||||||
* vshCatchDisconnect:
|
* vshCatchDisconnect:
|
||||||
*
|
*
|
||||||
@ -442,6 +443,10 @@ vshSetupSignals(void) {
|
|||||||
|
|
||||||
sigaction(SIGPIPE, &sig_action, NULL);
|
sigaction(SIGPIPE, &sig_action, NULL);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
static void
|
||||||
|
vshSetupSignals(void) {}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* vshReconnect:
|
* vshReconnect:
|
||||||
@ -8425,7 +8430,7 @@ cmdSnapshotList(vshControl *ctl, const vshCmd *cmd)
|
|||||||
&creation) < 0)
|
&creation) < 0)
|
||||||
continue;
|
continue;
|
||||||
localtime_r(&creation, &time_info);
|
localtime_r(&creation, &time_info);
|
||||||
strftime(timestr, sizeof(timestr), "%F %T %z", &time_info);
|
strftime(timestr, sizeof(timestr), "%Y-%m-%d %H:%M:%S %z", &time_info);
|
||||||
|
|
||||||
vshPrint(ctl, " %-20s %-25s %s\n", names[i], timestr, state);
|
vshPrint(ctl, " %-20s %-25s %s\n", names[i], timestr, state);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user