Webalizer CGI args parser
authorJamie Cameron <jcameron@webmin.com>
Tue, 9 Jun 2009 05:35:49 +0000 (05:35 +0000)
committerJamie Cameron <jcameron@webmin.com>
Tue, 9 Jun 2009 05:35:49 +0000 (05:35 +0000)
webalizer/cgi_args.pl [new file with mode: 0644]
webmin_search.cgi

diff --git a/webalizer/cgi_args.pl b/webalizer/cgi_args.pl
new file mode 100644 (file)
index 0000000..aefda1e
--- /dev/null
@@ -0,0 +1,30 @@
+
+do 'webalizer-lib.pl';
+
+sub cgi_args
+{
+my ($cgi) = @_;
+if ($cgi eq 'edit_log.cgi') {
+       # Link to first log that can be edited
+       my @logs = grep { &can_edit_log($_->{'file'}) } &get_all_logs();
+       if (!@logs) {
+               return $access{'add'} ? 'new=1' : 'none';
+               }
+       elsif (!$access{'view'}) {
+               return 'file='.&urlize($logs[0]->{'file'}).
+                      '&type='.&urlize($logs[0]->{'type'}).
+                      '&custom='.&urlize($logs[0]->{'custom'});
+               }
+       else {
+               return 'none';
+               }
+       }
+elsif ($cgi eq 'view_log.cgi') {
+       # Show first log
+       my @logs = grep { my $lconf = &get_log_config($_->{'file'});
+                         &can_edit_log($_->{'file'}) &&
+                         $lconf->{'dir'} } &get_all_logs();
+       return @logs ? &urlize($logs[0]->{'file'}).'/index.html' : 'none';
+       }
+return undef;
+}
index 62cc5b6..283e104 100644 (file)
@@ -211,8 +211,10 @@ if (@rv) {
                                push(@links, $ctitle);
                                }
                        else {
+                               $cargs = "?".$cargs if ($cargs ne '' &&
+                                                       $cargs !~ /^(\/|%2F)/);
                                push(@links,
-                                  "<a href='$cmod/$cpage?$cargs'>$ctitle</a>");
+                                  "<a href='$cmod/$cpage$cargs'>$ctitle</a>");
                                }
                        }
                if (@links > 2) {