From: Matt O'Gorman Date: Tue, 6 Jun 2006 19:51:26 +0000 (+0000) Subject: fixes some issues with description loggin on presence X-Git-Tag: 1.4.0-beta1~1026 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c0155e6cb8ac044e5be79e796e7330329954618;p=thirdparty%2Fasterisk.git fixes some issues with description loggin on presence as well as some typos. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@32675 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/include/asterisk/jabber.h b/include/asterisk/jabber.h index ad76f54870..8b053623d9 100644 --- a/include/asterisk/jabber.h +++ b/include/asterisk/jabber.h @@ -23,7 +23,7 @@ #include "asterisk/astobj.h" enum aji_state { - AJI_DISCONNECTED=0, + AJI_DISCONNECTED = 0, AJI_CONNECTING, AJI_CONNECTED }; @@ -60,7 +60,7 @@ struct aji_capabilities { struct aji_resource { int status; char resource[80]; - char description[1000]; + char *description; struct aji_version *cap; int priority; struct aji_resource *next; diff --git a/res/res_jabber.c b/res/res_jabber.c index 8a16ade885..a7f3fd863d 100644 --- a/res/res_jabber.c +++ b/res/res_jabber.c @@ -104,7 +104,7 @@ static char reload_usage[] = static char test_usage[] = "Usage: JABBER test [client]\n" -" Sends test massage for debugging purposes. A specific client\n" +" Sends test message for debugging purposes. A specific client\n" " as configured in jabber.conf can be optionally specified.\n"; static struct ast_cli_entry aji_cli[] = { @@ -169,6 +169,7 @@ static void aji_buddy_destroy(struct aji_buddy *obj) while ((tmp = obj->resources)) { obj->resources = obj->resources->next; + free(tmp->description); free(tmp); } @@ -1015,7 +1016,7 @@ static void aji_handle_presence(struct aji_client *client, ikspak *pak) int status, priority; struct aji_buddy *buddy = NULL; struct aji_resource *tmp = NULL, *last = NULL, *found = NULL; - char *ver, *node; + char *ver, *node, *descrip; if(client->state != AJI_CONNECTED) { buddy = (struct aji_buddy *) malloc(sizeof(struct aji_buddy)); @@ -1048,10 +1049,13 @@ static void aji_handle_presence(struct aji_client *client, ikspak *pak) status = (pak->show) ? pak->show : 6; priority = atoi((iks_find_cdata(pak->x, "priority")) ? iks_find_cdata(pak->x, "priority") : "0"); tmp = buddy->resources; + descrip = ast_strdup(iks_find_cdata(pak->x,"status")); while (tmp) { if (!strcasecmp(tmp->resource, pak->from->resource)) { tmp->status = status; + if (tmp->description) free(tmp->description); + tmp->description = descrip; found = tmp; if (status == 6) { /* Sign off Destroy resource */ if (last && found->next) { @@ -1114,6 +1118,7 @@ static void aji_handle_presence(struct aji_client *client, ikspak *pak) } ast_copy_string(found->resource, pak->from->resource, sizeof(found->resource)); found->status = status; + found->description = descrip; found->priority = priority; found->next = NULL; last = NULL;