EOM; } if ($config[general_decode_normal_attributes] == 'yes'){ if (is_file("../lib/lang/$config[general_prefered_lang]/utf8.php3")) include_once("../lib/lang/$config[general_prefered_lang]/utf8.php3"); else include_once('../lib/lang/default/utf8.php3'); $k = init_decoder(); $decode_normal = 1; } require_once('../lib/functions.php3'); require("../lib/$config[general_lib_type]/functions.php3"); if (is_file("../lib/sql/drivers/$config[sql_type]/functions.php3")) include_once("../lib/sql/drivers/$config[sql_type]/functions.php3"); else{ echo <<
Could not include SQL library functions. Aborting EOM; exit(); } $date = strftime('%A, %e %B %Y, %T %Z'); $sql_extra_query = ''; if ($config[sql_accounting_extra_query] != ''){ $sql_extra_query = xlat($config[sql_accounting_extra_query],$login,$config); $sql_extra_query = da_sql_escape_string($sql_extra_query); } $link = @da_sql_pconnect($config); $link2 = connect2db($config); $tot_in = $tot_rem = 0; if ($link){ $h = 21; $servers_num = 0; if ($config[general_ld_library_path] != '') putenv("LD_LIBRARY_PATH=$config[general_ld_library_path]"); foreach($nas_list as $nas){ $j = 0; $num = 0; if ($server != ''){ if ($nas[name] == $server) $servers_num++; else continue; } else $servers_num++; if ($nas[ip] == '') continue; $name_data = $nas[ip]; $community_data = $nas[community]; $server_name[$servers_num] = $nas[name]; $server_model[$servers_num] = $nas[model]; $extra = ""; $finger_type = $config[general_finger_type]; if ($nas[finger_type] != '') $finger_type = $nas[finger_type]; if ($finger_type == 'snmp'){ $nas_type = ($nas[type] != '') ? $nas[type] : $config[general_nas_type]; if ($nas_type == '') $nas_type = 'cisco'; $users=exec("$config[general_snmpfinger_bin] $name_data $community_data $nas_type"); if (strlen($users)){ $extra = "AND username IN ($users)"; if ($config[general_strip_realms] == 'yes'){ if ($config[general_realm_format] == 'prefix') $match = "'[^']+" . $config[general_realm_delimiter]; else $match = $config[general_realm_delimiter] . "[^']+'"; $extra = preg_replace("/$match/","'",$extra); } } } $search = @da_sql_query($link,$config, "SELECT COUNT(*) AS onlineusers FROM $config[sql_accounting_table] WHERE acctstoptime IS NULL AND nasipaddress = '$name_data' $extra $sql_extra_query;"); if ($search){ if (($row = @da_sql_fetch_array($search,$config))) $num = $row[onlineusers]; } $search = @da_sql_query($link,$config, "SELECT DISTINCT username,acctstarttime,framedipaddress,callingstationid FROM $config[sql_accounting_table] WHERE acctstoptime IS NULL AND nasipaddress = '$name_data' $extra $sql_extra_query GROUP BY username,acctstarttime,framedipaddress,callingstationid ORDER BY acctstarttime;"); if ($search){ $now = time(); while($row = @da_sql_fetch_array($search,$config)){ $j++; $h += 21; $user = $row['username']; $finger_info[$servers_num][$j]['ip'] = $row['framedipaddress']; if ($finger_info[$servers_num][$j]['ip'] == '') $finger_info[$servers_num][$j]['ip'] = '-'; $session_time = $row['acctstarttime']; $session_time = date2timediv($session_time,$now); $finger_info[$servers_num][$j]['session_time'] = time2strclock($session_time); $finger_info[$servers_num][$j]['user'] = $user; $finger_info[$servers_num][$j]['callerid'] = $row['callingstationid']; if ($finger_info[$servers_num][$j]['callerid'] == '') $finger_info[$servers_num][$j]['callerid'] = '-'; if ($user_info["$user"] == ''){ $user_info["$user"] = get_user_info($link2,$user,$config,$decode_normal,$k); if ($user_info["$user"] == '' || $user_info["$user"] == ' ') $user_info["$user"] = 'Unknown User'; } } $height[$servers_num] = $h; } $server_counting[$servers_num] = $j; $server_loggedin[$servers_num] = $num; $server_rem[$servers_num] = ($config[$portnum]) ? ($config[$portnum] - $num) : 'unknown'; $tot_in += $num; if (is_numeric($server_rem[$servers_num])) $tot_rem += $server_rem[$servers_num]; } } else echo "Could not connect to SQL database
\n"; if (isset($usage_summary)){ echo "Online: $tot_in Free: $tot_rem\n"; exit(); } ?>

Online Users 
$date EOM; for($j = 1; $j <= $servers_num; $j++){ echo <<
$server_name[$j]
$server_model[$j]
$server_loggedin[$j] users connected$server_rem[$j] $config[general_caption_finger_free_lines]
EOM; if ($acct_attrs['uf'][4] != '') echo "\n"; if ($acct_attrs['uf'][9] != '') echo "\n"; echo <<name EOM; for( $k = 1; $k <= $server_counting[$j]; $k++){ $user = $finger_info[$j][$k][user]; if ($user == '') $user = ' '; $User = urlencode($user); $time = $finger_info[$j][$k][session_time]; $ip = $finger_info[$j][$k][ip]; $cid = $finger_info[$j][$k][callerid]; $inf = $user_info[$user]; echo << EOM; if ($acct_attrs['uf'][4] != '') echo "\n"; if ($acct_attrs['uf'][9] != '') echo "\n"; echo <<$inf EOM; } echo << EOM; } ?>
#user" . $acct_attrs[uf][4] . "" . $acct_attrs[uf][9] . "duration
$k$user$ip$cid$time