aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2014-01-29 02:25:21 -0800
committerfriendica <info@friendica.com>2014-01-29 02:25:21 -0800
commit10b51a9471bba2a1b058eee2d362d3d2189627be (patch)
treeee53aa7e6a106efc85ca5a32f1ab9db14411ed24
parentf84ba95e870ce5b63e5af4cc7be43b516d4c163d (diff)
downloadvolse-hubzilla-10b51a9471bba2a1b058eee2d362d3d2189627be.tar.gz
volse-hubzilla-10b51a9471bba2a1b058eee2d362d3d2189627be.tar.bz2
volse-hubzilla-10b51a9471bba2a1b058eee2d362d3d2189627be.zip
issues uncovered whilst testing the chatroom API
-rw-r--r--include/chat.php18
-rw-r--r--mod/ping.php10
2 files changed, 17 insertions, 11 deletions
diff --git a/include/chat.php b/include/chat.php
index cb910bd62..8011fdb5b 100644
--- a/include/chat.php
+++ b/include/chat.php
@@ -23,8 +23,8 @@ function chatroom_create($channel,$arr) {
$created = datetime_convert();
$x = q("insert into chatroom ( cr_aid, cr_uid, cr_name, cr_created, cr_edited, allow_cid, allow_gid, deny_cid, deny_gid )
- values ( %d, %d , '%s' '%s', '%s', '%s', '%s', '%s', '%s' ) ",
- intval($channel['account_id']),
+ values ( %d, %d , '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
+ intval($channel['channel_account_id']),
intval($channel['channel_id']),
dbesc($name),
dbesc($created),
@@ -34,6 +34,7 @@ function chatroom_create($channel,$arr) {
dbesc($arr['deny_cid']),
dbesc($arr['deny_gid'])
);
+
if($x)
$ret['success'] = true;
@@ -74,8 +75,8 @@ function chatroom_destroy($channel,$arr) {
}
-function chatroom_enter($observer_xchan,$room_id,$status) {
- if(! $room_id || ! $observer)
+function chatroom_enter($observer_xchan,$room_id,$status,$client) {
+ if(! $room_id || ! $observer_xchan)
return;
$r = q("select * from chatpresence where cp_xchan = '%s' and cp_room = %d limit 1",
dbesc($observer_xchan),
@@ -90,19 +91,20 @@ function chatroom_enter($observer_xchan,$room_id,$status) {
return true;
}
- $r = q("insert into chatpresence ( cp_room, cp_xchan, cp_last, cp_status )
- values ( %d, '%s', '%s', '%s' )",
+ $r = q("insert into chatpresence ( cp_room, cp_xchan, cp_last, cp_status, cp_client )
+ values ( %d, '%s', '%s', '%s', '%s' )",
intval($room_id),
dbesc($observer_xchan),
dbesc(datetime_convert()),
- dbesc($status)
+ dbesc($status),
+ dbesc($client)
);
return $r;
}
function chatroom_leave($observer_xchan,$room_id,$status) {
- if(! $room_id || ! $observer)
+ if(! $room_id || ! $observer_xchan)
return;
$r = q("select * from chatpresence where cp_xchan = '%s' and cp_room = %d limit 1",
dbesc($observer_xchan),
diff --git a/mod/ping.php b/mod/ping.php
index e205dbea7..c3c81992f 100644
--- a/mod/ping.php
+++ b/mod/ping.php
@@ -44,18 +44,22 @@ function ping_init(&$a) {
}
if(get_observer_hash() && (! $result['invalid'])) {
- $r = q("select cp_id from chatpresence where cp_xchan = '%s'",
- dbesc(get_observer_hash())
+ $r = q("select cp_id from chatpresence where cp_xchan = '%s' and cp_client = '%s'",
+ dbesc(get_observer_hash()),
+ dbesc($_SERVER['REMOTE_ADDR'])
);
+ $basic_presence = false;
if($r) {
foreach($r as $rr) {
+ if($rr['cp_id'] == 0)
+ $basic_presence = true;
q("update chatpresence set cp_last = '%s' where cp_id = %d limit 1",
dbesc(datetime_convert()),
intval($rr['cp_id'])
);
}
}
- else {
+ if(! $basic_presence) {
q("insert into chatpresence ( cp_xchan, cp_last, cp_status, cp_client)
values( '%s', '%s', '%s', '%s' ) ",
dbesc(get_observer_hash()),