NAME

HTTP::ProxyAutoConfig - provides a unifed way to get the proxy information

SYNOPSIS

HTTP::ProxyAutoConfig is a module that allows perl scripts that need access to proxy servers to utilize the standard proxy settings provided by an IT department.

DESCRIPTION

This module provides a consistent method for finding the proxy server needed to talk to for a given URL. It can handle parsing the http_proxy, https_proxy, ftp_proxy, and http_auto_proxy variables to determine what it is you want it to do. If you set the http_auto_proxy variable it overrides the others and fetches the PAC file from there and uses those settings.

Access to the proxy information is provided in a single function call to FindProxyForURL(url,host). A string is returned that tells you what to do, either "DIRECT", "PROXY host:port", or "SOCKS host:port".

The Proxy Auto Config format and rules are defined at Netscape:

http://home.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html

The file basically works by defining a JavaScript function called FindProxyForURL. This module fetches that file and converts the JavaScript function into a Perl function and then defines the Perl function with that converted data.

METHODS

new(url) - creates the FindProxyForURL function and the object.
           The url argument is optional, and points to the auto-proxy
           file provided on your network.  If you do not specify a
           url, then it will check the http_auto_proxy variable,
           followed by the http_proxy, https_proxy, and ftp_proxy
           variables.

my $pac = new HTTP::ProxyAutoConfig("http://foo.bar/auto-proxy.pac");
my $pac = new HTTP::ProxyAutoConfig();

FindProxyForURL(url,host) - takes the url, and the host (minus
                            port) from the URL, and determines the
                            action you should take to contact that
                            host.  It returns one of three things:

                              DIRECT           - connect directly to them
                              PROXY host:port  - connect via the proxy
                              SOCKS host:port  - connect via SOCKS

FindProxy(url) - calls the FindProxyForURL function and passes it the
                 correct options.  This is just a wrapper.

Reload() - allows you to fetch the PAC again and regenerate the
           FindProxyForURL function based on anything you might
           have changed in the environment.

AUTHOR

By Ryan Eatmon in May of 2001

COPYRIGHT

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.