Конференция "FreePascal" » прокси на free pascal + synapse [linux]
 
  • hrustbb (31.05.15 15:28) [0]
    Пишу простенький вариант прокси на free pascal под линукс, с использованием библиотеки synapse. Коечто набросал, в итоге клиент подсоединяется к прокси, благополучно проходит авторизацию, а дальше запарка (для соединения с моим прокси использую proxychains). Я понимаю что кроме вышеизложенного там еще очень много недочетов (уничтожение объектов и т.п), но пока нужно разобраться только с этим.

    Собственно код
    После процедуры авторизации попадаем сюда


    if stage = RESPONSE_CONNECTION_OK then begin
     //сокет принимающий данные из интернета
     Self.tcp.OnReadFilter:=@Self.OnReadFilterTCP;
     //сокет принимающий данные от клиента
     Self.ConnectionSocket.OnReadFilter:=@Self.OnReadFilterClient;

     Self.ConnectionSocket.RecvPacket(120000);
     Self.tcp.RecvPacket(120000);
    end;



    Собственно обработчики:


    procedure CProxyThread.OnReadFilterTCP(Sender: TObject; var Value: AnsiString);
    var str_stream:TStringStream;
       sock:TTCPBlockSocket;
    begin
     str_stream:=TStringStream.Create(Value);
     Self.ConnectionSocket.SendStreamRaw(str_stream);
     sock:=TTCPBlockSocket(Sender);
     sock.RecvPacket(120000);
    end;

    procedure CProxyThread.OnReadFilterClient(Sender: TObject; var Value: AnsiString);
    var str_stream:TStringStream;
       sock:TTCPBlockSocket;
    begin
     str_stream:=TStringStream.Create(Value);
     Self.tcp.SendStreamRaw(str_stream);
     sock:=TTCPBlockSocket(Sender);
     sock.RecvPacket(120000);
    end;



    в итоге данные через прокси не передаются
 
Конференция "FreePascal" » прокси на free pascal + synapse [linux]
Есть новые Нет новых   [134427   +36][b:0][p:0.001]