I use openssl 0.9.8 on SPARC Solaris 10 and try to send a text message to a
server running on Windows XP Professional SP3 with activated firewall using a
non-blocking socket with BIO_puts().
The write to the socket returns with ENOTCONN which is a non-fatal error
because BIO_should_retry() returns true. After some tries the client side
receives a SIGPIPE and crashes.
The truss command shows the following output at the client side:
428: so_socket(PF_INET, SOCK_STREAM, IPPROTO_TCP, "", SOV_DEFAULT) = 7
428: ioctl(7, FIONBIO, 0xFFBFDC6C) = 0
428: setsockopt(7, SOL_SOCKET, SO_KEEPALIVE, 0xFFBFDCE4, 4, SOV_DEFAULT) = 0
428: connect(7, 0x003CEF58, 16, SOV_DEFAULT) Err#150 EINPROGRESS
428: access("/var/opt/asdis/log", F_OK) = 0
428: umask(077) = 07
428: open64("/var/opt/asdis/log/AsdisClient.log", O_RDWR|O_APPEND|O_CREAT, 06
00) = 8
428: umask(07) = 077
428: fchmod(8, 0664) = 0
428: getuid() = 0 [0]
428: time() = 1227860564
428: fstat64(8, 0xFFBF9F40) = 0
428: write(8, " < 0 7 > N o v 2 8 0".., 65) = 65
428: close(8) = 0
425: brk(0x0003AE00) = 0
425: write(1, " a s d s t a r t : A S".., 40) = 40
425: brk(0x0003AC00) = 0
425: brk(0x0003AA00) = 0
425: _exit(0)
428: pollsys(0xFFBFDC68, 1, 0xFFBFDD10, 0x00000000) (sleeping...)
428: pollsys(0xFFBFDC68, 1, 0xFFBFDD10, 0x00000000) = 0
428: access("/var/opt/asdis/log", F_OK) = 0
428: umask(077) = 07
428: open64("/var/opt/asdis/log/AsdisClient.log", O_RDWR|O_APPEND|O_CREAT, 06
00) = 8
428: umask(07) = 077
428: fchmod(8, 0664) = 0
428: getuid() = 0 [0]
428: time() = 1227860574
428: fstat64(8, 0xFFBF9F40) = 0
428: write(8, " < 0 7 > N o v 2 8 0".., 68) = 68
428: close(8)
428: getsockopt(7, SOL_SOCKET, SO_ERROR, 0xFFBFDC6C, 0xFFBFDC68, SOV_DEFAULT)
= 0
428: write(7, " A S D C L I E N T E V E".., 16) Err#134 ENOTCONN
428: access("/var/opt/asdis/log", F_OK) = 0
428: umask(077) = 07
428: open64("/var/opt/asdis/log/AsdisClient.log", O_RDWR|O_APPEND|O_CREAT, 06
00) = 8
428: umask(07) = 077
428: fchmod(8, 0664) = 0
428: getuid() = 0 [0]
428: time() = 1227860574
428: fstat64(8, 0xFFBF9F40) = 0
428: write(8, " < 0 7 > N o v 2 8 0".., 65) = 65
428: close(8) = 0
428: pollsys(0xFFBFDC68, 1, 0xFFBFDD10, 0x00000000) (sleeping...)
428: pollsys(0xFFBFDC68, 1, 0xFFBFDD10, 0x00000000) = 0
428: access("/var/opt/asdis/log", F_OK) = 0
428: umask(077) = 07
428: open64("/var/opt/asdis/log/AsdisClient.log", O_RDWR|O_APPEND|O_CREAT, 06
00) = 8
428: umask(07) = 077
428: fchmod(8, 0664) = 0
428: getuid() = 0 [0]
428: time() = 1227860584
428: fstat64(8, 0xFFBF9F40) = 0
428: write(8, " < 0 7 > N o v 2 8 0".., 68) = 68
428: close(8) = 0
428: write(7, " A S D C L I E N T E V E".., 16) Err#134 ENOTCONN
428: access("/var/opt/asdis/log", F_OK) = 0
428: umask(077) = 07
... etc.
428: open64("/var/opt/asdis/log/AsdisClient.log", O_RDWR|O_APPEND|O_CREAT, 06
00) = 8
428: umask(07) = 077
428: fchmod(8, 0664) = 0
428: getuid() = 0 [0]
428: time() = 1227860784
428: fstat64(8, 0xFFBF9F40) = 0
428: write(8, " < 0 7 > N o v 2 8 0".., 68) = 68
428: close(8) = 0
428: write(7, " A S D C L I E N T E V E".., 16) Err#134 ENOTCONN
428: access("/var/opt/asdis/log", F_OK) = 0
428: umask(077) = 07
428: open64("/var/opt/asdis/log/AsdisClient.log", O_RDWR|O_APPEND|O_CREAT, 06
00) = 8
428: umask(07) = 077
428: fchmod(8, 0664) = 0
428: getuid() = 0 [0]
428: time() = 1227860784
428: fstat64(8, 0xFFBF9F40) = 0
428: write(8, " < 0 7 > N o v 2 8 0".., 65) = 65
428: close(8) = 0
428: pollsys(0xFFBFDC68, 1, 0xFFBFDD10, 0x00000000) (sleeping...)
428: pollsys(0xFFBFDC68, 1, 0xFFBFDD10, 0x00000000) = 1
428: access("/var/opt/asdis/log", F_OK) = 0
428: umask(077) = 07
428: open64("/var/opt/asdis/log/AsdisClient.log", O_RDWR|O_APPEND|O_CREAT, 06
00) = 8
428: umask(07) = 077
428: fchmod(8, 0664) = 0
428: getuid() = 0 [0]
428: time() = 1227860789
428: fstat64(8, 0xFFBF9F40) = 0
428: write(8, " < 0 7 > N o v 2 8 0".., 68) = 68
428: close(8) = 0
428: write(7, " A S D C L I E N T E V E".., 16) Err#32 EPIPE
428: Received signal #13, SIGPIPE [default]
428: siginfo: SIG#0
The error ENOTCONN is considered as to be a non-fatal error, see int
BIO_sock_non_fatal_error(int err) in bss_sock.c/#245ff.
Is this an error?
Mit freundlichen Grüßen/Best regards
Michael Krüger
--
Dipl.-Math. Michael Krüger
Office: +49 30 20631 611
Fax: +49 30 20631 199
E-Fax: +49 30 20631 44 611
Email: [EMAIL PROTECTED]
Web: www.asdis.de
ASDIS Software GmbH
Neue Grünstraße 25, 10179 Berlin (Sitz der Gesellschaft)
Registergericht: Amtsgericht Charlottenburg/Bln. (HRB 114434)
Geschäftsführerin: Petra-Maria Grohs-Frihs
ASDIS. Managing Complexity
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [EMAIL PROTECTED]