[libvirt] [PATCH] win32: Pretend that close-on-exec works

Matthias Bolte matthias.bolte at googlemail.com
Tue Oct 9 21:57:38 UTC 2012


2012/10/9 Eric Blake <eblake at redhat.com>:
> 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.

Thanks, pushed.

-- 
Matthias Bolte
http://photron.blogspot.com




More information about the libvir-list mailing list