176 lines
5.6 KiB
PHP
176 lines
5.6 KiB
PHP
<?
|
|
error_reporting(E_ALL); // yes, we remember this from the login server, don't we boys and girls? don't kill innocent XML-RPC!
|
|
|
|
// these files are soooo common..... (to the grid)
|
|
include("../common/xmlrpc.inc.php");
|
|
include("../common/database.inc.php");
|
|
include("../common/grid_config.inc.php");
|
|
include("../common/util.inc.php");
|
|
|
|
include("gridserver_config.inc.php"); // grid server specific config stuff
|
|
|
|
function get_sim_info($args) {
|
|
global $dbhost,$dbuser,$dbpasswd,$dbname;
|
|
global $userserver_sendkey, $userserver_recvkey;
|
|
|
|
// First see who's talking to us, if key is invalid then send an invalid one back and nothing more
|
|
if($args['authkey']!=$userserver_recvkey) {
|
|
return Array(
|
|
'authkey' => 'I can play the bad key trick too you know',
|
|
'login' => 'false'
|
|
);
|
|
}
|
|
|
|
// if we get to here, the key is valid, give that login server what it wants!
|
|
|
|
$link = mysql_connect($dbhost,$dbuser,$dbpasswd)
|
|
OR die("Unable to connect to database");
|
|
|
|
mysql_select_db($dbname)
|
|
or die("Unable to select database");
|
|
|
|
$region_handle = $args['region_handle'];
|
|
$query = "SELECT * FROM region_profiles WHERE region_handle='$region_handle'";
|
|
$result = mysql_query($query);
|
|
|
|
return mysql_fetch_assoc($result);
|
|
}
|
|
|
|
function get_session_info($args) {
|
|
global $dbhost,$dbuser,$dbpasswd,$dbname;
|
|
global $sim_sendkey, $sim_recvkey;
|
|
|
|
// authkey, session-id, agent-id
|
|
|
|
// First see who's talking to us, if key is invalid then send an invalid one back and nothing more
|
|
if($args[0]!=$sim_recvkey) {
|
|
return Array(
|
|
'authkey' => "I can play the bad key trick too you know"
|
|
);
|
|
}
|
|
|
|
$link = mysql_connect($dbhost,$dbuser,$dbpasswd)
|
|
OR die("Unable to connect to database");
|
|
|
|
mysql_select_db($dbname)
|
|
or die("Unable to select database");
|
|
|
|
$session_id = $args[1];
|
|
$agent_id = $args[2];
|
|
|
|
$query = "SELECT * FROM sessions WHERE session_id = '$session_id' AND agent_id='$agent_id' AND session_active=1";
|
|
$result = mysql_query($query);
|
|
if(mysql_num_rows($result)>0) {
|
|
$info=mysql_fetch_assoc($result);
|
|
$circuit_code = $info['circuit_code'];
|
|
$secure_session_id=$info['secure_session_id'];
|
|
|
|
$query = "SELECT * FROM local_user_profiles WHERE userprofile_LLUUID='$agent_id'";
|
|
$result=mysql_query($query);
|
|
$userinfo=mysql_fetch_assoc($result);
|
|
$firstname=$userinfo['profile_firstname'];
|
|
$lastname=$userinfo['profile_lastname'];
|
|
$agent_id=$userinfo['userprofile_LLUUID'];
|
|
return Array(
|
|
'authkey' => $sim_sendkey,
|
|
'circuit_code' => $circuit_code,
|
|
'agent_id' => $agent_id,
|
|
'session_id' => $session_id,
|
|
'secure_session_id' => $secure_session_id,
|
|
'firstname' => $firstname,
|
|
'lastname' => $lastname
|
|
);
|
|
}
|
|
}
|
|
|
|
function check_loggedin($args) {
|
|
global $dbhost,$dbuser,$dbpasswd,$dbname;
|
|
global $userserver_sendkey, $userserver_recvkey;
|
|
|
|
// First see who's talking to us, if key is invalid then send an invalid one back and nothing more
|
|
if($args['authkey']!=$userserver_recvkey) {
|
|
return Array(
|
|
'authkey' => "I can play the bad key trick too you know"
|
|
);
|
|
}
|
|
|
|
// if we get to here, the key is valid, give that login server what it wants!
|
|
|
|
$link = mysql_connect($dbhost,$dbuser,$dbpasswd)
|
|
OR die("Unable to connect to database");
|
|
|
|
mysql_select_db($dbname)
|
|
or die("Unable to select database");
|
|
|
|
$userprofile_LLUUID = $args['userprofile_LLUUID'];
|
|
$query = "SELECT * FROM sessions WHERE agent_id='$userprofile_LLUUID' AND session_active=1";
|
|
$result = mysql_query($query);
|
|
|
|
if(mysql_num_rows($result)>1) {
|
|
return Array(
|
|
'authkey' => $userserver_sendkey,
|
|
'logged_in' => 1
|
|
);
|
|
} else {
|
|
return Array(
|
|
'authkey' => $userserver_sendkey,
|
|
'logged_in' => 0
|
|
);
|
|
}
|
|
}
|
|
|
|
function create_session($args) {
|
|
global $dbhost,$dbuser,$dbpasswd,$dbname;
|
|
global $userserver_sendkey, $userserver_recvkey;
|
|
|
|
// First see who's talking to us, if key is invalid then send an invalid one back and nothing more
|
|
if($args['authkey']!=$userserver_recvkey) {
|
|
return Array(
|
|
'authkey' => "I can play the bad key trick too you know"
|
|
);
|
|
}
|
|
|
|
// if we get to here, the key is valid, give that login server what it wants!
|
|
|
|
$link = mysql_connect($dbhost,$dbuser,$dbpasswd)
|
|
OR die("Unable to connect to database");
|
|
|
|
mysql_select_db($dbname)
|
|
or die("Unable to select database");
|
|
|
|
// yes, secure_sessionid should be different, i know...
|
|
$query = "SELECT value FROM Grid_settings WHERE setting='highest_LLUUID'";
|
|
$result = mysql_query($query);
|
|
$row = mysql_fetch_array($result);
|
|
$highest_LLUUID = $row['value'];
|
|
$newsession_id=inc_lluuid($highest_LLUUID);
|
|
$secure_session_id=inc_lluuid($newsession_id);
|
|
|
|
$query="UPDATE Grid_settings SET value='$secure_session_id' WHERE setting='highest_LLUUID' LIMIT 1";
|
|
$result=mysql_query($query);
|
|
|
|
$userprofile_LLUUID=$args['userprofile_LLUUID'];
|
|
$current_location=$args['current_location'];
|
|
$remote_ip=$args['remote_ip'];
|
|
$query="INSERT INTO sessions(session_id,secure_session_id,agent_id,session_start,session_active,current_location,remote_ip) VALUES('$newsession_id','$secure_session_id','$userprofile_LLUUID',NOW(),1,'$current_location','$remote_ip')";
|
|
$result=mysql_query($query);
|
|
if(!isset($result)) {
|
|
die();
|
|
}
|
|
return Array(
|
|
'authkey' => $userserver_sendkey,
|
|
'session_id' => $newsession_id,
|
|
'secure_session_id' => $secure_session_id
|
|
);
|
|
}
|
|
|
|
$server=new IXR_Server(
|
|
Array(
|
|
'check_session_loggedin' => 'check_loggedin',
|
|
'create_session' => 'create_session',
|
|
'get_sim_info' => 'get_sim_info',
|
|
'get_session_info' => 'get_session_info'
|
|
)
|
|
);
|
|
|
|
?>
|