From: Ralf Ertzinger Date: Sun, 20 Apr 2014 13:28:41 +0000 (+0200) Subject: libvideosite: Add special "environment" connector that will take proxy settings from... X-Git-Url: https://git.camperquake.de/gitweb.cgi?p=videosite.git;a=commitdiff_plain;h=5979c22b30775fa2ebe09b3b415246d73a50bd17 libvideosite: Add special "environment" connector that will take proxy settings from environment variables --- diff --git a/libvideosite.pm b/libvideosite.pm index c39d9e5..bf02068 100644 --- a/libvideosite.pm +++ b/libvideosite.pm @@ -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 { diff --git a/videosite/Base.pm b/videosite/Base.pm index 1244bc6..1bd229f 100644 --- a/videosite/Base.pm +++ b/videosite/Base.pm @@ -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}->(); }