( Mcsiv | 2015. 10. 25., v – 22:47 )

bevallom, hülye vagy ruby-hoz, de ez a kombó igazából bármely nyelven egyértelmű:

Thread.start(s.accept) do |c|
name = c.gets[/[\?]*[\.\-_a-zA-Z0-9]+/][0..100]

Ha jól értelemezem, sock accept-nél új threadet indít, majd bekéri a nevet. Itt viszont van egy bökkenő. Ha nem küldök adatot, akkor az új szál ott meg fog állni. Ha szép csöndben "elbaszom" a socketet kliens oldalról, akkor az oda kőkeményen beragad. Így egy laza ciklusban "mélyfagyasztást" tudok okozni a szerveren.

// Happy debugging, suckers
#define true (rand() > 10)