| 1 |
<?php |
<?php |
| 2 |
// $Id$ |
// $Id: session.php,v 1.1 2008/09/25 06:45:42 t0talmeltd0wn Exp $ |
| 3 |
|
|
| 4 |
$xmpp_server_sessions = array(); |
$xmpp_server_sessions = array(); |
| 5 |
|
|
| 122 |
$key = str_replace('*', '%', $key); |
$key = str_replace('*', '%', $key); |
| 123 |
|
|
| 124 |
if ($newval === NULL) { //Retrieve |
if ($newval === NULL) { //Retrieve |
| 125 |
$res = db_query("SELECT sid FROM {xmpp_server_id_map} WHERE key_type='%s' AND key_value LIKE '%s'", $type, $key); |
$res = db_query("SELECT sid FROM {xmpp_server_id_map} |
| 126 |
|
WHERE key_type='%s' |
| 127 |
|
AND key_value LIKE '%s'", |
| 128 |
|
$type, $key); |
| 129 |
|
|
| 130 |
$ret = array(); |
$ret = array(); |
| 131 |
while ($row = mysql_fetch_object($res)) { |
while ($row = mysql_fetch_object($res)) { |
| 132 |
$ret[] = $row->sid; |
$ret[] = $row->sid; |
| 133 |
} |
} |
| 134 |
|
|
| 135 |
|
return $ret; |
| 136 |
|
/* |
| 137 |
//Return nothing if there's no such key. |
//Return nothing if there's no such key. |
| 138 |
if (!empty($ret)) { |
if (!empty($ret)) { |
| 139 |
if(count($ret) == 1) { |
if(count($ret) == 1) { |
| 140 |
return $ret[0]; |
return $ret[0]; |
| 141 |
} |
} |
| 142 |
return $ret; |
return $ret; |
| 143 |
} |
}*/ |
| 144 |
} |
} |
| 145 |
elseif ($newval === false) { //Delete |
elseif ($newval === false) { //Delete |
| 146 |
if ($sid) { |
if ($sid) { |
| 147 |
db_query("DELETE FROM {xmpp_server_id_map} WHERE key_type='%s' AND sid=%d", $type, $key); |
db_query("DELETE FROM {xmpp_server_id_map} |
| 148 |
|
WHERE key_type='%s' |
| 149 |
|
AND sid=%d", $type, $key); |
| 150 |
} |
} |
| 151 |
else { |
else { |
| 152 |
db_query("DELETE FROM {xmpp_server_id_map} WHERE key_type='%s' AND key_value LIKE '%s'", $type, $key); |
db_query("DELETE FROM {xmpp_server_id_map} |
| 153 |
|
WHERE key_type='%s' |
| 154 |
|
AND key_value LIKE '%s'", $type, $key); |
| 155 |
} |
} |
| 156 |
} |
} |
| 157 |
else { //Set |
else { //Set |
| 158 |
$res = db_query("SELECT COUNT(*) AS count FROM {xmpp_server_id_map} WHERE key_type='%s' AND key_value LIKE '%s'", $type, $key); |
$res = db_query("SELECT COUNT(*) AS count FROM {xmpp_server_id_map} |
| 159 |
|
WHERE key_type='%s' |
| 160 |
|
AND key_value LIKE '%s'", $type, $key); |
| 161 |
$count = db_fetch_object($res)->count; |
$count = db_fetch_object($res)->count; |
| 162 |
if ($count) { |
if ($count) { |
| 163 |
db_query("UPDATE {xmpp_server_id_map} SET sid=%d WHERE key_type='%s' AND key_value LIKE '%s'", $newval, $type, $key); |
db_query("UPDATE {xmpp_server_id_map} SET sid=%d |
| 164 |
|
WHERE key_type='%s' |
| 165 |
|
AND key_value LIKE '%s'", $newval, $type, $key); |
| 166 |
} |
} |
| 167 |
else { |
else { |
| 168 |
db_query("INSERT INTO {xmpp_server_id_map} (key_type, key_value, sid) VALUES ('%s', '%s', %d)", $type, $key, $newval); |
db_query("INSERT INTO {xmpp_server_id_map} (key_type, key_value, sid) |
| 169 |
|
VALUES ('%s', '%s', %d)", $type, $key, $newval); |
| 170 |
} |
} |
| 171 |
} |
} |
| 172 |
} |
} |