Running an external script
    Jonathan Gazeley 
    jonathan.gazeley at bristol.ac.uk
       
    Thu Mar 12 11:33:15 CET 2009
    
    
  
In my my inner-tunnel virtual server, authorize section, I have some 
code like this, for sorting users into vlans:
        update control {
                Tunnel-Type := "VLAN"
                Tunnel-Medium-Type := "IEEE-802"
                Tunnel-Private-Group-Id := 
`/usr/local/etc/raddb/scripts/userVlan.pl %{User-Name} 2>/dev/null`
        }
        update reply {
                Tunnel-Type := "VLAN"
                Tunnel-Medium-Type := "IEEE-802"
                Tunnel-Private-Group-Id := 
`/usr/local/etc/raddb/scripts/userVlan.pl %{User-Name} 2>/dev/null`
        }
This was put together in a hurry and is pretty undesirable, as the perl 
script (which queries a slow database) is executed twice. Of course in 
any other language, one would simply save the return value of the script 
in a variable and reference it twice - but quoting "man unlang": " Note 
that unlike C, there is no way to declare variables".
So is there a way to store the return value such that I can execute the 
script only once?
Or how about something like:
        update control {
                Tunnel-Type := "VLAN"
                Tunnel-Medium-Type := "IEEE-802"
                Tunnel-Private-Group-Id := 
`/usr/local/etc/raddb/scripts/userVlan.pl %{User-Name} 2>/dev/null`
        }
        update reply {
                Tunnel-Type := "VLAN"
                Tunnel-Medium-Type := "IEEE-802"
                Tunnel-Private-Group-Id :=  
%{control.Tunnel-Private-Group-Id}
        }
Cheers,
Jonathan
----------------------------
Jonathan Gazeley
Systems Support Specialist
ResNet | Wireless & VPN Team
Information Services
University of Bristol
----------------------------
    
    
More information about the Freeradius-Users
mailing list