[ovs-git] [openvswitch/ovs] add49d: Fix nonstandard isatty on Windows

GitHub noreply at github.com
Thu Jul 6 15:32:55 UTC 2017


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: add49d45bb7e87ad2ad8ccef8d6447ca8a57c89c
      https://github.com/openvswitch/ovs/commit/add49d45bb7e87ad2ad8ccef8d6447ca8a57c89c
  Author: Alin Serdean <aserdean at cloudbasesolutions.com>
  Date:   2017-07-06 (Thu, 06 Jul 2017)

  Changed paths:
    M include/windows/unistd.h

  Log Message:
  -----------
  Fix nonstandard isatty on Windows

A lot of tests are failing, due to the open flow ports being outputted using
names instead of numbers.
i.e.: http://64.119.130.115/ovs/beb75a40fdc295bfd6521b0068b4cd12f6de507c/testsuite.dir/0464/testsuite.log.gz

The issues encountered above is because 'monitor' with 'detach' arguments are
specified, that in turn will call 'close_standard_fds'
(https://github.com/openvswitch/ovs/blob/master/lib/daemon-unix.c#L472)
which will create a duplicate fd over '/dev/null' on Linux and 'nul' on Windows.

'isatty' will be called on those FDs.
What POSIX standard says:
http://pubs.opengroup.org/onlinepubs/009695399/functions/isatty.html
'The isatty() function shall test whether fildes, an open file descriptor,
is associated with a terminal device.'
What MSDN says:
https://msdn.microsoft.com/en-us/library/f4s0ddew(VS.80).aspx
'The _isatty function determines whether fd is associated with a character
device (a terminal, console, printer, or serial port).'

This patch adds another check using 'GetConsoleMode'
https://msdn.microsoft.com/en-us/library/windows/desktop/ms683167(v=vs.85).aspx
which will fail if the handle pointing to the file descriptor is not associated
to a console.

Signed-off-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>
Co-authored-by: Ben Pfaff <blp at ovn.org>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Anand Kumar <kumaranand at vmware.com>




More information about the git mailing list