Skip to content
Snippets Groups Projects
Commit 3a2310f5 authored by Nigel Kukard's avatar Nigel Kukard
Browse files

Better URI parsing

parent 39c4bd44
No related branches found
No related tags found
No related merge requests found
......@@ -211,7 +211,7 @@ sub override_addedit
# We need a ID first of all...
if (defined($queryParams->{'oid'})) {
# Check if we get some data back when pulling the override from the backend
if (defined($formData = getOverride($queryParams->{'oid'}))) {
if (defined($formData = getOverride($queryParams->{'oid'}->{'value'}))) {
# Setup our checkboxes
foreach my $checkbox (@formElementCheckboxes) {
if (defined($formData->{$checkbox})) {
......@@ -223,7 +223,7 @@ sub override_addedit
# XXX - TODO
# If we didn't get any data, then something went wrong
} else {
my $encodedID = encode_entities($queryParams->{'oid'});
my $encodedID = encode_entities($queryParams->{'oid'}->{'value'});
push(@errors,"Override data could not be loaded using oid '$encodedID'");
}
# Lastly if we were given a oid, this is actually an edit
......@@ -600,10 +600,10 @@ EOF
}
# Grab the override
my $override = getOverride($queryParams->{'oid'});
my $override = getOverride($queryParams->{'oid'}->{'value'});
# Make the oid safe for HTML
my $encodedID = encode_entities($queryParams->{'oid'});
my $encodedID = encode_entities($queryParams->{'oid'}->{'value'});
# Make sure the oid was valid... we would have an override now if it was
if (!defined($override)) {
......
......@@ -110,7 +110,7 @@ EOF
# Conditionals
if (defined($queryParams->{'source'})) {
if ($limit->{'Source'} ne $queryParams->{'source'}) {
if ($limit->{'Source'} ne $queryParams->{'source'}->{'value'}) {
next;
}
}
......@@ -323,7 +323,7 @@ sub limit_addedit
# We need a key first of all...
if (defined($queryParams->{'lid'})) {
# Check if we get some data back when pulling the limit from the backend
if (defined($formData = getLimit($queryParams->{'lid'}))) {
if (defined($formData = getLimit($queryParams->{'lid'}->{'value'}))) {
# We need to make sure we're only editing our own limits
if ($formData->{'Source'} ne "plugin.webserver.limits") {
return (HTTP_TEMPORARY_REDIRECT,'limits');
......@@ -333,7 +333,7 @@ sub limit_addedit
# XXX - TODO
# If we didn't get any data, then something went wrong
} else {
my $encodedID = encode_entities($queryParams->{'lid'});
my $encodedID = encode_entities($queryParams->{'lid'}->{'value'});
push(@errors,"Limit data could not be loaded using limit ID '$encodedID'");
}
# Lastly if we were given a key, this is actually an edit
......@@ -702,10 +702,10 @@ EOF
}
# Grab the limit
my $limit = getLimit($queryParams->{'lid'});
my $limit = getLimit($queryParams->{'lid'}->{'value'});
# Make the key safe for HTML
my $encodedLID = encode_entities($queryParams->{'lid'});
my $encodedLID = encode_entities($queryParams->{'lid'}->{'value'});
# Make sure the limit ID is valid... we would have a limit now if it was
if (!defined($limit)) {
......
......@@ -74,7 +74,7 @@ EOF
goto END;
}
# Check if we get some data back when pulling the limit from the backend
if (!defined($limit = getLimit($queryParams->{'lid'}))) {
if (!defined($limit = getLimit($queryParams->{'lid'}->{'value'}))) {
$content .=<<EOF;
<tr class="info">
<td colspan="8"><p class="text-center">No Results</p></td>
......@@ -144,12 +144,12 @@ sub databylimit
}
my $limit;
if (!defined($limit = getLimit($queryParams->{'lid'}))) {
if (!defined($limit = getLimit($queryParams->{'lid'}->{'value'}))) {
return (HTTP_OK,{ 'error' => 'Invalid limit' },{ 'type' => 'json' });
}
# Pull in stats data
my $statsData = opentrafficshaper::plugins::statistics::getStatsByLID($queryParams->{'lid'});
my $statsData = opentrafficshaper::plugins::statistics::getStatsByLID($queryParams->{'lid'}->{'value'});
# First stage refinement
my $rawData;
......
......@@ -79,17 +79,23 @@ sub parseFormContent
return \%res;
}
# Parse query data
sub parseURIQuery
{
my $request = shift;
my %res;
use URI::QueryParam;
# Pull in URL params
foreach my $key ($request->uri->query_param) {
$res{$key} = $request->uri->query_param($key);
# Grab URI components
my @components = $request->uri->query_form;
# Loop with the components in sets of name & value
while (@components) {
my ($name,$value) = (shift(@components),shift(@components));
# Store values and the last value we go
push(@{$res{$name}->{'values'}},$value);
$res{$name}->{'value'} = $value;
}
return \%res;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment