Case statement error
Franks Andy (RLZ) IT Systems Engineer
Andy.Franks at sath.nhs.uk
Wed Oct 9 16:18:20 CEST 2013
Hi All. I have some code in an "sql" policy:
sql_check_user_present {
update control {
Tmp-String-0 := "%{sql_pwifi:SELECT COUNT(*) from voucher v left
join state s on v.id=s.voucher_id where v.id=s.voucher_id and
v.code='%{User-Name}' and (s.state='Inactive' or s.state='Active')}"
}
switch "%{control:Tmp-String-0}" {
case "0" {
update control {
User-RejectInformation := "Sorry, that voucher code is invalid
or has expired."
Debug-RejectInformation := "Voucher code not present in database
table, or voucher expired"
}
reject
}
case "1" {
noop
}
case {
# voucher has multiple table entries, oooh errr.
update control {
User-RejectInformation := "Sorry, there has been an error.
Please contact IT."
Debug-RejectInformation := "Multiple voucher codes the same, or
database error - SQL count not = 0 or 1. This should never happen due to
primary key constraint!"
}
reject
}
}
}
This works fine in 3.0, git version #f66d411, but I have a problem with
a regex related thing causing a segfault in that version and wouldn't
mind trying the latest version to see if it's fixed.
Trying version #d166290 results in
/usr/local/etc/raddb/policy.d/sql[6]: "case" statements may only appear
within a "switch" section
/usr/local/etc/raddb/policy.d/sql[6]: Failed to parse "case" subsection.
/usr/local/etc/raddb/policy.d/sql[5]: Failed to parse "switch"
subsection.
/usr/local/etc/raddb/sites-enabled/default[220]: Errors parsing
authorize section.
Do I need to change how the switch statement works? The unlang page
doesn't seem to have changed as far as I can tell.
Thanks
Andy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeradius.org/pipermail/freeradius-users/attachments/20131009/d22d280e/attachment.html>
More information about the Freeradius-Users
mailing list