Example #1
0
if (!empty($_POST['do_logout'])) {
    if ($isinfo) {
        $result = $xmlrpc->do_stopsession($vserver_id, $ip, returnMacAddress(), RADIUS_TERM_USER_REQUEST);
        if ($result === true) {
            $valid = false;
            $message = get_message('OK_USER_LOGOUT');
            $isstopacct = true;
        } else {
            $valid = false;
            $message = get_message('ERR_LOGOUT_FAILED');
            $show_info = true;
        }
    }
    if ($isstopacct) {
        // Send account stop to radius
        $racct = new rahu_radius_acct($username);
        $racct->host = $config["RADIUS_HOST"];
        $racct->port = $config["RADIUS_ACCT_PORT"];
        $racct->secret = $config["RADIUS_SECRET"];
        $racct->nas_identifier = $config["NAS_IDENTIFIER"];
        $racct->nas_ip_address = $config["NAS_IP_ADDRESS"];
        $racct->nas_port = $config["NAS_PORT"];
        $racct->framed_ip_address = $ip;
        $racct->calling_station_id = $mac_address;
        $racct->terminate_cause = RADIUS_TERM_USER_REQUEST;
        $racct->session_id = $session_id;
        $racct->session_start = $session_start;
        $racct->acctStop();
    }
} else {
    $show_info = true;
Example #2
0
    $forward = false;
}
if (!empty($_POST['user']) && !empty($_POST['passwd'])) {
    $message = "";
    $rauth = new rahu_radius_auth($_POST['user'], $_POST['passwd'], $config['RADIUS_ENCRYPT']);
    $rauth->host = $config["RADIUS_HOST"];
    $rauth->port = $config["RADIUS_AUTH_PORT"];
    $rauth->secret = $config["RADIUS_SECRET"];
    $rauth->start();
    if ($rauth->isError()) {
        $message = get_message('ERR_CONNECT_RADIUS');
    } else {
        if ($rauth->isAccept()) {
            $message = get_message('OK_USER_AUTHORIZED');
            $forward = true;
            $racct = new rahu_radius_acct($_POST['user']);
            $racct->host = $config["RADIUS_HOST"];
            $racct->port = $config["RADIUS_ACCT_PORT"];
            $racct->secret = $config["RADIUS_SECRET"];
            $racct->nas_identifier = $config["NAS_IDENTIFIER"];
            $racct->nas_ip_address = $config["NAS_IP_ADDRESS"];
            $racct->nas_port = $config["NAS_PORT"];
            $racct->framed_ip_address = $_SERVER['REMOTE_ADDR'];
            $racct->calling_station_id = returnMacAddress();
            $racct->gen_session_id();
            $serviceclass_attrib = defined('SERVICECLASS_ATTRIBUTE') ? SERVICECLASS_ATTRIBUTE : "WISPr-Billing-Class-Of-Service";
            try {
                $prepareData = array("IP" => $ip, "Username" => $_POST['user'], "SessionID" => $racct->session_id, "MAC" => returnMacAddress(), "Session-Timeout" => $rauth->attributes['session_timeout'], "Bandwidth-Max-Down" => $rauth->attributes['WISPr-Bandwidth-Max-Down'], "Bandwidth-Max-Up" => $rauth->attributes['WISPr-Bandwidth-Max-Up'], "Class-Of-Service" => $rauth->attributes[$serviceclass_attrib]);
                $result = $xmlrpc->do_startsession($vserver_id, $prepareData);
                if (strstr($result, "Client already login")) {
                    $message = get_message('ERR_ALREADY_LOGIN');
Example #3
0
    return "[RESULT]";
}
$xmlrpc_server = xmlrpc_server_create();
xmlrpc_server_register_method($xmlrpc_server, "stopacct", "do_stopacct");
$request_xml = $HTTP_RAW_POST_DATA;
$response = xmlrpc_server_call_method($xmlrpc_server, $request_xml, '');
if ($GLOBALS["task"] == "do_stopacct") {
    $ip =& $GLOBALS["ip"];
    $username =& $GLOBALS["username"];
    $session_id =& $GLOBALS["session_id"];
    $session_start =& $GLOBALS["session_start"];
    $mac_address =& $GLOBALS["mac_address"];
    $cause =& $GLOBALS["cause"];
    $config = get_config_by_network($ip, $config_list);
    $vserver_id = $config["VSERVER_ID"];
    $racct = new rahu_radius_acct($username);
    $racct->host = $config["RADIUS_HOST"];
    $racct->port = $config["RADIUS_ACCT_PORT"];
    $racct->secret = $config["RADIUS_SECRET"];
    $racct->nas_identifier = $config["NAS_IDENTIFIER"];
    $racct->nas_ip_address = $config["NAS_IP_ADDRESS"];
    $racct->framed_ip_address = $ip;
    $racct->calling_station_id = $mac_address;
    $racct->terminate_cause = !empty($cause) ? $cause : RADIUS_TERM_NAS_ERROR;
    $racct->nas_port = $config["NAS_PORT"];
    $racct->session_id = $session_id;
    $racct->session_start = $session_start;
    if ($racct->acctStop() === true) {
        $response = str_replace("[RESULT]", "OK", $response);
    } else {
        $response = str_replace("[RESULT]", "FAIL", $response);