summaryrefslogtreecommitdiff
path: root/Xerl/Setup/Request.pm
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2018-12-14 17:42:36 +0200
committerPaul Buetow <paul@buetow.org>2018-12-14 17:42:36 +0200
commit6cc1fe15416a6e652b644278626e47658351e545 (patch)
tree4c8890bdd5feef0b806974224181860807e8fd1b /Xerl/Setup/Request.pm
parent849560bc3c48f6c753932dd08d2191e36d477ce0 (diff)
parent3e65cce0ec33e290cf45b7cc9e661977bb225810 (diff)
Merge branch 'hosts' of https://github.com/snonux/xerl into hosts
Diffstat (limited to 'Xerl/Setup/Request.pm')
-rw-r--r--Xerl/Setup/Request.pm50
1 files changed, 50 insertions, 0 deletions
diff --git a/Xerl/Setup/Request.pm b/Xerl/Setup/Request.pm
new file mode 100644
index 0000000..e20eaa4
--- /dev/null
+++ b/Xerl/Setup/Request.pm
@@ -0,0 +1,50 @@
+# Xerl (c) 2005-2011, 2013-2015 by Paul Buetow
+#
+# E-Mail: xerl@dev.buetow.org WWW: https://xerl.buetow.org
+#
+# This is free software, you may use it and distribute it under the same
+# terms as Perl itself.
+
+package Xerl::Setup::Request;
+
+use strict;
+use warnings;
+
+use v5.14.0;
+
+use Xerl::Base;
+
+sub parse {
+ my $self = $_[0];
+ my $request = $self->get_request();
+
+ # Secure it!
+ $request =~ s#/\.\.##g;
+
+ # Remove last /
+ $request =~ s#/$##;
+
+ my $request_subdir = $request;
+ $request_subdir =~ s#/\?.*##;
+ $self->set_request_subdir($request_subdir);
+
+ # List context returns $1
+ ($_) = $request =~ /\?(.+)/;
+
+ return $self unless defined;
+
+ my $params = '';
+
+ # List context uses ($1,$2) as method args
+ for ( split /&/ ) {
+ $self->setval(/(.+?)=(.+)/);
+ $params .= "&amp;$1=$2" if $1 ne 'site';
+ }
+
+ $self->set_params($params);
+
+ return undef;
+}
+
+1;
+