solves bug where reload deleted things it shouldnt have

and adds check into jabberstatus so it cant segfault.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@31298 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Matt O'Gorman 2006-06-01 08:22:44 +00:00
parent 8cfb992c1e
commit 073e346f4e
1 changed files with 9 additions and 2 deletions

View File

@ -332,7 +332,11 @@ static int aji_status_exec(struct ast_channel *chan, void *data)
ast_log(LOG_WARNING, "Could not find Connection.\n");
return -1;
}
if(!&client->buddies) {
ast_log(LOG_WARNING, "No buddies for connection.\n");
return -1;
}
ASTOBJ_CONTAINER_TRAVERSE(&client->buddies, 1, {
ASTOBJ_RDLOCK(iterator);
if (!strcasecmp(iterator->user, screenname)) {
@ -2057,6 +2061,7 @@ static int aji_create_transport(char *label, struct aji_client *client)
}
}
ASTOBJ_UNLOCK(buddy);
ASTOBJ_UNMARK(buddy);
ASTOBJ_CONTAINER_LINK(&client->buddies, buddy);
return 0;
}
@ -2088,8 +2093,10 @@ static int aji_create_buddy(char *label, struct aji_client *client)
ASTOBJ_UNLOCK(buddy);
if(flag)
ASTOBJ_CONTAINER_LINK(&client->buddies, buddy);
else
else {
ASTOBJ_UNMARK(buddy);
ASTOBJ_UNREF(buddy, aji_buddy_destroy);
}
return 1;
}