[sr #107481] Missing output from gnutls-cli on Solaris
Knut Anders Hatlen
INVALID.NOREPLY at gnu.org
Thu Sep 23 09:56:23 CEST 2010
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/
More information about the Gnutls-devel
mailing list