libvideosite: Add special "environment" connector that will take proxy settings from...
authorRalf Ertzinger <ralf@skytale.net>
Sun, 20 Apr 2014 13:28:41 +0000 (15:28 +0200)
committerRalf Ertzinger <ralf@skytale.net>
Sun, 20 Apr 2014 13:28:41 +0000 (15:28 +0200)
libvideosite.pm
videosite/Base.pm

index c39d9e5..bf02068 100644 (file)
@@ -52,7 +52,12 @@ my $defaultconfig = {
             'name' => 'direct',
             '_immutable' => '1',
             'schemas' => {},
-        }
+        },
+        'environment' => {
+            'name' => 'environment',
+            '_immutable' => '1',
+            'schemas' => {},
+        },
     },
     'config-version' => '2',
 };
@@ -86,7 +91,7 @@ my $videosite_commands = {
     'set' => sub {
         _cmd_set(@_);
     },
-    
+
     'show' => sub {
         _cmd_show(@_);
     },
@@ -279,7 +284,7 @@ sub _ploader {
     }
 
     _debug("Loaded %d plugins", $#g+1);
-    
+
     return @g;
 }
 
@@ -385,7 +390,7 @@ sub _config_list_add {
     _config_set($path, join(',', @c));
 }
 
-# 
+#
 # Remove an item from the list
 #
 sub _config_list_del {
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}->();
 }