# HG changeset patch # User John Bailey # Date 1273727010 0 # Node ID ebe57b897807ee1ae9a938554425c68b521f228e # Parent 4b3bad9ca939cd9e95a49bc04e20b94b030a3dd2# Parent c3015cf1dfc0add8fe21f5273d418c2017ef0a94 merge of '02af4cf0f33f9ec7d46a52cba0e6c4349f0d6e19' and '787e2678ecb0b07e64cbe6ae055962cd65acaeba' diff -r 4b3bad9ca939 -r ebe57b897807 libpurple/protocols/gg/lib/common.c --- a/libpurple/protocols/gg/lib/common.c Wed May 12 14:07:02 2010 +0000 +++ b/libpurple/protocols/gg/lib/common.c Thu May 13 05:03:30 2010 +0000 @@ -101,7 +101,7 @@ * \param format Format wiadomości (zgodny z \c printf) * \param ap Lista argumentów (zgodna z \c printf) */ -static void gg_debug_common(struct gg_session *sess, int level, const char *format, va_list ap) +void gg_debug_common(struct gg_session *sess, int level, const char *format, va_list ap) { if (gg_debug_handler_session) (*gg_debug_handler_session)(sess, level, format, ap); diff -r 4b3bad9ca939 -r ebe57b897807 libpurple/protocols/gg/lib/libgadu-internal.h --- a/libpurple/protocols/gg/lib/libgadu-internal.h Wed May 12 14:07:02 2010 +0000 +++ b/libpurple/protocols/gg/lib/libgadu-internal.h Thu May 13 05:03:30 2010 +0000 @@ -26,5 +26,6 @@ char *gg_cp_to_utf8(const char *b); char *gg_utf8_to_cp(const char *b); int gg_pubdir50_handle_reply_sess(struct gg_session *sess, struct gg_event *e, const char *packet, int length); +void gg_debug_common(struct gg_session *sess, int level, const char *format, va_list ap); #endif /* LIBGADU_INTERNAL_H */ diff -r 4b3bad9ca939 -r ebe57b897807 libpurple/protocols/gg/lib/libgadu.h --- a/libpurple/protocols/gg/lib/libgadu.h Wed May 12 14:07:02 2010 +0000 +++ b/libpurple/protocols/gg/lib/libgadu.h Thu May 13 05:03:30 2010 +0000 @@ -1245,8 +1245,8 @@ struct gg_http *gg_change_passwd3(uin_t uin, const char *passwd, const char *newpasswd, const char *qa, int async) GG_DEPRECATED; int gg_resolve(int *fd, int *pid, const char *hostname) GG_DEPRECATED; +int gg_resolve_pthread(int *fd, void **resolver, const char *hostname) GG_DEPRECATED; void gg_resolve_pthread_cleanup(void *arg, int kill) GG_DEPRECATED; -int gg_resolve_pthread(int *fd, void **resolver, const char *hostname) GG_DEPRECATED; struct gg_change_info_request { char *first_name; diff -r 4b3bad9ca939 -r ebe57b897807 libpurple/protocols/jabber/message.c --- a/libpurple/protocols/jabber/message.c Wed May 12 14:07:02 2010 +0000 +++ b/libpurple/protocols/jabber/message.c Thu May 13 05:03:30 2010 +0000 @@ -75,12 +75,8 @@ jbr = jabber_buddy_find_resource(jb, jid->resource); if(!jm->xhtml && !jm->body) { - if (jbr) { - if (jm->chat_state != JM_STATE_NONE) - jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED; - else - jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED; - } + if (jbr && jm->chat_state != JM_STATE_NONE) + jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED; if(JM_STATE_COMPOSING == jm->chat_state) { serv_got_typing(gc, jm->from, 0, PURPLE_TYPING); @@ -142,10 +138,13 @@ } if(jbr) { - if (jm->chat_state != JM_STATE_NONE) - jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED; - else - jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED; + /* Treat SUPPORTED as a terminal with no escape :) */ + if (jbr->chat_states != JABBER_CHAT_STATES_SUPPORTED) { + if (jm->chat_state != JM_STATE_NONE) + jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED; + else + jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED; + } if(jbr->thread_id) g_free(jbr->thread_id); @@ -1250,7 +1249,14 @@ g_free(resource); - if (!jbr || (jbr->chat_states == JABBER_CHAT_STATES_UNSUPPORTED)) + /* We know this entity doesn't support chat states */ + if (jbr && jbr->chat_states == JABBER_CHAT_STATES_UNSUPPORTED) + return 0; + + /* *If* we don't have presence /and/ the buddy can't see our + * presence, don't send typing notifications. + */ + if (!jbr && !(jb->subscription & JABBER_SUB_FROM)) return 0; /* TODO: figure out threading */ diff -r 4b3bad9ca939 -r ebe57b897807 libpurple/protocols/msn/slplink.c --- a/libpurple/protocols/msn/slplink.c Wed May 12 14:07:02 2010 +0000 +++ b/libpurple/protocols/msn/slplink.c Thu May 13 05:03:30 2010 +0000 @@ -383,6 +383,7 @@ msn_slplink_release_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg) { MsnMessage *msg; + const char *passport; slpmsg->msg = msg = msn_message_new_msnslp(); @@ -421,7 +422,8 @@ msg->msnslp_header.total_size = slpmsg->size; - msn_message_set_attr(msg, "P2P-Dest", slplink->remote_user); + passport = purple_normalize(slplink->session->account, slplink->remote_user); + msn_message_set_attr(msg, "P2P-Dest", passport); msg->ack_cb = msg_ack; msg->nak_cb = msg_nak;