From 9f602728316096f235b3b28e7daacc7ece69bbd4 Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@kodama.kitenet.net>
Date: Sun, 3 Feb 2008 00:26:00 -0500
Subject: * poll: This plugin turns out to have edited pages w/o doing any
 locking.   Oops. Convert it from a cgi to a sessioncgi hook, which will work 
  much better.

---
 IkiWiki/Plugin/poll.pm | 6 +++---
 debian/changelog       | 3 +++
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/IkiWiki/Plugin/poll.pm b/IkiWiki/Plugin/poll.pm
index 63c93c62d..a5727fc8e 100644
--- a/IkiWiki/Plugin/poll.pm
+++ b/IkiWiki/Plugin/poll.pm
@@ -7,7 +7,7 @@ use IkiWiki 2.00;
 
 sub import { #{{{
 	hook(type => "preprocess", id => "poll", call => \&preprocess);
-	hook(type => "cgi", id => "poll", call => \&cgi);
+	hook(type => "sessioncgi", id => "poll", call => \&sessioncgi);
 } # }}}
 
 sub yesno ($) { #{{{
@@ -74,8 +74,9 @@ sub preprocess (@) { #{{{
 	return "<div class=poll>$ret</div>";
 } # }}}
 
-sub cgi ($) { #{{{
+sub sessioncgi ($) { #{{{
 	my $cgi=shift;
+	my $session=shift;
 	if (defined $cgi->param('do') && $cgi->param('do') eq "poll") {
 		my $choice=$cgi->param('choice');
 		if (! defined $choice) {
@@ -92,7 +93,6 @@ sub cgi ($) { #{{{
 
 		# Did they vote before? If so, let them change their vote,
 		# and check for dups.
-		my $session=IkiWiki::cgi_getsession();
 		my $choice_param="poll_choice_${page}_$num";
 		my $oldchoice=$session->param($choice_param);
 		if (defined $oldchoice && $oldchoice eq $choice) {
diff --git a/debian/changelog b/debian/changelog
index ceaf3cf71..b4ff54d9f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,6 +11,9 @@ ikiwiki (2.31) UNRELEASED; urgency=low
   * cgi hooks are now run before ikiwiki state is loaded.
   * This allows locking the wiki before loading state, which avoids some
     tricky locking code when saving a web edit.
+  * poll: This plugin turns out to have edited pages w/o doing any locking.
+    Oops. Convert it from a cgi to a sessioncgi hook, which will work
+    much better.
 
  -- Joey Hess <joeyh@debian.org>  Sat, 02 Feb 2008 23:36:31 -0500
 
-- 
cgit v1.2.3