CGI args parser
authorJamie Cameron <jcameron@webmin.com>
Wed, 10 Jun 2009 18:55:23 +0000 (18:55 +0000)
committerJamie Cameron <jcameron@webmin.com>
Wed, 10 Jun 2009 18:55:23 +0000 (18:55 +0000)
fetchmail/cgi_args.pl [new file with mode: 0644]
fetchmail/fetchmail-lib.pl

diff --git a/fetchmail/cgi_args.pl b/fetchmail/cgi_args.pl
new file mode 100644 (file)
index 0000000..47af93f
--- /dev/null
@@ -0,0 +1,34 @@
+
+do 'fetchmail-lib.pl';
+
+sub cgi_args
+{
+my ($cgi) = @_;
+if ($cgi eq 'edit_poll.cgi' || $cgi eq 'edit_global.cgi') {
+       my ($file, $user, @conf);
+       if ($config{'config_file'}) {
+               # Just one file
+               $file = $config{'config_file'};
+               }
+       else {
+               # Many users, pick first one with a config
+               setpwent();
+               while(@uinfo = getpwent()) {
+                       my $ufile = "$uinfo[7]/.fetchmailrc";
+                       if (-s $ufile) {
+                               @conf = grep { $_->{'poll'} }
+                                            &parse_config_file($ufile);
+                               if (@conf) {
+                                       $file = $ufile;
+                                       $user = $uinfo[0];
+                                       last;
+                                       }
+                               }
+                       }
+               }
+       return 'none' if (!$file);
+       return 'file='.&urlize($file).'&idx='.$conf[0]->{'index'}.
+              '&user='.&urlize($user);
+       }
+return undef;
+}
index 580ff42..036ad14 100644 (file)
@@ -256,7 +256,7 @@ else {
 # get_fetchmail_version([&out])
 sub get_fetchmail_version
 {
-local $out = `$config{'fetchmail_path'} -V 2>&1 </dev/null`;
+local $out = &backquote_command("$config{'fetchmail_path'} -V 2>&1 </dev/null");
 ${$_[0]} = $out if ($_[0]);
 return $out =~ /fetchmail\s+release\s+(\S+)/ ? $1 : undef;
 }