Mercurial > pidgin
changeset 30206:545ce15b619f
merge of '18ddd668ba1cc77ed0a0595a053f8a2879dddfd0'
and '63b644ac7791059c9fad6128d17bccebca8ad71a'
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Thu, 17 Jun 2010 21:23:01 +0000 |
parents | 33989e3a449b (diff) 738741a7a692 (current diff) |
children | 62f7ea77feb3 509c63006b1f c4cbe5f992ce |
files | |
diffstat | 3 files changed, 93 insertions(+), 94 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c Thu Jun 17 21:21:30 2010 +0000 +++ b/libpurple/protocols/jabber/jabber.c Thu Jun 17 21:23:01 2010 +0000 @@ -218,22 +218,25 @@ account = purple_connection_get_account(js->gc); - if((starttls = xmlnode_get_child(packet, "starttls"))) { - if(purple_ssl_is_supported()) { - jabber_send_raw(js, - "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>", -1); - return TRUE; - } else if(xmlnode_get_child(starttls, "required")) { - purple_connection_error_reason(js->gc, + if(purple_ssl_is_supported()) { + jabber_send_raw(js, + "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>", -1); + return TRUE; + } + + starttls = xmlnode_get_child(packet, "starttls"); + if(xmlnode_get_child(starttls, "required")) { + purple_connection_error_reason(js->gc, PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT, _("Server requires TLS/SSL, but no TLS/SSL support was found.")); - return TRUE; - } else if(purple_account_get_bool(account, "require_tls", JABBER_DEFAULT_REQUIRE_TLS)) { - purple_connection_error_reason(js->gc, - PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT, + return TRUE; + } + + if(purple_account_get_bool(account, "require_tls", JABBER_DEFAULT_REQUIRE_TLS)) { + purple_connection_error_reason(js->gc, + PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT, _("You require encryption, but no TLS/SSL support was found.")); - return TRUE; - } + return TRUE; } return FALSE;
--- a/libpurple/protocols/oscar/family_icbm.c Thu Jun 17 21:21:30 2010 +0000 +++ b/libpurple/protocols/oscar/family_icbm.c Thu Jun 17 21:23:01 2010 +0000 @@ -2701,54 +2701,54 @@ if (channel == 0x0002) { - hdrlen = byte_stream_getle16(bs); - if ( ((hdrlen == 27 ) && (bs->len > (27 + 51)))) { - byte_stream_advance(bs, 51); - num1 = byte_stream_getle16(bs); - num2 = byte_stream_getle16(bs); - purple_debug_misc("oscar", "X-Status: Num1 %i, num2 %i\n",num1, num2); - - if(((num1 == 0x4f00)&&(num2 == 0x3b00))) { - byte_stream_advance(bs, 86); - curpos = byte_stream_curpos(bs); - xml = byte_stream_getstr(bs, bs->len - curpos); - purple_debug_misc("oscar", "X-Status: Received XML reply\n"); - if(xml) { - /* purple_debug_misc("oscar", "X-Status: XML reply: %s\n", (const char*) xml); */ - if ((desc=strstr(xml,"<desc>")) != NULL) { - temp=strstr(xml,"</desc>"); - temp[0]=0; - desc=desc+12; - } - if ((title=strstr(xml,"<title>")) != NULL) { - temp=strstr(xml,"</title>"); - temp[0]=0; - title=title+13; - } else { - title=""; - } - strcpy(xml,title); + hdrlen = byte_stream_getle16(bs); + if ( ((hdrlen == 27 ) && (bs->len > (27 + 51)))) { + byte_stream_advance(bs, 51); + num1 = byte_stream_getle16(bs); + num2 = byte_stream_getle16(bs); + purple_debug_misc("oscar", "X-Status: Num1 %i, num2 %i\n",num1, num2); + + if(((num1 == 0x4f00)&&(num2 == 0x3b00))) { + byte_stream_advance(bs, 86); + curpos = byte_stream_curpos(bs); + xml = byte_stream_getstr(bs, bs->len - curpos); + purple_debug_misc("oscar", "X-Status: Received XML reply\n"); + if(xml) { + /* purple_debug_misc("oscar", "X-Status: XML reply: %s\n", (const char*) xml); */ + if ((desc=strstr(xml,"<desc>")) != NULL) { + temp=strstr(xml,"</desc>"); + temp[0]=0; + desc=desc+12; + } + if ((title=strstr(xml,"<title>")) != NULL) { + temp=strstr(xml,"</title>"); + temp[0]=0; + title=title+13; + } else { + title=""; + } + strcpy(xml,title); if (desc) { - strcat(xml, " - "); - strcat(xml, desc); + strcat(xml, " - "); + strcat(xml, desc); } - purple_debug_misc("oscar", "X-Status reply: %s\n", (const char*)xml); - account = purple_connection_get_account(od->gc); - buddy = purple_find_buddy(account, bn); - presence = purple_buddy_get_presence(buddy); - status = purple_presence_get_active_status(presence); - purple_prpl_got_user_status(account, bn, - purple_status_get_id(status), "message", xml, NULL); - } else { - purple_debug_misc("oscar", "X-Status: Can't get XML reply string\n"); + purple_debug_misc("oscar", "X-Status reply: %s\n", (const char*)xml); + account = purple_connection_get_account(od->gc); + buddy = purple_find_buddy(account, bn); + presence = purple_buddy_get_presence(buddy); + status = purple_presence_get_active_status(presence); + purple_prpl_got_user_status(account, bn, + purple_status_get_id(status), "message", xml, NULL); + } else { + purple_debug_misc("oscar", "X-Status: Can't get XML reply string\n"); } - } else { - purple_debug_misc("oscar", "X-Status: 0x0004, 0x000b not an xstatus reply\n" ); + } else { + purple_debug_misc("oscar", "X-Status: 0x0004, 0x000b not an xstatus reply\n" ); /* if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) - ret = userfunc(od, conn, frame, channel, sn, reason); */ + ret = userfunc(od, conn, frame, channel, sn, reason); */ } - - } + + } } else if (channel == 0x0004) { /* ICQ message */ switch (reason) { @@ -2930,12 +2930,12 @@ char *statxml; int xmllen; - static const guint8 pluginid[] = + static const guint8 pluginid[] = { - 0x09, 0x46, 0x13, 0x49, 0x4C, 0x7F, 0x11, 0xD1, + 0x09, 0x46, 0x13, 0x49, 0x4C, 0x7F, 0x11, 0xD1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00 }; - + static const guint8 c_plugindata[] = { 0x1B, 0x00, 0x0A, @@ -2949,14 +2949,14 @@ 0x72, 0x72, 0x69, 0x76, 0x65, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00 }; - + if (!od || !(conn = flap_connection_findbygroup(od, 0x0004))) return -EINVAL; if (!sn) return -EINVAL; - fmt = "<N><QUERY><Q><PluginID>srvMng</PluginID></Q></QUERY><NOTIFY><srv><id>cAwaySrv</id><req><id>AwayStat</id><trans>2</trans><senderId>%s</senderId></req></srv></NOTIFY></N>\r\n"; + fmt = "<N><QUERY><Q><PluginID>srvMng</PluginID></Q></QUERY><NOTIFY><srv><id>cAwaySrv</id><req><id>AwayStat</id><trans>2</trans><senderId>%s</senderId></req></srv></NOTIFY></N>\r\n"; account = purple_connection_get_account(od->gc); xmllen = strlen(fmt) - 2 + strlen(account->username); @@ -2970,7 +2970,7 @@ + 2 + 2 + 8 + 16 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + sizeof(c_plugindata) + xmllen + 2 + 2); - + snacid = aim_cachesnac(od, 0x0004, 0x0006, 0x0000, NULL, 0); aim_im_puticbm(&bs, cookie, 0x0002, sn); @@ -2980,24 +2980,23 @@ byte_stream_put16(&header, 0x0000); /* Message Type: Request */ byte_stream_putraw(&header, cookie, sizeof(cookie)); /* Message ID */ byte_stream_putraw(&header, pluginid, sizeof(pluginid)); /* Plugin ID */ - + aim_tlvlist_add_16(&inner_tlvlist, 0x000a, 0x0001); aim_tlvlist_add_noval(&inner_tlvlist, 0x000f); - + /* Add Plugin Specific Data */ byte_stream_putraw(&plugindata, c_plugindata, sizeof(c_plugindata)); /* Content of TLV 0x2711 */ byte_stream_putstr(&plugindata, statxml); aim_tlvlist_add_raw(&inner_tlvlist, 0x2711, (sizeof(c_plugindata) + xmllen), plugindata.data); - + aim_tlvlist_write(&header, &inner_tlvlist); - - + aim_tlvlist_add_raw(&outer_tlvlist, 0x0005, byte_stream_curpos(&header), header.data); aim_tlvlist_add_noval(&outer_tlvlist, 0x0003); /* Empty TLV 0x0003 */ - + aim_tlvlist_write(&bs, &outer_tlvlist); - + purple_debug_misc("oscar", "X-Status Request\n"); flap_connection_send_snac_with_priority(od, conn, 0x0004, 0x0006, 0x0000, snacid, &bs, TRUE); @@ -3024,39 +3023,38 @@ char *statxml; const char *title; int len; - + static const guint8 plugindata[] = { 0x1B, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xD1, 0x0E, 0x00, 0xF9, 0xD1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x4F, - 0x00, 0x3B, 0x60, 0xB3, 0xEF, 0xD8, 0x2A, 0x6C, 0x45, 0xA4, 0xE0, - 0x9C, 0x5A, 0x5E, 0x67, 0xE8, 0x65, 0x08, 0x00, 0x2A, 0x00, 0x00, - 0x00, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x50, 0x6C, 0x75, - 0x67, 0x2D, 0x69, 0x6E, 0x3A, 0x20, 0x52, 0x65, 0x6D, 0x6F, 0x74, + 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x4F, + 0x00, 0x3B, 0x60, 0xB3, 0xEF, 0xD8, 0x2A, 0x6C, 0x45, 0xA4, 0xE0, + 0x9C, 0x5A, 0x5E, 0x67, 0xE8, 0x65, 0x08, 0x00, 0x2A, 0x00, 0x00, + 0x00, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x50, 0x6C, 0x75, + 0x67, 0x2D, 0x69, 0x6E, 0x3A, 0x20, 0x52, 0x65, 0x6D, 0x6F, 0x74, 0x65, 0x20, 0x4E, 0x6F, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x41, 0x72, 0x72, 0x69, 0x76, 0x65, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x01, 0x00, 0x00, 0xEF, 0x01, 0x00, 0x00 - }; + }; fmt = "<NR><RES><ret event='OnRemoteNotification'><srv><id>cAwaySrv</id><val srv_id='cAwaySrv'><Root><CASXtraSetAwayMessage></CASXtraSetAwayMessage>&l t;uin>%s</uin><index>1</index><title>%s</title><desc>%s</desc></Root></val></srv><srv><id>cRandomizerSrv</id><val srv_id='cRandomizerSrv'>undefined</val></srv></ret></RES></NR>\r\n"; - - + if (!od || !(conn = flap_connection_findbygroup(od, 0x0002))) return -EINVAL; if (!sn) return -EINVAL; - + account = purple_connection_get_account(od->gc); if(!account) return -EINVAL; - + /* if (!strcmp(account->username, sn)) icq_im_xstatus_request(od, sn); */ - + status = purple_presence_get_active_status(account->presence); if (!status) return -EINVAL; title = purple_status_get_name(status); @@ -3068,7 +3066,7 @@ len = strlen(fmt)-6+strlen(account->username)+strlen(title)+strlen(msg); statxml = (char*) g_malloc(len); - snprintf(statxml, len, fmt, + snprintf(statxml, len, fmt, account->username, title, msg); purple_debug_misc("oscar", "X-Status AutoReply: %s, %s\n", formatted_msg, msg); @@ -3080,7 +3078,7 @@ byte_stream_put16(&bs, 0x0003); byte_stream_putraw(&bs, plugindata, sizeof(plugindata)); byte_stream_putraw(&bs, (const guint8*)statxml, strlen(statxml)); - + flap_connection_send_snac_with_priority(od, conn, 0x0004, 0x000b, 0x0000, snacid, &bs, TRUE); g_free(statxml);
--- a/libpurple/protocols/yahoo/libymsg.c Thu Jun 17 21:21:30 2010 +0000 +++ b/libpurple/protocols/yahoo/libymsg.c Thu Jun 17 21:23:01 2010 +0000 @@ -401,15 +401,13 @@ PurpleBuddy *b; PurpleGroup *g; GSList *list, *i; - gboolean onlist = 0; - char *oname = NULL; - char **oname_p = &oname; - GSList **list_p = &list; - - if (!g_hash_table_lookup_extended(ht, purple_normalize(account, name), (gpointer *) oname_p, (gpointer *) list_p)) + gboolean onlist = FALSE; + char *oname; + + if (g_hash_table_lookup_extended(ht, purple_normalize(account, name), (gpointer *)&oname, (gpointer *)&list)) + g_hash_table_steal(ht, oname); + else list = purple_find_buddies(account, name); - else - g_hash_table_steal(ht, name); for (i = list; i; i = i->next) { b = i->data; @@ -418,7 +416,7 @@ purple_debug_misc("yahoo", "Oh good, %s is in the right group (%s).\n", name, group); list = g_slist_delete_link(list, i); - onlist = 1; + onlist = TRUE; break; } } @@ -438,7 +436,7 @@ if (!oname) oname = g_strdup(purple_normalize(account, name)); g_hash_table_insert(ht, oname, list); - } else if (oname) + } else g_free(oname); }