Перенаправить connect() на локальный прокси

Тема в разделе "WASM.NETWORKS", создана пользователем saxon, 11 ноя 2011.

  1. saxon

    saxon New Member

    Публикаций:
    0
    Регистрация:
    24 июн 2009
    Сообщения:
    23
    привет.
    нужно для указанного процесса сделать перенаправление сетевых запросов (по сути, проксификатор).
    Есть уже прокси и есть сплайсинг connect()'a
    но в сумме не работает - подвисает после accept'a
    получается такая схема: connect(from process) -> splice connect and redirect to local proxy port -> accept -> parse headers (get Host) -> connect to host -> recv/send

    на последнем этапе глохнет все. и не пойму, в чем причина.
     
  2. saxon

    saxon New Member

    Публикаций:
    0
    Регистрация:
    24 июн 2009
    Сообщения:
    23
    Пробую реализовать socks4 протокол
    использую 3proxy для тестов.
    В коннекте делаю send() пакета socks4
    прописываю: версию, порт, IP. хост и юзер Ид не пишу

    * Compose socks4 request
    *
    * Request format
    *
    * +----+----+----+----+----+----+----+----+----+----+....+----+
    * | VN | CD | DSTPORT | DSTIP | USERID |NULL|
    * +----+----+----+----+----+----+----+----+----+----+....+----+
    * # of bytes: 1 1 2 4 variable 1
    не понятно, как порт выставлять?! htons() не работает. пишу в младший байт порт и все ок..

    сервер видит запрос сокс4 - ок


    * +----+----+----+----+----+----+----+----+
    * | VN | CD | DSTPORT | DSTIP |
    * +----+----+----+----+----+----+----+----+
    * # of bytes: 1 1 2 4
    Получаю ответ, но не могу его распаковать.
    VN - 0
    CD - 90 (access granted)
    дальше какая-то фигня идет - не получается распаковать.
    и после заголовка идет html код - bad request.... (это уже ответ удаленного сервера)?
     
  3. saxon

    saxon New Member

    Публикаций:
    0
    Регистрация:
    24 июн 2009
    Сообщения:
    23
    всем спасибо, разобрался