Squid/redirect_program -- Wie schaut die Schnittstelle aus?
-
Hallo,
ich möchte ein kleines Addon für squid schreiben das jedes Request zuerst bearbeitet bevor squid es bekommt.
Ich hab gehört das geht mit redirect_program.
Nur hab ich nirgends finden können wie squid das Request an mein Programm
übergibt und wie er es wieder zurückwill.Also bekomm ich es über stdin?Oder argv?
Und soll ichs über return char* oder über stdout zurückgeben?
Oder is das doch ganz anders?!Schon mal vielen Dank,
Xalon
-
Ok ich hab mir jetzt folgendes gebastelt:
#include <stdio.h> #include <stdlib.h> #include <regex.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <iostream> #include <fstream> using namespace std; #define mbfsiz 800 char url[256]; char method[32]; char ident[256]; char src_address[256]; char line[mbfsiz]; char* matchurl(void); char* matchurl(void) { sscanf(line, "%255s %255s %255s %31s", url, src_address, ident, method); //cout << "line: " << line << endl; return line; } int main() { fstream file("/home/lxuser/Desktop/fooo",ios::out); while(fgets(line, mbfsiz, stdin) != NULL) { fprintf(stdout, "%s\n", matchurl()); } file.close(); return 0; }
Wenn ich dann
redirect_program /some/where/redirector
in die squid config schreibe und squid laufen lasse gibt er keine Webseiten
mehr an den Browser zurück ==> scheinbar lädt er mein Programm.
Nur kommt keine fooo auf meinem Desktop wiefstream file("/home/lxuser/Desktop/fooo",ios::out);
ja eigentlich erzeugen sollte