aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2013-08-03 10:03:31 -0400
committerJoey Hess <joey@kitenet.net>2013-08-03 10:03:31 -0400
commitcbde8520e9cc5512bd2726e2fa26089db0ddc7ab (patch)
treec60255d0f633877a444050f53f8178fd327d4b55
parentb785d135402611b66b6df7ca561f5a4152ab5dee (diff)
parentd844a3487ed03fc35eecd89c6924c5e5ad36b4c5 (diff)
downloadikiwiki-cbde8520e9cc5512bd2726e2fa26089db0ddc7ab.tar
ikiwiki-cbde8520e9cc5512bd2726e2fa26089db0ddc7ab.tar.gz
Merge remote-tracking branch 'schmonz/proxy'
Conflicts: doc/todo/outbound_proxy.mdwn doc/users/schmonz.mdwn
-rw-r--r--IkiWiki.pm17
-rw-r--r--IkiWiki/Plugin/aggregate.pm16
-rw-r--r--IkiWiki/Plugin/openid.pm2
-rw-r--r--IkiWiki/Plugin/pinger.pm2
-rw-r--r--doc/users/schmonz.mdwn2
5 files changed, 21 insertions, 18 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index c497dd38f..75c957932 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -22,7 +22,7 @@ our @EXPORT = qw(hook debug error htmlpage template template_depends
htmllink readfile writefile pagetype srcfile pagename
displaytime strftime_utf8 will_render gettext ngettext urlto targetpage
add_underlay pagetitle titlepage linkpage newpagefile
- inject add_link add_autofile
+ inject add_link add_autofile useragent
%config %links %pagestate %wikistate %renderedfiles
%pagesources %destsources %typedlinks);
our $VERSION = 3.00; # plugin interface version, next is ikiwiki version
@@ -513,6 +513,14 @@ sub getsetup () {
safe => 0,
rebuild => 0,
},
+ cookiejar => {
+ type => "string",
+ default => "$ENV{HOME}/.ikiwiki/cookies",
+ description => "cookie control",
+ example => { file => "$ENV{HOME}/.ikiwiki/cookies" },
+ safe => 0, # hooks into perl module internals
+ rebuild => 0,
+ },
}
sub defaultconfig () {
@@ -2274,6 +2282,13 @@ sub add_autofile ($$$) {
$autofiles{$file}{generator}=$generator;
}
+sub useragent () {
+ return LWP::UserAgent->new(
+ cookie_jar => $config{cookiejar},
+ env_proxy => 1, # respect proxy env vars
+ );
+}
+
sub sortspec_translate ($$) {
my $spec = shift;
my $reverse = shift;
diff --git a/IkiWiki/Plugin/aggregate.pm b/IkiWiki/Plugin/aggregate.pm
index be6e8d476..3e3eb6d93 100644
--- a/IkiWiki/Plugin/aggregate.pm
+++ b/IkiWiki/Plugin/aggregate.pm
@@ -58,21 +58,12 @@ sub getsetup () {
safe => 1,
rebuild => 0,
},
- cookiejar => {
- type => "string",
- example => { file => "$ENV{HOME}/.ikiwiki/cookies" },
- safe => 0, # hooks into perl module internals
- description => "cookie control",
- },
}
sub checkconfig () {
if (! defined $config{aggregateinternal}) {
$config{aggregateinternal}=1;
}
- if (! defined $config{cookiejar}) {
- $config{cookiejar}={ file => "$ENV{HOME}/.ikiwiki/cookies" };
- }
# This is done here rather than in a refresh hook because it
# needs to run before the wiki is locked.
@@ -522,11 +513,8 @@ sub aggregate (@) {
}
$feed->{feedurl}=pop @urls;
}
- my $res=URI::Fetch->fetch($feed->{feedurl},
- UserAgent => LWP::UserAgent->new(
- cookie_jar => $config{cookiejar},
- ),
- );
+ my $ua=useragent();
+ my $res=URI::Fetch->fetch($feed->{feedurl}, UserAgent=>$ua);
if (! $res) {
$feed->{message}=URI::Fetch->errstr;
$feed->{error}=1;
diff --git a/IkiWiki/Plugin/openid.pm b/IkiWiki/Plugin/openid.pm
index e3b9982f2..d369e30c9 100644
--- a/IkiWiki/Plugin/openid.pm
+++ b/IkiWiki/Plugin/openid.pm
@@ -241,7 +241,7 @@ sub getobj ($$) {
$ua=LWPx::ParanoidAgent->new;
}
else {
- $ua=LWP::UserAgent->new;
+ $ua=useragent();
}
# Store the secret in the session.
diff --git a/IkiWiki/Plugin/pinger.pm b/IkiWiki/Plugin/pinger.pm
index 588f7a42a..fb0f3ba0a 100644
--- a/IkiWiki/Plugin/pinger.pm
+++ b/IkiWiki/Plugin/pinger.pm
@@ -80,7 +80,7 @@ sub ping {
debug(gettext("LWP not found, not pinging"));
return;
}
- $ua=LWP::UserAgent->new;
+ $ua=useragent();
}
$ua->timeout($config{pinger_timeout} || 15);
diff --git a/doc/users/schmonz.mdwn b/doc/users/schmonz.mdwn
index 1f80cb05e..2e6bfb331 100644
--- a/doc/users/schmonz.mdwn
+++ b/doc/users/schmonz.mdwn
@@ -21,7 +21,7 @@ pages="!*/Discussion and ((link(users/schmonz) and plugins/*) or rcs/cvs or todo
* At work, team documentation and project planning: product and sprint
backlogs, burndown charts, release plans/procedures/announcements,
aggregating feeds of shared interest, etc. (with the [[todo/outbound_proxy]]
- patch)
+ patch and [[plugins/contrib/dynamiccookies]] plugin)
* On my laptop, personal to-do and scratch space
* [A small personal site](http://podcast.schmonz.com/) (happily hosted at
[Branchable](http://www.branchable.com/))