[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sr #107481] Missing output from gnutls-cli on Solaris
From: |
Knut Anders Hatlen |
Subject: |
[sr #107481] Missing output from gnutls-cli on Solaris |
Date: |
Thu, 23 Sep 2010 07:56:23 +0000 |
User-agent: |
Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.9.2.8) Gecko/20100830 Firefox/3.6.8 |
URL:
<http://savannah.gnu.org/support/?107481>
Summary: Missing output from gnutls-cli on Solaris
Project: GnuTLS
Submitted by: kah
Submitted on: Thu 23 Sep 2010 07:56:22 AM GMT
Category: None
Priority: 5 - Normal
Severity: 3 - Normal
Status: None
Privacy: Public
Assigned to: None
Originator Email:
Open/Closed: Open
Discussion Lock: Any
Operating System: None
_______________________________________________________
Details:
I've seen the following problem with GnuTLS 2.8.6 and 2.10.1 on Solaris 10
and Solaris 11 Express:
When I execute gnutls-cli in a terminal, for example "gnutls-cli -p 993
imap.gmail.com", I see the following lines at the end of the output:
- MAC: MD5
- Compression: NULL
- Handshake was completed
- Simple Client Mode:
* OK Gimap ready for requests from X.Y.Z.W x31if2123995weq.86
However, if I redirect the output to a file, or pipe it to another process, I
only see this output at the end:
$ gnutls-cli -p 993 imap.gmail.com < /dev/null | cat
(...)
- MAC: MD5
- Compression: NULL
* OK Gimap ready for requests from X.Y.Z.W m37if2142737wej.5
Note that the "Handshake was completed" line and "Simple Client Mode" have
disappeared. This causes problems for programs that look for these lines to
verify that the handshake was successful. For example, the open-tls-stream
function in Emacs hangs because of it.
I think this is caused by these lines in src/cli.c:
/* do not buffer */
#if !(defined _WIN32 || defined __WIN32__)
setbuf (stdin, NULL);
#endif
setbuf (stdout, NULL);
setbuf (stderr, NULL);
Apparently, this will remove buffered contents that haven't been flushed yet.
If I add
fflush(stdout);
fflush(stderr);
before the calls to setbuf(), the output becomes the expected one even in the
case where the output is redirected/piped.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/support/?107481>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
- [sr #107481] Missing output from gnutls-cli on Solaris,
Knut Anders Hatlen <=