Overview
Artifact ID: | 5eac592725b07e08d3477c84aed0b3f373199301af3ea3a5fbf5a1214c09856c |
---|---|
Ticket: | 94c6a431fee47acdb590ee3963704ef1d756a5cf
Buffering until timeout |
User & Date: | anonymous on 2018-10-22 21:01:25 |
Changes
- icomment:
Hi, We have the same problem and I was able to pinpoint it after learning tcl channel frame. 1. In "tlsWatchProc" of tlsIO.c, the condition to create timer is not covering all cases. It should also check the BIO buffer. The line should read: if ((mask & TCL_READABLE) && (Tcl_InputBuffered(statePtr->self) > 0 || BIO_ctrl_pending(statePtr->bio) > 0)) { ............... } 2. In "BioCtrl" of tlsBIO.c, the result of BIO_CTRL_PENDING should be: ret = ((chan) ? Tcl_InputBuffered(chan) : 0); NOT ret = ((chan) ? 1: 0); Second error caused BIO_ctrl_pending always return 1 even no data available. Please let me know after you push our the patch. Best, Jinhu jinhu@stanford.edu
- login: "anonymous"
- mimetype: "text/plain"
- status changed to: "Verified"
- type changed to: "Code Defect"
- username: "jinhu@stanford.edu"