On 10/09/2012 02:56 PM, Matthias Bolte wrote:
Currently virNetSocketNew fails because virSetCloseExec fails as
there
is no proper implementation for it on Windows at the moment. Workaround
this by pretending that setting close-on-exec on the fd works. This can
be done because libvirt currently lacks the ability to create child
processes on Windows anyway. So there is no point in failing to set a
flag that isn't useful at the moment anyway.
---
src/util/util.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/src/util/util.c b/src/util/util.c
index 43fdaf1..356a03a 100644
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -275,7 +275,11 @@ int virSetInherit(int fd, bool inherit) {
int virSetInherit(int fd ATTRIBUTE_UNUSED, bool inherit ATTRIBUTE_UNUSED)
{
- return -1;
+ /* FIXME: Currently creating child processes is not supported on
+ * Win32, so there is no point in failing calls that are only relevant
+ * when creating child processes. So just pretend that we changed the
+ * inheritance property of the given fd as requested. */
+ return 0;
Actually, gnulib CAN do this on Windows, but we aren't using the gnulib
cloexec module. However, getting that in place is a bit more involved,
so your patch is fine as an interim measure.
ACK.
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org