Tcl Library Source Code

Artifact [accf016d7b]
Login

Artifact accf016d7bdea544dc0edfed0c4b477d99da08cf:

Ticket change [accf016d7b] - New ticket [631a44ed66fbb333|631a44ed66] <i>WebSocket clients can block server</i>. by anonymous 2015-04-16 09:35:12.
D 2015-04-16T09:35:12.369
J assignee nobody
J closer nobody
J cmimetype text/plain
J comment ::websocket\sserver\ssocket\sis\sset\sto\s*blocking*\smode.\s\sAs\sa\r\nconsequence,\smisbehaving\sclients\scan\scompletely\sblock\sthe\sserver\sif\sthey\r\nrefuse\sto\sread\sor\swrite\sa\scomplete\smessage.\r\n\r\nThe\sfollowing\srecipe\s(*nix\sonly)\sreproduces\sthe\sissue.\s\sTwo\sshells\sare\r\nneeded,\sone\sto\srun\sa\s::websocket\sserver,\sthe\sother\sto\screate\sa\r\nmisbehaving\sclient.\r\n\r\nIn\sthe\sfirst\sshell\srun\sthe\sTcl\sscript\sbelow.\s\sThe\sscript\screates\sa\r\nWebSocket\sserver\s(handshake\sommited)\sand\sprints\sa\smessage\sat\sregular\r\nintervals;\sthis\smessage\swill\sstop\sbeing\sprinted\swhen\sthe\sclient\sblocks\r\nthe\sserver.\r\n\r\n---------------->8----------------\r\npackage\srequire\swebsocket;\r\nnamespace\seval\s::s\s{};\r\nproc\s::s::accept\s{sock\sargs}\s{\r\n\s\s\s\sputs\s"server:\snew\sconnection\s$args";\r\n\s\s\s\s::websocket::takeover\s$sock\s[list\s::s::handler]\s1\s{};\r\n}\r\nproc\s::s::handler\s{sock\stype\sargs}\s{\r\n\s\s\s\sputs\s"$sock:\s$type\s$args";\r\n}\r\nproc\s::s::canary\s{interval}\s{\r\n\s\s\s\sputs\s"canary:\sStill\salive...";\r\n\s\s\s\s::after\s$interval\s[list\s::s::canary\s$interval];\r\n}\r\n\r\n::s::canary\s1000;\r\n::socket\s-server\s[list\s::s::accept]\s54321;\r\n::vwait\sforever;\r\n----------------8<----------------\r\n\r\nIn\sthe\ssecond\sshell\srun\sthe\sfollowing\scommand:\r\n\r\n---------------->8----------------\r\n\s\s\s\s{\secho\s-n\s1;\ssleep\s5s;\s}\s|\snc\slocalhost\s54321\r\n----------------8<----------------\r\n\r\nThe\sserver\sis\sblocked\sfor\s5\sseconds.
J foundin 1.4
J is_private 0
J login anonymous
J priority 5\sMedium
J private_contact 3410fe6f8504d01909e548b02e0cec50a5f7fab3
J resolution None
J severity Critical
J status Open
J submitter anonymous
J subsystem websocket
J title WebSocket\sclients\scan\sblock\sserver
J type Bug
K 631a44ed66fbb33373f1d5342a0ae5d1ba6dd38b
U anonymous
Z 91547a20a0b68ebc03edf5e34756d753