summaryrefslogtreecommitdiff
path: root/src/cli.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2011-12-30 18:22:38 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2011-12-30 18:23:13 +0200
commit10ce2625f2625149083e66232795e7b20e3609ad (patch)
tree87653c184c7a14d61821abf6125953fae95d585e /src/cli.c
parent340a2a99d6a6b4a98fab75b876422d74ff8d22d2 (diff)
downloadgnutls-10ce2625f2625149083e66232795e7b20e3609ad.tar.gz
gnutls-cli can now read input from win32.
Diffstat (limited to 'src/cli.c')
-rw-r--r--src/cli.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/cli.c b/src/cli.c
index 8676d1c71b..9c39a10b52 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -688,12 +688,17 @@ static int check_net_or_keyboard_input(socket_st* hd)
do
{
FD_ZERO (&rset);
- FD_SET (fileno (stdin), &rset);
FD_SET (hd->fd, &rset);
+#ifndef _WIN32
+ FD_SET (fileno (stdin), &rset);
maxfd = MAX (fileno (stdin), hd->fd);
+#else
+ maxfd = hd->fd;
+#endif
+
tv.tv_sec = 0;
- tv.tv_usec = 500 * 1000;
+ tv.tv_usec = 50 * 1000;
if (hd->secure == 1)
if (gnutls_record_check_pending(hd->session))
@@ -706,9 +711,18 @@ static int check_net_or_keyboard_input(socket_st* hd)
if (FD_ISSET (hd->fd, &rset))
return IN_NET;
-
+#ifdef _WIN32
+ {
+ int state;
+ state = WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 200);
+
+ if (state == WAIT_OBJECT_0)
+ return IN_KEYBOARD;
+ }
+#else
if (FD_ISSET (fileno (stdin), &rset))
return IN_KEYBOARD;
+#endif
}
while(err == 0);