From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
Khaldon manIP
        Sent: Wednesday, 5 September 2007 02:12
        To: [email protected]
        Subject: Freeradius and php script
        
        
        Hi all,
        
        I finally found out how to launch a script after authentication:
        
        I have first created a module 
        
        exec modatt {
                wait = yes
                program = "/home/raduser/test.php %{User-Name} "
                input_pairs = request
                output_pairs = reply
        }
        
        and then I have added it in instantiate and authorize section
        here is the php script (test.php):
        #!/usr/bin/php
        <?php
        $argv = $_SERVER['argv'];    
        if ( $argv[1] == "toto")
            echo "Session-Timeout:=100";
        else
            echo "Session-Timeout:=50";
        
        ?>
        
        But I still have a problem: the session-timeout attribute is not
sent to the NAS.
        The debug output is hereunder:
        Tue Sep  4 17:26:57 2007 : Debug: Exec-Program output:
Session-Timeout:=100
        Tue Sep  4 17:26:57 2007 : Debug: Exec-Program-Wait:
value-pairs: ,Session-Timeout:=100
        Tue Sep  4 17:26:57 2007 : Error: Exec-Program-Wait:
/home/raduser/test.php %{User-Name} : unparsable reply
        Tue Sep  4 17:26:57 2007 : Debug: Exec-Program: returned: 0
        
        But I really don't know why because I execute a sh script
(instead of a php script), it works very well!!
        
        here is my sh script (test.sh):
        #!/bin/sh
        if [ $1 == "toto" ]; then
            echo  "Session-Timeout:=100"
        else
            echo  "Session-Timeout:=53"
        fi
        
        debug trace:
        Tue Sep  4 17:58:00 2007 : Debug: Exec-Program output:
Session-Timeout:=100 
        Tue Sep  4 17:58:00 2007 : Debug: Exec-Program-Wait:
value-pairs: Session-Timeout:=100
        Tue Sep  4 17:58:00 2007 : Debug: Exec-Program: returned: 0
        
        
        I don't see any difference between the scripts (except one is
working and the other one not)....
        Please, advise me...
        
        
        Many Thanks
        
Try:

#!/usr/bin/php
<?php
$argv = $_SERVER['argv'];    
if ( $argv[1] == "toto")
    echo "Session-Timeout:=100\n";
else
    echo "Session-Timeout:=50\n";
return 0;
?>

That is a more accurate emulation of the shell script and is immune to
extraneous white space after the php closing tag.

Regards
Frank Ranner

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

Reply via email to