in reply to Re^5: Http connection manipulations
in thread Http connection manipulations

Thanks, for your attention at first place.

Yes. Clients are connecting to the port on external address, port:15000 (HTTP::Proxy custom script) and squid listens 127.0.0.1:3128

Yes. My custom proxy relaying connections to squid. HTTP::Proxy made for listening responses from squid and if response URL contains "/sorry/" custom proxy redirects client to it's initial destination, client should repeat his last failed request once more (but client can't) and squid roundrobins it to another parent proxy server

No. I'm affraid I have no skills for doing something with Squid. But if it's possible it would be just great

Yes. You allmost right custom http::proxy evaluates responses from the squid and tries to repeat initial request, but only if it's failed

Replies are listed 'Best First'.
Re^7: Http connection manipulations
by flexvault (Monsignor) on Jan 14, 2012 at 10:51 UTC

    Since the client is connected to you on 'port:15000', you could return the "where to go" by using the following in your code:

    . . . my $where = "..."; ## $where is the URL of the new destinat +ion print "Content-type: text/html\r\n\r\n"; print '<HTML>'; print '<HEAD>'; print '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=http://' . $wh +ere . '">'; print '</HEAD>'; print "</HTML>";

    What the code does, is tell the clients browser to redirect to the new URL. You need to initialize '$where' with the new destination

    Good Luck

    "Well done is better than well said." - Benjamin Franklin

      I've decided to change approach a bit because sometimes it'll be easier to write something new then to fix an old one so could you to refer to a new node for more details:

      http://www.perlmonks.org/?node_id=947916

      Many thanks in advance.