Your example:
on *:SOCKREAD:test-client:{
if ($sockerr) test-stop [CLIENT] SockRead error
sockread 8192 &bvar
}
on *:SOCKREAD:test-client:{
if ($sockerr) test-stop [CLIENT] SockRead error
sockread 1024 &bvar
sockread 1024 &bvar
sockread 1024 &bvar
sockread 1024 &bvar
}
on *:SOCKREAD:test-client:{
if ($sockerr) test-stop [CLIENT] SockRead error
sockread 1024 &bvar
while ($sockbr) {
sockread 1024 &bvar
}
}
Where is the return?
THE PROBLEM IS RETURNING AFTER /SOCKREAD, UNDERSTAND?
Modifying your code:
on *:SOCKREAD:test-client:{
if ($sockerr) test-stop [CLIENT] SockRead error
sockread 8192 &bvar
if ($sockbr == 0) return
}
on *:SOCKREAD:test-client:{
if ($sockerr) test-stop [CLIENT] SockRead error
sockread 1024 &bvar
if ($sockbr == 0) return
sockread 1024 &bvar
if ($sockbr == 0) return
sockread 1024 &bvar
if ($sockbr == 0) return
sockread 1024 &bvar
if ($sockbr == 0) return
}
on *:SOCKREAD:test-client:{
if ($sockerr) test-stop [CLIENT] SockRead error
sockread 1024 &bvar
if ($sockbr == 0) return
while ($sockbr) {
sockread 1024 &bvar
if ($sockbr == 0) return
}
}
If you want, just put a return later without checking the $sockbr:
on *:SOCKREAD:test-client:{
if ($sockerr) test-stop [CLIENT] SockRead error
sockread 8192 &bvar
return
}