OpenSimMirror/gridserver/usersessions/index.php

86 lines
2.7 KiB
PHP
Raw Permalink Normal View History

2007-02-25 01:49:24 +00:00
<?
2007-02-26 17:49:10 +00:00
// DIRTY HACK ALERT!!!!!!!!!!!!!
// The following code shows the vital importance of the r69 revision of the original gareth/ branch
2007-02-25 06:26:37 +00:00
// This file parses URLs of the format:
// usersessions/key/userid/data
// where key is the key to authenticate with the grid, userid is the user's LLUUID and data is the data about the user's session being requested
// if the data requested is left out, an XML response will be sent
2007-02-25 01:49:24 +00:00
error_reporting(E_ALL); // Remember kids, PHP errors kill XML-RPC responses and REST too! will the slaughter ever end?
include("../gridserver_config.inc.php");
include("../../common/database.inc.php");
2007-02-25 06:26:37 +00:00
include("../../common/util.inc.php");
2007-02-25 01:49:24 +00:00
// Parse out the parameters from the URL
$params = str_replace($grid_home,'', $_SERVER['REQUEST_URI']);
$params = str_replace("index.php/","",$params);
$params = split('/',$params);
// Die if the key doesn't match
if($params[1]!=$sim_recvkey) {
2007-02-25 06:26:37 +00:00
die();
2007-02-25 01:49:24 +00:00
}
$link = mysql_connect($dbhost,$dbuser,$dbpasswd)
OR die("Unable to connect to database");
2007-02-25 06:26:37 +00:00
mysql_select_db($dbname)
or die("Unable to select database");
2007-02-25 06:26:37 +00:00
$agent_id = strtolower($params[2]);
$query = "SELECT * FROM sessions WHERE agent_id='$agent_id' AND session_active=1";
2007-02-25 06:26:37 +00:00
2007-02-26 17:49:10 +00:00
// if we have 4 params, then param 4 is the command
if(count($params)==4) {
$cmd=$params['3'];
} else if(count($params)==5) {
$circuit_code=$params[3];
$cmd=$params[4]; // otherwise, 5 is the command and 4 is the circuit code
}
$result = mysql_query($query);
if(mysql_num_rows($result)>0) {
$info=mysql_fetch_assoc($result);
2007-02-25 06:26:37 +00:00
$circuit_code = $info['circuit_code'];
2007-02-26 17:49:10 +00:00
if($circuit_code == 0) $circuit_code=$params['4'];
$secure_session_id=$info['secure_session_id'];
$session_id=$info['session_id'];
2007-02-25 06:26:37 +00:00
$query = "SELECT * FROM local_user_profiles WHERE userprofile_LLUUID='$agent_id'";
$result=mysql_query($query);
$userinfo=mysql_fetch_assoc($result);
$firstname=$userinfo['profile_firstname'];
2007-02-25 06:26:37 +00:00
$lastname=$userinfo['profile_lastname'];
$agent_id=$userinfo['userprofile_LLUUID'];
2007-02-26 17:49:10 +00:00
$exists=1;
} else {
$exists=0;
}
2007-02-25 06:26:37 +00:00
2007-02-26 17:49:10 +00:00
// if only 3 params, assume we are sending an XML response
if(count($params)==3) {
2007-02-25 06:26:37 +00:00
output_xml_block("usersession",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
));
}
2007-02-25 06:26:37 +00:00
2007-02-26 17:49:10 +00:00
switch($cmd) {
case 'exists':
echo $exists;
break;
2007-03-02 23:26:36 +00:00
case 'delete':
$query = "UPDATE sessions SET session_active=0, session_end=NOW() WHERE agent_id='$agent_id' LIMIT 1";
$deleteresult = mysql_query($query);
break;
2007-02-26 17:49:10 +00:00
}
2007-02-25 01:49:24 +00:00
?>