I: rlm_sql

Carlo Prestopino c.prestopino at waitalia.com
Fri Feb 3 14:53:41 CET 2006


Ok,

I’ve tested the function once again on RADIUS, It was an error in the
function (I used “utente” instead of “user”) that caused RADIUS malfunction.

The process logic is as follows:

 

1                    check if user’s MAC is present in radcheck table

2                    if not present his MAC will be inserted into radcheck

 

In sql.conf Postauth_query is changed as detailed 

 

postauth_query = "INSERT into ${postauth_table} (id, user, pass, reply,
date) values ('', '%{User-Name}', '%{User-Password:-Chap-Password}',
'%{replyacket-Type}', NOW()); SELECT mac_check('%{User-Name}',
'%{Calling-Station-Id}')"

 

it is simply added a call to the function mac_check, defined as follows

 

CREATE FUNCTION `mac_check`(user VARCHAR(20),mac VARCHAR(30)) RETURNS
varchar(50)

    DETERMINISTIC

BEGIN

IF (SELECT (SELECT MAX((Attribute='Calling-Station-Id')) from radcheck WHERE
UserName=user))

THEN

            RETURN 'record already present';

END IF;

            INSERT INTO radcheck (UserName,Attribute,op,Value) VALUES
(user,'Calling-Station-Id',':=', mac);

            RETURN 'record inserted';

END

 

Regards,

Carlo

 

 

 

  _____  

Da: Carlo Prestopino [mailto:c.prestopino at waitalia.com] 
Inviato: venerdì 3 febbraio 2006 13.57
A: 'FreeRadius developers mailing list'
Oggetto: R: rlm_sql

 

Yes, it’s ok.

I’ve simply made a mistake in cut/paste operations.

The corret one is as follows

 

CREATE FUNCTION `mac_check`(utente VARCHAR(20),mac VARCHAR(30)) RETURNS
varchar(50)

    DETERMINISTIC

BEGIN

IF (SELECT (SELECT MAX((Attribute='Calling-Station-Id')) from radcheck WHERE
UserName=user))

THEN

            #INSERT into radpostauth (id, user, pass, reply, date) values
('', utente, passwd,reply_packet, NOW());

            RETURN 'record already present';

END IF;

            INSERT INTO radcheck (UserName,Attribute,op,Value) VALUES
(utente,'Calling-Station-Id',':=', mac);

            RETURN 'record inserted';

END

 

The five arguments one is because I tried to change the content of
postauth_query with a function that have to perform two actions:

-          INSERT into radcheck (needed to perform MAC control)

-          INSERT into radpostauth (original behaviour of postauth_query)

 

Regards,

Carlo

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeradius.org/pipermail/freeradius-devel/attachments/20060203/df5314e8/attachment.html>


More information about the Freeradius-Devel mailing list