Branch: Tag:

2011-10-10

2011-10-10 20:30:15 by Martin Stjernholm <mast@lysator.liu.se>

Fixed bug where SSL.sslfile.close could block for nonclean (normal) close on
the client side.

The problem was that close() could do a blocking wait for a remote close
packet or socket close, which it should only do if a "clean" close is
requested. Note that this only happened for close in blocking mode, so the
bug was not that serious.

Also made the handling of clean closes in nonblocking mode more consistent,
which meant some slight changes in the semantics for shutdown() and
is_open().

196:    "Stdio.FileLockKey": "predef::Stdio.File.lock":2, "predef::Stdio.File.trylock":2,    "Stdio.module": "7.6::Stdio":1,    "Stdio.stdout.write()": "predef::Stdio":1, -  "System.EPIPE": "predef::SSL.sslfile":1, "predef::Stdio.File.set_read_callback":1, +  "System.EPIPE": "predef::SSL.sslfile":1, "predef::SSL.sslfile.shutdown":1, "predef::Stdio.File.set_read_callback":1,    "System.set_file_atime": "predef::System.utime":1,    "System.set_file_mtime": "predef::System.utime":1,    "TDS_ENV_CHANGE_TOKEN": "predef::Sql.tds":1,
1130:   "predef::SSL.session.set_cipher_suite": "verison"   "predef::SSL.sslfile": "System.EPIPE"   "predef::SSL.sslfile.set_callbacks": "aet_accept_callback" "query_callbacks" + "predef::SSL.sslfile.shutdown": "System.EPIPE"   "predef::SSL.sslport.accept": "accept_queue"   "predef::SSL.sslport.finished_callback": "accept_queue"   "predef::Search.Database.Base.get_document_id": "language_code"