Hi,

 I have an exec module (formatmac) that would take in the
Client-Station-Id, pass it to a perl script (formatmac), which would
then set the User-Name of the request packet to a formatted version of
the Client-Station-Id.  This works but, the sql authentication module
then complains that

""rlm_sql (sql): zero length username not permitted ""

How should I pass the User-Name = 'formatted mac address' attribute pair
from the formatmac perl script?  If I don't use ':=' when I print the
attribute then the change to User-Name is ignored if I do use ':=' as
shown it erases the User-Name value.  I've tried no, single and double
quotes around 'formatted mac address' with no luck.


This is what my config, script, and debug look like....


under modules section of radius.conf:
-------------------------------------
        exec formatmac {
                wait = yes
                program = "/home/jose/formatmac %{Client-Station-Id}"
                input_pairs = request
                output_pairs = request
                }


if have 'formatmac' in the authorize section of radius.conf


formatmac perl script:
----------------------

my $inmac = $ARGV[0];

$inmac =~ s/\://g;

print "User-Name := \'$inmac\'";


radius -X output:
-----------------

radius_xlat:  '/home/jose/formatmac 00:22:11:45:ff:43'
Exec-Program: /home/jose/formatmac 00:22:11:45:ff:43
Exec-Program output: User-Name := '00221145ff43'
Exec-Program-Wait: value-pairs: User-Name := '00221145ff43'
Exec-Program: returned: 0
  modcall[authorize]: module "formatmac" returns ok for request 0
rlm_sql (sql): zero length username not permitted 
  modcall[authorize]: module "sql" returns invalid for request 0
modcall: group authorize returns invalid for request 0
Delaying request 0 for 1 seconds



- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to