Tcl Source Code

Artifact [038e3056b1]
Login

Artifact 038e3056b1d9393afacbb9c4e950cff68341b61d:

Ticket change [038e3056b1] - Ticket [1ff0660e6e] Tcl_DriverInputProc is not called (again) status still Open with 3 other changes by dgp 2014-07-30 17:25:58.
D 2014-07-30T17:25:58.755
J icomment There\sis\sa\sbug\sin\sthe\stcludp\sroutine\sudpInput().\r\n\r\nWhen\sa\sTcl_DriverInputProc()\sreturns\sthe\svalue\s0,\r\nthe\score\sI/O\sparts\sof\sTcl\stake\sthat\sto\smean\sa\ssignal\r\nof\sEOF\son\sthe\schannel.\s\sudpInput()\sis\sreturning\s0\r\nin\sseveral\splaces\swhen\sit\sdoes\snot\sintend\sthat\smeaning.\r\n\r\n\s\s\s\sif\s(statePtr->doread\s==\s0)\s{\r\n\s\s\s\s\s\s\s\sstatePtr->doread\s=\s1;\s\s/*\snext\stime\swe\swant\sto\sbehave\snormally\s*/\r\n\s\s\s\s\s\s\s\s*errorCode\s=\sEAGAIN;\s\s\s/*\spretend\sthat\swe\swould\sblock\s*/\r\n\s\s\s\s\s\s\s\sUDPTRACE("Pretend\swe\swould\sblock\\n");\r\n\s\s\s\s\s\s\s\sreturn\s0;\r\n\s\s\s\s}\r\n\r\nThat\sshould\sbe\s"return\s-1"\sinstead.\r\n\r\n\s\s\s\sif\s(bufSize\s==\s0)\s{\r\n\s\s\s\s\s\s\s\sreturn\s0;\r\n\s\s\s\s}\r\n\r\nThat's\sarguably\salso\swrong,\sbut\sharmless\ssince\sthe\sTcl\r\nI/O\score\swill\snever\spass\sin\sa\svalue\sof\sbufSize==0.\r\n\r\n\s\s\s\sif\s(packets\s==\sNULL)\s{\r\n\s\s\s\s\s\s\s\sUDPTRACE("packets\sis\sNULL\\n");\r\n\s\s\s\s\s\s\s\sreturn\s0;\r\n\s\s\s\s}\r\n\r\nThat\sshould\sprobably\sbe\s"return\s-1".\s\sIf\sthis\sis\san\r\nattempt\sto\ssignal\sthat\sthe\schannel\sis\sblocked,\sthen\r\nthere\sshould\salso\sbe\r\n\r\n\s\s\s\s\s\s\s\s*errorCode\s=\sEAGAIN;\r\n\r\nand\sfinally....\r\n\r\n\s\s\s\sif\s(bytesRead\s>\s-1)\s{\r\n\s\s\s\s\s\s\s\sreturn\sbytesRead;\r\n\s\s\s\s}\r\n\r\nThat\smight\salso\sreturn\s0,\swhenever\srecvfrom()\r\nreturns\s0.\s\sIf\sthose\scircumstances\scorrespond\sto\r\nEOF,\sthen\sall\sis\sfine.\s\sOtherwise\sthe\sabove\sshould\r\nbe\spreceded\sby\ssomething\slike\r\n\r\n\s\s\s\sif\s(bytesRead\s==\s0\s&&\sThisIsNotEof())\s{\r\n\s\s\s\s\s\s\s\s*errorCode\s=\sEAGAIN;\r\n\s\s\s\s\s\s\s\sreturn\s-1;\r\n\s\s\s\s}\r\n\r\nWith\sthose\sfixes,\sI\sthink\stclUdp\swill\swork\sagain\r\nwith\scurrent\sdev\ssources\sof\sTcl\sand\swill\salso\r\ncontinue\sto\swork\swith\sall\sthe\sdeployed\sreleases\r\nof\sTcl.\r\n\r\nIs\sthere\san\sactive\supstream\sto\ssend\sthese\schanges\sto?
J login dgp
J mimetype text/plain
K 1ff0660e6e5f59639e50df751d4aaabb749f5583
U dgp
Z 5ac752f539b956e8b3f2412e731fe630