<?php
// ----------------------------------------------------------------------
// Copyright (C) 2007 by GREGORY LE BRAS
// ----------------------------------------------------------------------
// LICENSE
//
// This file is part of ODCNMS - Open DataCenter Network Management System
//
// ODCNMS is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// Foobar is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Foobar; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
// ----------------------------------------------------------------------
// Original Author of file: GREGORY LE BRAS - http://www.odcnms.org/
// ----------------------------------------------------------------------
// Radius Authentication Function based on the PECL/PEAR Radius extension
// More information on : http://uk3.php.net/radius
function radius_authentication ($hostname,$port,$secret,$timeout,$max_tries,$lang)
{
$login = $_POST['login'];
$password = $_POST['password'];
$radius = radius_auth_open();
if (! radius_add_server($radius,$hostname,$port,$secret,$timeout,$max_tries))
{
die('<h3>Radius Error:</h3> ' . radius_strerror($radius));
}
if (! radius_create_request($radius,RADIUS_ACCESS_REQUEST))
{
die('<h3>Radius Error:</h3> ' . radius_strerror($radius));
}
radius_put_attr($radius,RADIUS_USER_NAME,$login);
radius_put_attr($radius,RADIUS_USER_PASSWORD,$password);
switch (radius_send_request($radius))
{
case RADIUS_ACCESS_ACCEPT:
session_start();
$_SESSION['lang'] = $lang;
$_SESSION['login'] = $login;
$_SESSION['password'] = $password;
header("Location:index.php");
break;
case RADIUS_ACCESS_REJECT:
header("Location:index.php?status=failed");
break;
case RADIUS_ACCESS_CHALLENGE:
echo 'CHALLENGE REQUESTED';
break;
default:
die('<h3>Radius Error:</h3> ' . radius_strerror($radius));
}
}
?>