[asterisk-commits] mogorman: trunk r44313 - in /trunk: ./ channels/chan_gtalk.c res/res_jabber.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Tue Oct 3 15:36:52 MST 2006


Author: mogorman
Date: Tue Oct  3 17:36:51 2006
New Revision: 44313

URL: http://svn.digium.com/view/asterisk?rev=44313&view=rev
Log:
Merged revisions 44312 via svnmerge from 
https://svn.digium.com/svn/asterisk/branches/1.4

........
r44312 | mogorman | 2006-10-03 17:35:43 -0500 (Tue, 03 Oct 2006) | 2 lines

fix issue with dialing client without resource.

........

Modified:
    trunk/   (props changed)
    trunk/channels/chan_gtalk.c
    trunk/res/res_jabber.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Modified: trunk/channels/chan_gtalk.c
URL: http://svn.digium.com/view/asterisk/trunk/channels/chan_gtalk.c?rev=44313&r1=44312&r2=44313&view=diff
==============================================================================
--- trunk/channels/chan_gtalk.c (original)
+++ trunk/channels/chan_gtalk.c Tue Oct  3 17:36:51 2006
@@ -880,8 +880,9 @@
 		data = ast_strdupa((char *) tmp->us);
 		exten = strsep(&data, "/");
 		free(data);
-	}
-	ast_copy_string(tmp->exten, exten, sizeof(tmp->exten));
+	} else
+		exten = tmp->us;
+	ast_copy_string(tmp->exten,  exten, sizeof(tmp->exten));
 	ast_mutex_init(&tmp->lock);
 	ast_mutex_lock(&gtalklock);
 	tmp->next = client->p;
@@ -1515,6 +1516,7 @@
 	ast_verbose("IT DOES WORK!\n");
 	return RESULT_SUCCESS;
 }
+
 static int gtalk_parser(void *data, ikspak *pak)
 {
 	struct gtalk *client = ASTOBJ_REF((struct gtalk *) data);
@@ -1540,6 +1542,7 @@
 	ASTOBJ_UNREF(client, gtalk_member_destroy);
 	return IKS_FILTER_EAT;
 }
+
 /* Not using this anymore probably take out soon 
 static struct gtalk_candidate *gtalk_create_candidate(char *args)
 {
@@ -1630,6 +1633,7 @@
 									IKS_PAK_IQ, IKS_RULE_FROM_PARTIAL, member->user,
 									IKS_RULE_NS, "http://www.google.com/session",
 									IKS_RULE_DONE);
+
 			} else {
 				ast_log(LOG_ERROR, "connection referenced not found!\n");
 				return 0;

Modified: trunk/res/res_jabber.c
URL: http://svn.digium.com/view/asterisk/trunk/res/res_jabber.c?rev=44313&r1=44312&r2=44313&view=diff
==============================================================================
--- trunk/res/res_jabber.c (original)
+++ trunk/res/res_jabber.c Tue Oct  3 17:36:51 2006
@@ -871,7 +871,6 @@
 	struct aji_buddy *buddy = ASTOBJ_CONTAINER_FIND(&client->buddies, pak->from->partial);
 
 	resource = aji_find_resource(buddy, pak->from->resource);
-
 	if (pak->subtype == IKS_TYPE_RESULT) {
 		if (!resource) {
 			ast_log(LOG_NOTICE,"JABBER: Received client info from %s when not requested.\n", pak->from->full);
@@ -927,13 +926,26 @@
 static int aji_dinfo_handler(void *data, ikspak *pak)
 {
 	struct aji_client *client = ASTOBJ_REF((struct aji_client *) data);
-	char *node = NULL, *type = NULL;
-	type = iks_find_attrib(pak->x,"type");
-	if (!strcasecmp(type,"error")) {
+	char *node = NULL;
+	struct aji_resource *resource = NULL;
+	struct aji_buddy *buddy = ASTOBJ_CONTAINER_FIND(&client->buddies, pak->from->partial);
+
+	resource = aji_find_resource(buddy, pak->from->resource);
+	if (pak->subtype == IKS_TYPE_ERROR) {
 		ast_log(LOG_WARNING, "Recieved error from a client, turn on jabber debug!\n");
 		return IKS_FILTER_EAT;
 	}
-	if (!strcasecmp(type,"get") && !(node = iks_find_attrib(pak->query, "node"))) {
+	if (pak->subtype == IKS_TYPE_RESULT) {
+		if (!resource) {
+			ast_log(LOG_NOTICE,"JABBER: Received client info from %s when not requested.\n", pak->from->full);
+			ASTOBJ_UNREF(client, aji_client_destroy);
+			return IKS_FILTER_EAT;
+		}
+		if (iks_find_with_attrib(pak->query, "feature", "var", "http://www.google.com/xmpp/protocol/voice/v1")) {
+			resource->cap->jingle = 1;
+		} else
+			resource->cap->jingle = 0;
+	} else if (pak->subtype == IKS_TYPE_GET && !(node = iks_find_attrib(pak->query, "node"))) {
 		iks *iq, *query, *identity, *disco, *reg, *commands, *gateway, *version, *vcard, *search;
 
 		iq = iks_new("iq");
@@ -999,7 +1011,7 @@
 		if (search)
 			iks_delete(search);
 
-	} else if (!strcasecmp(type,"get") && !strcasecmp(node, "http://jabber.org/protocol/commands")) {
+	} else if (pak->subtype == IKS_TYPE_GET && !strcasecmp(node, "http://jabber.org/protocol/commands")) {
 		iks *iq, *query, *confirm;
 		iq = iks_new("iq");
 		query = iks_new("query");
@@ -1028,7 +1040,7 @@
 		if (confirm)
 			iks_delete(confirm);
 
-	} else if (!strcasecmp(type,"get") && !strcasecmp(node, "confirmaccount")) {
+	} else if (pak->subtype == IKS_TYPE_GET && !strcasecmp(node, "confirmaccount")) {
 		iks *iq, *query, *feature;
 
 		iq = iks_new("iq");



More information about the asterisk-commits mailing list