Rewrite redirect handling code with nested lists.
New ll_addh to add items to the head of a nested list (use with care!).
This commit is contained in:
parent
8a4951c5bb
commit
10477bcbb4
@ -157,6 +157,13 @@ fn ll_add {
|
||||
$_l=$*(2-)
|
||||
$1=( $$1 $_l )
|
||||
}
|
||||
# Add to the head: dangerous if you shrink list by hand!
|
||||
fn ll_addh {
|
||||
_l=$1^_^$#$1
|
||||
$_l=$*(2-)
|
||||
$1=( $_l $$1 )
|
||||
}
|
||||
|
||||
|
||||
NEW_LINE='
|
||||
'
|
||||
|
22
bin/werc.rc
22
bin/werc.rc
@ -89,20 +89,16 @@ fn werc_exec_request {
|
||||
|
||||
if(~ $#perm_redir_to 1)
|
||||
perm_redirect $perm_redir_to
|
||||
p=();
|
||||
for(i in $perm_redir_patterns) {
|
||||
if(~ $#p 0)
|
||||
p=$i
|
||||
if not {
|
||||
# If target is absolute, require patern matches whole string
|
||||
if(~ $i http://* https://)
|
||||
p='^'$p
|
||||
t=`{ echo $req_path | sed 's!'$p'!'$i'!' }
|
||||
for(l in $perm_redir_patterns) {
|
||||
p=$$l
|
||||
r=$p(1)
|
||||
# If target is absolute, then patern must match whole string
|
||||
if(~ $p(2) http://* https://)
|
||||
r='^'$r
|
||||
t=`{ echo $req_path | sed 's!'^$r^'!'^$p(2)^'!' } # Malicious danger!
|
||||
|
||||
if(! ~ $"t '' && ! ~ $t $req_path)
|
||||
perm_redirect $t
|
||||
p=()
|
||||
}
|
||||
if(! ~ $"t '' $req_path)
|
||||
perm_redirect $t
|
||||
}
|
||||
|
||||
# Set Page title
|
||||
|
@ -3,7 +3,7 @@ fn conf_perm_redirect {
|
||||
if(~ $#* 1)
|
||||
perm_redir_to=$1
|
||||
if not
|
||||
perm_redir_patterns=($1 $2 $perm_redir_patterns)
|
||||
ll_addh perm_redir_patterns $1 $2
|
||||
}
|
||||
|
||||
fn conf_hide_paths {
|
||||
|
Loading…
Reference in New Issue
Block a user