Socks5 Server

Moin,
bin seit Tagen dabei einen Socks5 Server in C mit Hilfe von Sockets zu programmieren.
Habe es geschafft, dass Firefox (mit Sockscap) sich auf meinen Server verbindet und mir die aufzurufene Webseite bzw die IP des Servers auf welchen sie liegt und den zugehörigen Port zu senden.
(Wer es nachmachen will, Firefox hält sich nur grob ans RFC)

Danach sendet mir Firefox einen HTTP GET-Request, welchen ich an den HTTP-Server schicke;
dieser antwortet mir auch mit einem HTTP-Header + einem GZIP kodiertem "Bitstream".

Soweit, so gut.
Nun möchte ich logischerweise die Antwort des HTTP-Servers an meinen Client also Firefox weitersenden und dann auf den nächsten HTTP GET-Request von Firefox warten.

PROBLEM: Wenn überhaupt eine Seite bei Firefox ankommt wird sie nicht richtig dargestellt; die Daten werden irgendwie nicht 1:1 weitergeleitet.

Hab schon viel rumprobiert.
Fehlersammlung:
-Firefox will downloaden.
-Firefox meint unbekannte kodierung.
-Firefox stellt Webseite völlig falsch dar.

Hier der Code:

Code:
// Anmeldung + mit HTTP verbinden

char sBuf[512];
int iBytes;
 
while(1)
{        
  recv(soClient,sBuf,sizeof(sBuf),0); //Read Client
  send(soHttp,sBuf,strlen(sBuf),0); //Write HTTP
   
  while(iBytes=recv(soHttp,sBuf,sizeof(sBuf),0)>0)//Read HTTP
   {
       send(soClient,sBuf,iBytes,0); //Write Client
    }
}
 
Zurück
Oben