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
673bdaf664
commit
588c035b3b
3 changed files with 17 additions and 14 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue