aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormogorman <mogorman@f38db490-d61c-443f-a65b-d21fe96a405b>2006-06-06 19:51:26 +0000
committermogorman <mogorman@f38db490-d61c-443f-a65b-d21fe96a405b>2006-06-06 19:51:26 +0000
commit3bc4a9918256e95d821e1e34a3b1ac45ea4423bf (patch)
tree2e78fa04c1ab7feeafaf7f5b7097e398c4fdb9cf
parentce04789775c3f638ee35637eea72e9d8584ab02b (diff)
fixes some issues with description loggin on presence
as well as some typos. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@32675 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--include/asterisk/jabber.h4
-rw-r--r--res/res_jabber.c9
2 files changed, 9 insertions, 4 deletions
diff --git a/include/asterisk/jabber.h b/include/asterisk/jabber.h
index ad76f5487..8b053623d 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 8a16ade88..a7f3fd863 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;