From a13fa8a4eb4ef102851bd9cbe442f9682428e1c7 Mon Sep 17 00:00:00 2001
From: Robert Anderson <randerson@lbsd.net>
Date: Fri, 6 Mar 2009 07:43:40 +0000
Subject: [PATCH] Added function for fetching queries

---
 smradius/util.pm | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/smradius/util.pm b/smradius/util.pm
index 9557044f..82c30298 100644
--- a/smradius/util.pm
+++ b/smradius/util.pm
@@ -61,21 +61,18 @@ sub templateReplace
 	my ($string,$hashref) = @_;
 
 
-	# Loop with hash sections
-	foreach my $section (keys %{$hashref}) {
-		# Loop with section items
-		foreach my $item (keys %{$hashref->{$section}}) {
-			# Grab value
-			my $itemVal = $hashref->{$section}->{$item};
-			# Replace in string
-			$string =~ s/\%{$section\.$item(=[^}]+)?}/$itemVal/gi;
-		}
-	}
+	my @valueArray = ();
 
 	# Replace blanks
-	$string =~ s/\%{[a-z]+\.[a-z0-9\-]+(?:=([^}]+))?}/$1/gi;
+	while (my ($entireMacro,$section,$item,$default) = ($string =~ /(\%{([a-z]+)\.([a-z0-9\-]+)(?:=([^}]+))?})/i )) {
+		# Replace macro with ?	
+		$string =~ s/$entireMacro/\?/;
+		# Add value onto our array
+		push(@valueArray,$hashref->{$section}->{$item});
+		
+	}
 
-	return $string;
+	return ($string, @valueArray);
 }
 
 
-- 
GitLab