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