libvideosite: Add special "environment" connector that will take proxy settings from...
[videosite.git] / videosite / Base.pm
index 1244bc6..1bd229f 100644 (file)
@@ -19,7 +19,7 @@ sub new {
                 },
                 @_,
                };
-    
+
     # Add the 'enabled' property to all modules
     $self->{_PARAMS}->{enabled} = [1, 'Whether the module is enabled'];
     bless($self, $class);
@@ -164,6 +164,15 @@ sub ua {
     delete($ENV{'HTTPS_PROXY'});
 
     if (defined($self->{'_CONNECTOR'})) {
+        #
+        # The "environment" connector is special, it loads proxies from
+        # the environment variables. It also does not define any schemas,
+        # so the code below will not reset this.
+        #
+        if ($self->{'_CONNECTOR'}->{'name'} eq 'environment') {
+            $self->debug("Using proxy settings from environment");
+            $ua->env_proxy;
+        }
         my $schemas = $self->{'_CONNECTOR'}->{'schemas'};
         foreach (keys(%{$schemas})) {
             $self->debug("Adding schema %s with proxy %s", $_, $schemas->{$_});
@@ -171,7 +180,7 @@ sub ua {
                 # OK, so here's the gist.
                 #
                 # The usual way of reqesting an HTTPS URL through a proxy is
-                # to connect to the proxy server, issue a CONNECT request to 
+                # to connect to the proxy server, issue a CONNECT request to
                 # create a channel to the web server and start an SSL session over
                 # this channel, so there is an end-to-end connection between
                 # the client and the server.
@@ -236,7 +245,7 @@ sub decode_querystring {
 
 sub connectors {
     my $self = shift;
-    
+
     return $self->{_API}->{connectors}->();
 }