libpurple/protocols/jabber/disco.c

changeset 38358
30ba44276e74
parent 37518
53c9ebedf2b7
parent 38265
ee28d52fe2ca
child 38363
876661dc1375
--- a/libpurple/protocols/jabber/disco.c	Mon Jun 12 01:00:04 2017 +0000
+++ b/libpurple/protocols/jabber/disco.c	Mon Jun 12 17:48:37 2017 -0300
@@ -65,14 +65,14 @@
 	PurpleXmlNode *query = purple_xmlnode_get_child_with_namespace(packet, "query",
 		NS_BYTESTREAMS);
 
-	if (from && !strcmp(from, sh->jid) && query != NULL) {
+	if (from && purple_strequal(from, sh->jid) && query != NULL) {
 		PurpleXmlNode *sh_node = purple_xmlnode_get_child(query, "streamhost");
 		if (sh_node) {
 			const char *jid = purple_xmlnode_get_attrib(sh_node, "jid");
 			const char *port = purple_xmlnode_get_attrib(sh_node, "port");
 
 
-			if (jid == NULL || strcmp(jid, from) != 0)
+			if (jid == NULL || !purple_strequal(jid, from))
 				purple_debug_error("jabber", "Invalid jid(%s) for bytestream.\n",
 						   jid ? jid : "(null)");
 
@@ -123,7 +123,7 @@
 		if(node)
 			purple_xmlnode_set_attrib(query, "node", node);
 
-		if(!node || g_str_equal(node, node_uri)) {
+		if(!node || purple_strequal(node, node_uri)) {
 			GList *features, *identities;
 			for(identities = jabber_identities; identities; identities = identities->next) {
 				JabberIdentity *ident = (JabberIdentity*)identities->data;
@@ -143,7 +143,7 @@
 				}
 			}
 #ifdef USE_VV
-		} else if (g_str_equal(node, CAPS0115_NODE "#" "voice-v1")) {
+		} else if (purple_strequal(node, CAPS0115_NODE "#" "voice-v1")) {
 			/*
 			 * HUGE HACK! We advertise this ext (see jabber_presence_create_js
 			 * where we add <c/> to the <presence/>) for the Google Talk
@@ -155,7 +155,7 @@
 			 */
 			PurpleXmlNode *feature = purple_xmlnode_new_child(query, "feature");
 			purple_xmlnode_set_attrib(feature, "var", NS_GOOGLE_VOICE);
-		} else if (g_str_equal(node, CAPS0115_NODE "#" "video-v1")) {
+		} else if (purple_strequal(node, CAPS0115_NODE "#" "video-v1")) {
 			/*
 			 * HUGE HACK! We advertise this ext (see jabber_presence_create_js
 			 * where we add <c/> to the <presence/>) for the Google Talk
@@ -167,7 +167,7 @@
 			 */
 			PurpleXmlNode *feature = purple_xmlnode_new_child(query, "feature");
 			purple_xmlnode_set_attrib(feature, "var", NS_GOOGLE_VIDEO);
-		} else if (g_str_equal(node, CAPS0115_NODE "#" "camera-v1")) {
+		} else if (purple_strequal(node, CAPS0115_NODE "#" "camera-v1")) {
 			/*
 			 * HUGE HACK! We advertise this ext (see jabber_presence_create_js
 			 * where we add <c/> to the <presence/>) for the Google Talk
@@ -245,20 +245,20 @@
 			if(child->type != PURPLE_XMLNODE_TYPE_TAG)
 				continue;
 
-			if(!strcmp(child->name, "identity")) {
+			if(purple_strequal(child->name, "identity")) {
 				const char *category = purple_xmlnode_get_attrib(child, "category");
 				const char *type = purple_xmlnode_get_attrib(child, "type");
 				if(!category || !type)
 					continue;
 
-				if(!strcmp(category, "conference") && !strcmp(type, "text")) {
+				if(purple_strequal(category, "conference") && purple_strequal(type, "text")) {
 					/* we found a groupchat or MUC server, add it to the list */
 					/* XXX: actually check for protocol/muc or gc-1.0 support */
 					js->chat_servers = g_list_prepend(js->chat_servers, g_strdup(from));
-				} else if(!strcmp(category, "directory") && !strcmp(type, "user")) {
+				} else if(purple_strequal(category, "directory") && purple_strequal(type, "user")) {
 					/* we found a JUD */
 					js->user_directories = g_list_prepend(js->user_directories, g_strdup(from));
-				} else if(!strcmp(category, "proxy") && !strcmp(type, "bytestreams")) {
+				} else if(purple_strequal(category, "proxy") && purple_strequal(type, "bytestreams")) {
 					/* This is a bytestream proxy */
 					JabberIq *iq;
 					JabberBytestreamsStreamhost *sh;
@@ -276,29 +276,29 @@
 					jabber_iq_send(iq);
 				}
 
-			} else if(!strcmp(child->name, "feature")) {
+			} else if(purple_strequal(child->name, "feature")) {
 				const char *var = purple_xmlnode_get_attrib(child, "var");
 				if(!var)
 					continue;
 
-				if(!strcmp(var, "http://jabber.org/protocol/si"))
+				if(purple_strequal(var, "http://jabber.org/protocol/si"))
 					capabilities |= JABBER_CAP_SI;
-				else if(!strcmp(var, "http://jabber.org/protocol/si/profile/file-transfer"))
+				else if(purple_strequal(var, "http://jabber.org/protocol/si/profile/file-transfer"))
 					capabilities |= JABBER_CAP_SI_FILE_XFER;
-				else if(!strcmp(var, NS_BYTESTREAMS))
+				else if(purple_strequal(var, NS_BYTESTREAMS))
 					capabilities |= JABBER_CAP_BYTESTREAMS;
-				else if(!strcmp(var, "jabber:iq:search"))
+				else if(purple_strequal(var, "jabber:iq:search"))
 					capabilities |= JABBER_CAP_IQ_SEARCH;
-				else if(!strcmp(var, "jabber:iq:register"))
+				else if(purple_strequal(var, "jabber:iq:register"))
 					capabilities |= JABBER_CAP_IQ_REGISTER;
-				else if(!strcmp(var, NS_PING))
+				else if(purple_strequal(var, NS_PING))
 					capabilities |= JABBER_CAP_PING;
-				else if(!strcmp(var, NS_DISCO_ITEMS))
+				else if(purple_strequal(var, NS_DISCO_ITEMS))
 					capabilities |= JABBER_CAP_ITEMS;
-				else if(!strcmp(var, "http://jabber.org/protocol/commands")) {
+				else if(purple_strequal(var, "http://jabber.org/protocol/commands")) {
 					capabilities |= JABBER_CAP_ADHOC;
 				}
-				else if(!strcmp(var, NS_IBB)) {
+				else if(purple_strequal(var, NS_IBB)) {
 					purple_debug_info("jabber", "remote supports IBB\n");
 					capabilities |= JABBER_CAP_IBB;
 				}
@@ -463,7 +463,7 @@
 {
 	PurpleXmlNode *query, *child;
 
-	if (!from || strcmp(from, js->user->domain)) {
+	if (!from || !purple_strequal(from, js->user->domain)) {
 		jabber_disco_finish_server_info_result_cb(js);
 		return;
 	}
@@ -486,7 +486,7 @@
 		const char *category, *type, *name;
 		category = purple_xmlnode_get_attrib(child, "category");
 		type = purple_xmlnode_get_attrib(child, "type");
-		if(category && type && !strcmp(category, "pubsub") && !strcmp(type,"pep")) {
+		if(purple_strequal(category, "pubsub") && purple_strequal(type, "pep")) {
 			PurpleConnection *gc = js->gc;
 			js->pep = TRUE;
 			purple_connection_set_flags(gc,
@@ -494,9 +494,9 @@
 					| PURPLE_CONNECTION_FLAG_SUPPORT_MOODS
 					| PURPLE_CONNECTION_FLAG_SUPPORT_MOOD_MESSAGES);
 		}
-		if (!category || strcmp(category, "server"))
+		if (!purple_strequal(category, "server"))
 			continue;
-		if (!type || strcmp(type, "im"))
+		if (!purple_strequal(type, "im"))
 			continue;
 
 		name = purple_xmlnode_get_attrib(child, "name");
@@ -505,17 +505,16 @@
 
 		g_free(js->server_name);
 		js->server_name = g_strdup(name);
-		if (!strcmp(name, "Google Talk")) {
+		stun_ip = purple_network_get_stun_ip();
+		if (purple_strequal(name, "Google Talk")) {
 			purple_debug_info("jabber", "Google Talk!\n");
 			js->googletalk = TRUE;
 
 			/* autodiscover stun and relays */
-			if (purple_network_get_stun_ip() == NULL ||
-		    	purple_strequal(purple_network_get_stun_ip(), "")) {
+			if (!stun_ip || !*stun_ip) {
 				jabber_google_send_jingle_info(js);
 			}
-		} else if (purple_network_get_stun_ip() == NULL ||
-		    purple_strequal(purple_network_get_stun_ip(), "")) {
+		} else if (!stun_ip || !*stun_ip) {
 
 			GResolver *resolver = g_resolver_get_default();
 			g_resolver_lookup_service_async(resolver,
@@ -537,14 +536,14 @@
 		if (!var)
 			continue;
 
-		if (!strcmp(NS_GOOGLE_MAIL_NOTIFY, var)) {
+		if (purple_strequal(NS_GOOGLE_MAIL_NOTIFY, var)) {
 			js->server_caps |= JABBER_CAP_GMAIL_NOTIFY;
 			jabber_gmail_init(js);
-		} else if (!strcmp(NS_GOOGLE_ROSTER, var)) {
+		} else if (purple_strequal(NS_GOOGLE_ROSTER, var)) {
 			js->server_caps |= JABBER_CAP_GOOGLE_ROSTER;
-		} else if (!strcmp("http://jabber.org/protocol/commands", var)) {
+		} else if (purple_strequal("http://jabber.org/protocol/commands", var)) {
 			js->server_caps |= JABBER_CAP_ADHOC;
-		} else if (!strcmp(NS_SIMPLE_BLOCKING, var)) {
+		} else if (purple_strequal(NS_SIMPLE_BLOCKING, var)) {
 			js->server_caps |= JABBER_CAP_BLOCKING;
 		}
 	}
@@ -559,7 +558,7 @@
 {
 	PurpleXmlNode *query, *child;
 
-	if (!from || strcmp(from, js->user->domain) != 0)
+	if (!from || !purple_strequal(from, js->user->domain))
 		return;
 
 	if (type == JABBER_IQ_ERROR)

mercurial