Thread HTTP mit LWP
(19 answers)
Opened by jmb at 2006-02-13 10:08
Morgen,
Vorgeschichte: Ich nutze die netfilter iqp development library um Pakete ins Userland zu schicken. Dort decodiere ich das Paket abhängig vom Protokoll. Wenn es ein Tcp Paket ist und das Unterprotokoll http (mach ich derzeit noch "dumm" anhand von Port), dann will ich den http stream untersuchen. Problem: Ich hab folgendes Code Construct: Code: (dl
)
1 my $ip_pkt = shift; Jetzt steht der decodierte tcp payload (hoffentlich) in tcp_pkt_data. Jetzt geht der Scheiss los. Http ist ja nicht nur lulu plain text, sondern definiert anhand des content-encoding flags im header, ob der spass evtl. mit gzip gepackt ist. Das will ich jetzt rausbekommen und dann den Paketinhalt, sollte er gepackt sein, entpacken und verarbeiten und wieder zusammenpacken und dann wieder codieren und ab ins netz damit. Bei plain txt Verkehr funktioniert das alles tres bien, aber ich habe noch massive Probleme mit gzip. Meine (bescheidenen) Lösungsansätze: Ich wollte mir LWP zu nutze machen und damit ein HTTP::Header Objekt basteln, das mir hilft, herauszufinden, ob und wie das Paket codiert ist und dementsprechend die richtigen Maßnahmen zu treffen. Code: (dl
)
1 my $message = HTTP::Message->parse($tcp_pkt); Sorry, sind jetzt nur Cope Schnippels von meiner LWP Versuchen, aber ich komm nicht weiter. Habt Ihr Hilfe? Cheers + Danke Jmb |