LWP [программистское]

Sep 17, 2009 12:33

Как известно некоторым программирующим на Perl, LWP "искаропки" не умеет работать через Socks (интересует socks5).
Но его можно научить, установив соответствующие модули (IO::Socket::Socks, LWP::Protocol::socks, etc - в Инете всё написано ;) ).

Отличительной особенностью пакета IO::Socket::Socks является его неработоспособность со всякими самопальными соксами, продающимися на просторах Инета и растущими на разных протрояненых тачках (ну, а где им ещё-то быть?). При этом "а другие программы с ними работают!".

Причиной оказалось то, что при socks5 handshake этот модуль шлёт данные к серверу "по кусочкам", в то время как большинство клиентских реализаций socks - единым куском. Конечно, это полная кривизна сервера - неправильно принимать и обрабатывать данные (считал, что пришло и сразу кинулся отвечать)... но мне проще было переписать этот модуль и теперь всё зашибись. Хотя, конечно, без гарантий. %)

UPD: "по кусочкам" - имеется ввиду, несколькими send(2).
UPD2: my IO::Socket::Socks

Some parts have been rewritten: send data to socks-server by one write()/send() call. It's need for working with lame socks-servers who have invalid mechanism of reading incoming data;

программирование, ip, internet, lwp, network, perl, socket, ошибка, socks, http, сеть, packet, package, tcp, module, link, компьютер, программа, connect, connection

Previous post Next post
Up