} $current_url = $_SERVER['REQUEST_URI']; $interval = 60; $auto_refresh = false; if ($auto_refresh) { header("Refresh: {$interval}; url={$current_url}"); } $ip = $_SERVER['REMOTE_ADDR']; $config = get_config_by_network($ip, $config_list); $vserver_id = $config["VSERVER_ID"]; $forward_uri = $config['NAS_LOGIN_PROTO'] . "://" . $config['NAS_LOGIN_HOST']; $forward_uri .= !empty($config['NAS_LOGIN_PORT']) ? ":" . $config['NAS_LOGIN_PORT'] : ""; $forward_uri .= "/login.php?sss=" . time(); $request_url = $_SESSION['request_url']; $request_url_text = strlen($request_url) < 20 ? $request_url : substr($request_url, 0, 20) . " ..."; $xmlrpc = new rahu_xmlrpc_client(); $xmlrpc->host = $config["RAHUNAS_HOST"]; $xmlrpc->port = $config["RAHUNAS_PORT"]; $valid = false; $isinfo = false; $isstopacct = false; $info = array(); $retinfo = $xmlrpc->do_getsessioninfo($vserver_id, $ip); if (is_array($retinfo)) { // Send stop accounting to Radius $ip =& $retinfo["ip"]; $username =& $retinfo["username"]; $session_id =& $retinfo["session_id"]; $session_start =& $retinfo["session_start"]; $mac_address =& $retinfo["mac_address"]; $isinfo = true;
require_once 'config.php'; require_once 'header.php'; require_once 'locale.php'; require_once 'messages.php'; require_once 'networkchk.php'; $ip = $_SERVER['REMOTE_ADDR']; $config = get_config_by_network($ip, $config_list); $vserver_id = $config["VSERVER_ID"]; $forward = false; $LogoutURL = $config['NAS_LOGIN_PROTO'] . "://" . $config['NAS_LOGIN_HOST']; $LogoutURL .= !empty($config['NAS_LOGIN_PORT']) ? ":" . $config['NAS_LOGIN_PORT'] : ""; $LogoutURL .= "/logout.php"; $RequestURL = empty($_GET['request_url']) ? $config['DEFAULT_REDIRECT_URL'] : urldecode($_GET['request_url']); $_SESSION['request_url'] = $RequestURL; // Verify if the user already login $xmlrpc = new rahu_xmlrpc_client(); $xmlrpc->host = $config["RAHUNAS_HOST"]; $xmlrpc->port = $config["RAHUNAS_PORT"]; try { $retinfo = $xmlrpc->do_getsessioninfo($vserver_id, $ip); if (is_array($retinfo) && !empty($retinfo['session_id'])) { $forward = true; } } catch (XML_RPC2_FaultException $e) { $message = get_message('ERR_CONNECT_SERVER'); $forward = false; } catch (XML_RPC2_CurlExeption $e) { $message = get_message('ERR_CONNECT_SERVER'); $forward = false; } catch (Exception $e) { $message = get_message('ERR_CONNECT_SERVER');
define(CACHE_TIME, 120); if (!defined(STDIN)) { define("STDIN", fopen("php://stdin", "r")); } $user_list = array(); while (!feof(STDIN)) { $arg = trim(fgets(STDIN)); $srcip = rawurldecode($arg); $config = get_config_by_network(trim($srcip), $config_list); $vserver_id = $config["VSERVER_ID"]; // Check cache if (!empty($user_list[$vserver_id][$srcip]['username']) && time() - $user_list[$vserver_id][$srcip]['timestamp'] < CACHE_TIME) { fwrite(STDOUT, "OK user="******"\n"); continue; } $xmlrpc = new rahu_xmlrpc_client(); $xmlrpc->host = $config["RAHUNAS_HOST"]; $xmlrpc->port = $config["RAHUNAS_PORT"]; try { $retinfo = $xmlrpc->do_getsessioninfo($vserver_id, $srcip); if (is_array($retinfo) && !empty($retinfo['session_id'])) { $user_list[$vserver_id][$srcip]['username'] = $retinfo['username']; $user_list[$vserver_id][$srcip]['timestamp'] = time(); fwrite(STDOUT, "OK user="******"\n"); } else { fwrite(STDOUT, "ERR\n"); } } catch (XML_RPC2_FaultException $e) { fwrite(STDOUT, "ERR\n"); } catch (XML_RPC2_CurlException $e) { fwrite(STDOUT, "ERR\n");