# HG changeset patch # User John Bailey # Date 1250967255 0 # Node ID 299ef6fd1a23e2efff0efbe3aca7078590ba4115 # Parent 84804fd076bc3967966b1dadd65aa0e07aae2b28# Parent 4b61989ab1987ea02575e7fcfd349fed82a52f04 propagate from branch 'im.pidgin.pidgin' (head dbaa86f7e1344923764e572cebfb30ce7c53ee80) to branch 'im.pidgin.pidgin.next.minor' (head 035e390145aacfff19b413ac1870e7f1b81739e2) diff -r 84804fd076bc -r 299ef6fd1a23 ChangeLog --- a/ChangeLog Sat Aug 22 18:05:10 2009 +0000 +++ b/ChangeLog Sat Aug 22 18:54:15 2009 +0000 @@ -12,6 +12,7 @@ * Escape status messages that have HTML entities in the Get Info dialog. * Fix connecting to XMPP domains with no SRV records from Pidgin on Windows. + * Fix typing notifications with Pidgin 2.5.9 or earlier. Finch: * Properly detect libpanel on OpenBSD. (Brad Smith) diff -r 84804fd076bc -r 299ef6fd1a23 configure.ac --- a/configure.ac Sat Aug 22 18:05:10 2009 +0000 +++ b/configure.ac Sat Aug 22 18:54:15 2009 +0000 @@ -810,6 +810,7 @@ fi fi fi +AM_CONDITIONAL(USE_VV, test "x$enable_gstreamer" != "xno" -a "x$enable_gstinterfaces" != "xno" -a "x$enable_farsight" != "xno") AC_ARG_ENABLE(idn, [AC_HELP_STRING([--disable-idn], [compile without IDN support])], diff -r 84804fd076bc -r 299ef6fd1a23 finch/plugins/grouping.c --- a/finch/plugins/grouping.c Sat Aug 22 18:05:10 2009 +0000 +++ b/finch/plugins/grouping.c Sat Aug 22 18:54:15 2009 +0000 @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #define PURPLE_PLUGIN diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/certificate.c --- a/libpurple/certificate.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/certificate.c Sat Aug 22 18:54:15 2009 +0000 @@ -43,6 +43,91 @@ /** List of registered Pools */ static GList *cert_pools = NULL; +/* + * TODO: Merge this with PurpleCertificateVerificationStatus for 3.0.0 */ +typedef enum { + PURPLE_CERTIFICATE_UNKNOWN_ERROR = -1, + + /* Not an error */ + PURPLE_CERTIFICATE_NO_PROBLEMS = 0, + + /* Non-fatal */ + PURPLE_CERTIFICATE_NON_FATALS_MASK = 0x0000FFFF, + + /* The certificate is self-signed. */ + PURPLE_CERTIFICATE_SELF_SIGNED = 0x01, + + /* The CA is not in libpurple's pool of certificates. */ + PURPLE_CERTIFICATE_CA_UNKNOWN = 0x02, + + /* The current time is before the certificate's specified + * activation time. + */ + PURPLE_CERTIFICATE_NOT_ACTIVATED = 0x04, + + /* The current time is after the certificate's specified expiration time */ + PURPLE_CERTIFICATE_EXPIRED = 0x08, + + /* The certificate's subject name doesn't match the expected */ + PURPLE_CERTIFICATE_NAME_MISMATCH = 0x10, + + /* No CA pool was found. This shouldn't happen... */ + PURPLE_CERTIFICATE_NO_CA_POOL = 0x20, + + /* Fatal */ + PURPLE_CERTIFICATE_FATALS_MASK = 0xFFFF0000, + + /* The signature chain could not be validated. Due to limitations in the + * the current API, this also indicates one of the CA certificates in the + * chain is expired (or not yet activated). FIXME 3.0.0 */ + PURPLE_CERTIFICATE_INVALID_CHAIN = 0x10000, + + /* The signature has been revoked. */ + PURPLE_CERTIFICATE_REVOKED = 0x20000, + + PURPLE_CERTIFICATE_LAST = 0x40000, +} PurpleCertificateInvalidityFlags; + +static const gchar * +invalidity_reason_to_string(PurpleCertificateInvalidityFlags flag) +{ + switch (flag) { + case PURPLE_CERTIFICATE_SELF_SIGNED: + return _("The certificate is self-signed and cannot be " + "automatically checked."); + break; + case PURPLE_CERTIFICATE_CA_UNKNOWN: + return _("The root certificate this one claims to be issued by is " + "unknown to Pidgin."); + break; + case PURPLE_CERTIFICATE_NOT_ACTIVATED: + return _("The certificate is not valid yet."); + break; + case PURPLE_CERTIFICATE_EXPIRED: + return _("The certificate has expired and should not be " + "considered valid."); + break; + case PURPLE_CERTIFICATE_NAME_MISMATCH: + /* Translators: "domain" refers to a DNS domain (e.g. talk.google.com) */ + return _("The certificate presented is not issued to this domain."); + break; + case PURPLE_CERTIFICATE_NO_CA_POOL: + return _("You have no database of root certificates, so " + "this certificate cannot be validated."); + break; + case PURPLE_CERTIFICATE_INVALID_CHAIN: + return _("The certificate chain presented is invalid."); + break; + case PURPLE_CERTIFICATE_REVOKED: + return _("The certificate has been revoked."); + break; + case PURPLE_CERTIFICATE_UNKNOWN_ERROR: + default: + return _("An unknown certificate error occurred."); + break; + } +} + void purple_certificate_verify (PurpleCertificateVerifier *verifier, const gchar *subject_name, GList *cert_chain, @@ -1265,10 +1350,104 @@ } static void -x509_tls_cached_unknown_peer(PurpleCertificateVerificationRequest *vrq); +x509_tls_cached_unknown_peer(PurpleCertificateVerificationRequest *vrq, + PurpleCertificateInvalidityFlags flags); static void -x509_tls_cached_cert_in_cache(PurpleCertificateVerificationRequest *vrq) +x509_tls_cached_complete(PurpleCertificateVerificationRequest *vrq, + PurpleCertificateInvalidityFlags flags) +{ + PurpleCertificatePool *tls_peers; + PurpleCertificate *peer_crt = vrq->cert_chain->data; + + if (flags & PURPLE_CERTIFICATE_FATALS_MASK) { + /* TODO: Also print any other warnings? */ + const gchar *error; + gchar *tmp, *secondary; + + if (flags & PURPLE_CERTIFICATE_INVALID_CHAIN) + error = invalidity_reason_to_string(PURPLE_CERTIFICATE_INVALID_CHAIN); + else if (flags & PURPLE_CERTIFICATE_REVOKED) + error = invalidity_reason_to_string(PURPLE_CERTIFICATE_REVOKED); + else + error = invalidity_reason_to_string(PURPLE_CERTIFICATE_UNKNOWN_ERROR); + + tmp = g_strdup_printf(_("The certificate for %s could not be validated."), + vrq->subject_name); + secondary = g_strconcat(tmp, " ", error, NULL); + g_free(tmp); + + purple_notify_error(NULL, /* TODO: Probably wrong. */ + _("SSL Certificate Error"), + _("Unable to validate certificate"), + secondary); + g_free(secondary); + + purple_certificate_verify_complete(vrq, PURPLE_CERTIFICATE_INVALID); + return; + } else if (flags & PURPLE_CERTIFICATE_NON_FATALS_MASK) { + /* Non-fatal error. Prompt the user. */ + gchar *tmp; + GString *errors; + guint32 i = 1; + + tmp = g_strdup_printf(_("The certificate for %s could not be validated."), + vrq->subject_name); + errors = g_string_new(tmp); + g_free(tmp); + + errors = g_string_append_c(errors, '\n'); + + /* Special case a name mismatch because we want to display the two names... */ + if (flags & PURPLE_CERTIFICATE_NAME_MISMATCH) { + gchar *sn = purple_certificate_get_subject_name(peer_crt); + + g_string_append_printf(errors, _("The certificate claims to be " + "from \"%s\" instead. This could mean that you are " + "not connecting to the service you believe you are."), + sn); + g_free(sn); + + flags &= ~PURPLE_CERTIFICATE_NAME_MISMATCH; + } + + while (i != PURPLE_CERTIFICATE_LAST) { + if (flags & i) { + errors = g_string_append_c(errors, '\n'); + g_string_append(errors, invalidity_reason_to_string(i)); + } + + i <<= 1; + } + + x509_tls_cached_user_auth(vrq, errors->str); + g_string_free(errors, TRUE); + return; + } + + /* If we reach this point, the certificate is good. */ + + /* Look up the local cache and store it there for future use */ + tls_peers = purple_certificate_find_pool(x509_tls_cached.scheme_name, + "tls_peers"); + if (tls_peers) { + if (!purple_certificate_pool_contains(tls_peers, vrq->subject_name) && + !purple_certificate_pool_store(tls_peers,vrq->subject_name, + peer_crt)) { + purple_debug_error("certificate/x509/tls_cached", + "FAILED to cache peer certificate\n"); + } + } else { + purple_debug_error("certificate/x509/tls_cached", + "Unable to locate tls_peers certificate cache.\n"); + } + + purple_certificate_verify_complete(vrq, PURPLE_CERTIFICATE_VALID); +} + +static void +x509_tls_cached_cert_in_cache(PurpleCertificateVerificationRequest *vrq, + PurpleCertificateInvalidityFlags flags) { /* TODO: Looking this up by name over and over is expensive. Fix, please! */ @@ -1291,7 +1470,7 @@ "Lookup failed on cached certificate!\n" "Falling back to full verification.\n"); /* vrq now becomes the problem of unknown_peer */ - x509_tls_cached_unknown_peer(vrq); + x509_tls_cached_unknown_peer(vrq, flags); return; } @@ -1302,14 +1481,12 @@ if (!memcmp(peer_fpr->data, cached_fpr->data, peer_fpr->len)) { purple_debug_info("certificate/x509/tls_cached", "Peer cert matched cached\n"); - /* vrq is now finished */ - purple_certificate_verify_complete(vrq, - PURPLE_CERTIFICATE_VALID); + x509_tls_cached_complete(vrq, flags); } else { purple_debug_error("certificate/x509/tls_cached", "Peer cert did NOT match cached\n"); /* vrq now becomes the problem of the user */ - x509_tls_cached_unknown_peer(vrq); + x509_tls_cached_unknown_peer(vrq, flags); } purple_certificate_destroy(cached_crt); @@ -1324,9 +1501,8 @@ */ static void x509_tls_cached_check_subject_name(PurpleCertificateVerificationRequest *vrq, - gboolean had_ca_pool) + PurpleCertificateInvalidityFlags flags) { - PurpleCertificatePool *tls_peers; PurpleCertificate *peer_crt; GList *chain = vrq->cert_chain; @@ -1337,77 +1513,14 @@ vrq->subject_name) ) { gchar *sn = purple_certificate_get_subject_name(peer_crt); + flags |= PURPLE_CERTIFICATE_NAME_MISMATCH; purple_debug_error("certificate/x509/tls_cached", "Name mismatch: Certificate given for %s " "has a name of %s\n", vrq->subject_name, sn); - - if (had_ca_pool) { - /* Prompt the user to authenticate the certificate */ - /* TODO: Provide the user with more guidance about why he is - being prompted */ - /* vrq will be completed by user_auth */ - gchar *msg; - msg = g_strdup_printf(_("The certificate presented by \"%s\" " - "claims to be from \"%s\" instead. " - "This could mean that you are not " - "connecting to the service you " - "believe you are."), - vrq->subject_name, sn); - - x509_tls_cached_user_auth(vrq, msg); - g_free(msg); - } else { - /* Had no CA pool, so couldn't verify the chain *and* - * the subject name isn't valid. - * I think this is bad enough to warrant a fatal error. It's - * not likely anyway... - */ - purple_notify_error(NULL, /* TODO: Probably wrong. */ - _("SSL Certificate Error"), - _("Invalid certificate chain"), - _("You have no database of root certificates, so " - "this certificate cannot be validated.")); - } - - g_free(sn); - return; - } /* if (name mismatch) */ - - if (!had_ca_pool) { - /* The subject name is correct, but we weren't able to verify the - * chain because there was no pool of root CAs found. Prompt the user - * to validate it. - */ - - /* vrq will be completed by user_auth */ - x509_tls_cached_user_auth(vrq,_("You have no database of root " - "certificates, so this " - "certificate cannot be " - "validated.")); - return; } - /* If we reach this point, the certificate is good. */ - /* Look up the local cache and store it there for future use */ - tls_peers = purple_certificate_find_pool(x509_tls_cached.scheme_name, - "tls_peers"); - - if (tls_peers) { - if (!purple_certificate_pool_store(tls_peers,vrq->subject_name, - peer_crt) ) { - purple_debug_error("certificate/x509/tls_cached", - "FAILED to cache peer certificate\n"); - } - } else { - purple_debug_error("certificate/x509/tls_cached", - "Unable to locate tls_peers certificate " - "cache.\n"); - } - - /* Whew! Done! */ - purple_certificate_verify_complete(vrq, PURPLE_CERTIFICATE_VALID); - + x509_tls_cached_complete(vrq, flags); } /* For when we've never communicated with this party before */ @@ -1415,7 +1528,8 @@ least reprioritize them. */ static void -x509_tls_cached_unknown_peer(PurpleCertificateVerificationRequest *vrq) +x509_tls_cached_unknown_peer(PurpleCertificateVerificationRequest *vrq, + PurpleCertificateInvalidityFlags flags) { PurpleCertificatePool *ca; PurpleCertificate *peer_crt; @@ -1430,22 +1544,13 @@ /* TODO: Figure out a way to check for a bad signature, as opposed to "not self-signed" */ if ( purple_certificate_signed_by(peer_crt, peer_crt) ) { - gchar *msg; + flags |= PURPLE_CERTIFICATE_SELF_SIGNED; purple_debug_info("certificate/x509/tls_cached", "Certificate for %s is self-signed.\n", vrq->subject_name); - /* Prompt the user to authenticate the certificate */ - /* vrq will be completed by user_auth */ - msg = g_strdup_printf(_("The certificate presented by \"%s\" " - "is self-signed. It cannot be " - "automatically checked."), - vrq->subject_name); - - x509_tls_cached_user_auth(vrq,msg); - - g_free(msg); + x509_tls_cached_check_subject_name(vrq, flags); return; } /* if (self signed) */ @@ -1491,32 +1596,11 @@ * If we get here, either the cert matched the stuff right above * or it didn't, in which case we give up and complain to the user. */ - if (chain_validated) { - x509_tls_cached_check_subject_name(vrq, TRUE); - } else { + if (!chain_validated) /* TODO: Tell the user where the chain broke? */ - /* TODO: This error will hopelessly confuse any - non-elite user. */ - gchar *secondary; - - secondary = g_strdup_printf(_("The certificate chain presented" - " for %s is not valid."), - vrq->subject_name); + flags |= PURPLE_CERTIFICATE_INVALID_CHAIN; - /* TODO: Make this error either block the ensuing SSL - connection error until the user dismisses this one, or - stifle it. */ - purple_notify_error(NULL, /* TODO: Probably wrong. */ - _("SSL Certificate Error"), - _("Invalid certificate chain"), - secondary ); - g_free(secondary); - - /* Okay, we're done here */ - purple_certificate_verify_complete(vrq, - PURPLE_CERTIFICATE_INVALID); - } - + x509_tls_cached_check_subject_name(vrq, flags); return; } /* if (signature chain not good) */ @@ -1527,7 +1611,9 @@ "No X.509 Certificate Authority pool " "could be found!\n"); - x509_tls_cached_check_subject_name(vrq, FALSE); + flags |= PURPLE_CERTIFICATE_NO_CA_POOL; + + x509_tls_cached_check_subject_name(vrq, flags); return; } @@ -1540,15 +1626,15 @@ ca_id); ca_crt = purple_certificate_pool_retrieve(ca, ca_id); if ( NULL == ca_crt ) { + flags |= PURPLE_CERTIFICATE_CA_UNKNOWN; + purple_debug_warning("certificate/x509/tls_cached", "Certificate Authority with DN='%s' not " "found. I'll prompt the user, I guess.\n", ca_id); g_free(ca_id); - /* vrq will be completed by user_auth */ - x509_tls_cached_user_auth(vrq,_("The root certificate this " - "one claims to be issued by " - "is unknown to Pidgin.")); + + x509_tls_cached_check_subject_name(vrq, flags); return; } @@ -1579,36 +1665,15 @@ /* TODO: Also mention the CA involved. While I could do this now, a full DN is a little much with which to assault the user's poor, leaky eyes. */ - /* TODO: This error message makes my eyes cross, and I wrote it */ - gchar * secondary = - g_strdup_printf(_("The certificate chain presented by " - "%s does not have a valid digital " - "signature from the Certificate " - "Authority from which it claims to " - "have a signature."), - vrq->subject_name); - - purple_notify_error(NULL, /* TODO: Probably wrong */ - _("SSL Certificate Error"), - _("Invalid certificate authority" - " signature"), - secondary); - g_free(secondary); - - /* Signal "bad cert" */ - purple_certificate_verify_complete(vrq, - PURPLE_CERTIFICATE_INVALID); - - purple_certificate_destroy(ca_crt); - g_byte_array_free(ca_fpr, TRUE); - g_byte_array_free(last_fpr, TRUE); - return; - } /* if (CA signature not good) */ + flags |= PURPLE_CERTIFICATE_INVALID_CHAIN; + } g_byte_array_free(ca_fpr, TRUE); g_byte_array_free(last_fpr, TRUE); - x509_tls_cached_check_subject_name(vrq, TRUE); + purple_certificate_destroy(ca_crt); + + x509_tls_cached_check_subject_name(vrq, flags); } static void @@ -1617,6 +1682,7 @@ const gchar *tls_peers_name = "tls_peers"; /* Name of local cache */ PurpleCertificatePool *tls_peers; time_t now, activation, expiration; + PurpleCertificateInvalidityFlags flags = PURPLE_CERTIFICATE_NO_PROBLEMS; gboolean ret; g_return_if_fail(vrq); @@ -1632,39 +1698,21 @@ now = time(NULL); ret = purple_certificate_get_times(vrq->cert_chain->data, &activation, &expiration); - if (!ret || now > expiration || now < activation) { - gchar *secondary; - - if (!ret) { - purple_debug_error("certificate/x509/tls_cached", - "Failed to get validity times for certificate %s\n", - vrq->subject_name); - secondary = g_strdup_printf(_("Failed to validate expiration time " - "for %s"), vrq->subject_name); - } else if (now > expiration) { - purple_debug_error("certificate/x509/tls_cached", - "Certificate %s expired at %s\n", - vrq->subject_name, ctime(&expiration)); - secondary = g_strdup_printf(_("The certificate for %s is expired."), - vrq->subject_name); - } else { - purple_debug_error("certificate/x509/tls_cached", - "Certificate %s is not yet valid, will be at %s\n", - vrq->subject_name, ctime(&activation)); - secondary = g_strdup_printf(_("The certificate for %s should not " - "yet be in use."), vrq->subject_name); - } - - purple_notify_error(NULL, /* TODO: Probably wrong. */ - _("SSL Certificate Error"), - _("Invalid certificate chain"), - secondary ); - g_free(secondary); - - /* Okay, we're done here */ - purple_certificate_verify_complete(vrq, - PURPLE_CERTIFICATE_INVALID); - return; + if (!ret) { + flags |= PURPLE_CERTIFICATE_EXPIRED | PURPLE_CERTIFICATE_NOT_ACTIVATED; + purple_debug_error("certificate/x509/tls_cached", + "Failed to get validity times for certificate %s\n", + vrq->subject_name); + } else if (now > expiration) { + flags |= PURPLE_CERTIFICATE_EXPIRED; + purple_debug_error("certificate/x509/tls_cached", + "Certificate %s expired at %s\n", + vrq->subject_name, ctime(&expiration)); + } else if (now < activation) { + flags |= PURPLE_CERTIFICATE_NOT_ACTIVATED; + purple_debug_error("certificate/x509/tls_cached", + "Certificate %s is not yet valid, will be at %s\n", + vrq->subject_name, ctime(&activation)); } tls_peers = purple_certificate_find_pool(x509_tls_cached.scheme_name,tls_peers_name); @@ -1674,9 +1722,8 @@ "Couldn't find local peers cache %s\n", tls_peers_name); - /* vrq now becomes the problem of unknown_peer */ - x509_tls_cached_unknown_peer(vrq); + x509_tls_cached_unknown_peer(vrq, flags); return; } @@ -1687,12 +1734,12 @@ purple_debug_info("certificate/x509/tls_cached", "...Found cached cert\n"); /* vrq is now the responsibility of cert_in_cache */ - x509_tls_cached_cert_in_cache(vrq); + x509_tls_cached_cert_in_cache(vrq, flags); } else { purple_debug_warning("certificate/x509/tls_cached", "...Not in cache\n"); /* vrq now becomes the problem of unknown_peer */ - x509_tls_cached_unknown_peer(vrq); + x509_tls_cached_unknown_peer(vrq, flags); } } diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/media-gst.h --- a/libpurple/media-gst.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/media-gst.h Sat Aug 22 18:54:15 2009 +0000 @@ -21,7 +21,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #ifndef _PURPLE_MEDIA_GST_H_ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/media.c --- a/libpurple/media.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/media.c Sat Aug 22 18:54:15 2009 +0000 @@ -21,7 +21,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #include @@ -2730,10 +2730,13 @@ num_params, params, &err); } - if (err) { - purple_debug_error("media", "Error creating stream: %s\n", - err->message); - g_error_free(err); + if (fsstream == NULL) { + purple_debug_error("media", + "Error creating stream: %s\n", + err && err->message ? + err->message : "NULL"); + if (err) + g_error_free(err); g_object_unref(participant); g_hash_table_remove(media->priv->participants, who); purple_media_remove_session(media, session); diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/media.h --- a/libpurple/media.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/media.h Sat Aug 22 18:54:15 2009 +0000 @@ -21,7 +21,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #ifndef _PURPLE_MEDIA_H_ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/mediamanager.c --- a/libpurple/mediamanager.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/mediamanager.c Sat Aug 22 18:54:15 2009 +0000 @@ -21,7 +21,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #include "internal.h" diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/mediamanager.h --- a/libpurple/mediamanager.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/mediamanager.h Sat Aug 22 18:54:15 2009 +0000 @@ -21,7 +21,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #ifndef _PURPLE_MEDIA_MANAGER_H_ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/bonjour/bonjour_ft.c --- a/libpurple/protocols/bonjour/bonjour_ft.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/bonjour/bonjour_ft.c Sat Aug 22 18:54:15 2009 +0000 @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "internal.h" #include "util.h" diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/bonjour/bonjour_ft.h --- a/libpurple/protocols/bonjour/bonjour_ft.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/bonjour/bonjour_ft.h Sat Aug 22 18:54:15 2009 +0000 @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef _BONJOUR_FT_H_ #define _BONJOUR_FT_H_ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/adhoccommands.c --- a/libpurple/protocols/jabber/adhoccommands.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/adhoccommands.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/adhoccommands.h --- a/libpurple/protocols/jabber/adhoccommands.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/adhoccommands.h Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/auth.c --- a/libpurple/protocols/jabber/auth.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/auth.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/auth.h --- a/libpurple/protocols/jabber/auth.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/auth.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/bosh.c --- a/libpurple/protocols/jabber/bosh.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/bosh.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2008, Tobias Markmann + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/bosh.h --- a/libpurple/protocols/jabber/bosh.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/bosh.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2008, Tobias Markmann + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/buddy.c --- a/libpurple/protocols/jabber/buddy.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/buddy.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/buddy.h --- a/libpurple/protocols/jabber/buddy.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/buddy.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/caps.c --- a/libpurple/protocols/jabber/caps.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/caps.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/caps.h --- a/libpurple/protocols/jabber/caps.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/caps.h Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/chat.c --- a/libpurple/protocols/jabber/chat.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/chat.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/chat.h --- a/libpurple/protocols/jabber/chat.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/chat.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/data.c --- a/libpurple/protocols/jabber/data.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/data.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,4 +1,8 @@ /* + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/data.h --- a/libpurple/protocols/jabber/data.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/data.h Sat Aug 22 18:54:15 2009 +0000 @@ -1,4 +1,8 @@ /* + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/disco.c --- a/libpurple/protocols/jabber/disco.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/disco.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Service Discovery * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/disco.h --- a/libpurple/protocols/jabber/disco.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/disco.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/google.c --- a/libpurple/protocols/jabber/google.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/google.c Sat Aug 22 18:54:15 2009 +0000 @@ -91,20 +91,6 @@ } static void -google_session_send_terminate(GoogleSession *session) -{ - xmlnode *sess; - JabberIq *iq = jabber_iq_new(session->js, JABBER_IQ_SET); - - xmlnode_set_attrib(iq->node, "to", session->remote_jid); - sess = google_session_create_xmlnode(session, "terminate"); - xmlnode_insert_child(iq->node, sess); - - jabber_iq_send(iq); - google_session_destroy(session); -} - -static void google_session_send_candidates(PurpleMedia *media, gchar *session_id, gchar *participant, GoogleSession *session) { @@ -398,6 +384,16 @@ purple_media_set_prpl_data(session->media, session); + g_signal_connect_swapped(G_OBJECT(session->media), + "candidates-prepared", + G_CALLBACK(google_session_ready), session); + g_signal_connect_swapped(G_OBJECT(session->media), "codecs-changed", + G_CALLBACK(google_session_ready), session); + g_signal_connect(G_OBJECT(session->media), "state-changed", + G_CALLBACK(google_session_state_changed_cb), session); + g_signal_connect(G_OBJECT(session->media), "stream-info", + G_CALLBACK(google_session_stream_info_cb), session); + params = jabber_google_session_get_params(js, &num_params); if (purple_media_add_stream(session->media, "google-voice", @@ -408,23 +404,11 @@ session->remote_jid, PURPLE_MEDIA_VIDEO, TRUE, "nice", num_params, params) == FALSE)) { purple_media_error(session->media, "Error adding stream."); - purple_media_stream_info(session->media, - PURPLE_MEDIA_INFO_HANGUP, NULL, NULL, TRUE); - google_session_destroy(session); + purple_media_end(session->media, NULL, NULL); g_free(params); return FALSE; } - g_signal_connect_swapped(G_OBJECT(session->media), - "candidates-prepared", - G_CALLBACK(google_session_ready), session); - g_signal_connect_swapped(G_OBJECT(session->media), "codecs-changed", - G_CALLBACK(google_session_ready), session); - g_signal_connect(G_OBJECT(session->media), "state-changed", - G_CALLBACK(google_session_state_changed_cb), session); - g_signal_connect(G_OBJECT(session->media), "stream-info", - G_CALLBACK(google_session_stream_info_cb), session); - g_free(params); return (session->media != NULL) ? TRUE : FALSE; @@ -466,6 +450,16 @@ purple_media_set_prpl_data(session->media, session); + g_signal_connect_swapped(G_OBJECT(session->media), + "candidates-prepared", + G_CALLBACK(google_session_ready), session); + g_signal_connect_swapped(G_OBJECT(session->media), "codecs-changed", + G_CALLBACK(google_session_ready), session); + g_signal_connect(G_OBJECT(session->media), "state-changed", + G_CALLBACK(google_session_state_changed_cb), session); + g_signal_connect(G_OBJECT(session->media), "stream-info", + G_CALLBACK(google_session_stream_info_cb), session); + params = jabber_google_session_get_params(js, &num_params); if (purple_media_add_stream(session->media, "google-voice", @@ -477,8 +471,7 @@ FALSE, "nice", num_params, params) == FALSE)) { purple_media_error(session->media, "Error adding stream."); purple_media_stream_info(session->media, - PURPLE_MEDIA_INFO_HANGUP, NULL, NULL, TRUE); - google_session_send_terminate(session); + PURPLE_MEDIA_INFO_REJECT, NULL, NULL, TRUE); g_free(params); return FALSE; } @@ -535,18 +528,6 @@ purple_media_codec_list_free(codecs); purple_media_codec_list_free(video_codecs); - g_signal_connect_swapped(G_OBJECT(session->media), "accepted", - G_CALLBACK(google_session_ready), session); - g_signal_connect_swapped(G_OBJECT(session->media), - "candidates-prepared", - G_CALLBACK(google_session_ready), session); - g_signal_connect_swapped(G_OBJECT(session->media), "codecs-changed", - G_CALLBACK(google_session_ready), session); - g_signal_connect(G_OBJECT(session->media), "state-changed", - G_CALLBACK(google_session_state_changed_cb), session); - g_signal_connect(G_OBJECT(session->media), "stream-info", - G_CALLBACK(google_session_stream_info_cb), session); - result = jabber_iq_new(js, JABBER_IQ_RESULT); jabber_iq_set_id(result, iq_id); xmlnode_set_attrib(result->node, "to", session->remote_jid); @@ -778,8 +759,7 @@ session->js = js; session->remote_jid = g_strdup(session->id.initiator); - if (!google_session_handle_initiate(js, session, session_node, iq_id)) - google_session_destroy(session); + google_session_handle_initiate(js, session, session_node, iq_id); } #endif /* USE_VV */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/ibb.c --- a/libpurple/protocols/jabber/ibb.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/ibb.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,4 +1,8 @@ /* + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/ibb.h --- a/libpurple/protocols/jabber/ibb.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/ibb.h Sat Aug 22 18:54:15 2009 +0000 @@ -1,4 +1,8 @@ /* + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/iq.c --- a/libpurple/protocols/jabber/iq.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/iq.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/iq.h --- a/libpurple/protocols/jabber/iq.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/iq.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jabber.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jabber.h --- a/libpurple/protocols/jabber/jabber.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jabber.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jingle/content.c --- a/libpurple/protocols/jabber/jingle/content.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/content.c Sat Aug 22 18:54:15 2009 +0000 @@ -3,6 +3,10 @@ * * purple * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jingle/content.h --- a/libpurple/protocols/jabber/jingle/content.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/content.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,6 +3,10 @@ * * purple * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jingle/iceudp.c --- a/libpurple/protocols/jabber/jingle/iceudp.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/iceudp.c Sat Aug 22 18:54:15 2009 +0000 @@ -3,6 +3,10 @@ * * purple * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jingle/iceudp.h --- a/libpurple/protocols/jabber/jingle/iceudp.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/iceudp.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,6 +3,10 @@ * * purple * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jingle/jingle.c --- a/libpurple/protocols/jabber/jingle/jingle.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/jingle.c Sat Aug 22 18:54:15 2009 +0000 @@ -3,6 +3,10 @@ * * purple - Jabber Protocol Plugin * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jingle/jingle.h --- a/libpurple/protocols/jabber/jingle/jingle.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/jingle.h Sat Aug 22 18:54:15 2009 +0000 @@ -1,6 +1,10 @@ /* * @file jingle.h * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jingle/rawudp.c --- a/libpurple/protocols/jabber/jingle/rawudp.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/rawudp.c Sat Aug 22 18:54:15 2009 +0000 @@ -3,6 +3,10 @@ * * purple * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jingle/rawudp.h --- a/libpurple/protocols/jabber/jingle/rawudp.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/rawudp.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,6 +3,10 @@ * * purple * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jingle/rtp.c --- a/libpurple/protocols/jabber/jingle/rtp.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/rtp.c Sat Aug 22 18:54:15 2009 +0000 @@ -3,6 +3,10 @@ * * purple * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -607,8 +611,11 @@ is_creator = !jingle_session_is_initiator(session); g_free(creator); - purple_media_add_stream(media, name, remote_jid, - type, is_creator, transmitter, num_params, params); + if(!purple_media_add_stream(media, name, remote_jid, + type, is_creator, transmitter, num_params, params)) { + purple_media_end(media, NULL, NULL); + return FALSE; + } g_free(name); g_free(media_type); diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jingle/rtp.h --- a/libpurple/protocols/jabber/jingle/rtp.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/rtp.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,6 +3,10 @@ * * purple * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jingle/session.c --- a/libpurple/protocols/jabber/jingle/session.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/session.c Sat Aug 22 18:54:15 2009 +0000 @@ -3,6 +3,10 @@ * * purple * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jingle/session.h --- a/libpurple/protocols/jabber/jingle/session.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/session.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,6 +3,10 @@ * * purple * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jingle/transport.c --- a/libpurple/protocols/jabber/jingle/transport.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/transport.c Sat Aug 22 18:54:15 2009 +0000 @@ -3,6 +3,10 @@ * * purple * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jingle/transport.h --- a/libpurple/protocols/jabber/jingle/transport.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/transport.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,6 +3,10 @@ * * purple * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jutil.c --- a/libpurple/protocols/jabber/jutil.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jutil.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -504,8 +506,23 @@ JabberStream *js = gc ? gc->proto_data : NULL; static char buf[3072]; /* maximum legal length of a jabber jid */ JabberID *jid; + char *tmp; + size_t len = strlen(in); - jid = jabber_id_new(in); + /* + * If the JID ends with a '/', jabber_id_new is going to throw it away as + * invalid. However, this is what the UI generates for a JID with no + * resource. Deal with that by dropping away the '/'... + */ + if (in[len - 1] == '/') + tmp = g_strndup(in, len - 1); + else + tmp = (gchar *)in; + + jid = jabber_id_new(tmp); + + if (tmp != in) + g_free(tmp); if(!jid) return NULL; diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/jutil.h --- a/libpurple/protocols/jabber/jutil.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/jutil.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/message.c --- a/libpurple/protocols/jabber/message.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/message.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -87,8 +89,12 @@ } if(!jm->xhtml && !jm->body) { - if (jbr) - jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED; + 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(JM_STATE_COMPOSING == jm->chat_state) { serv_got_typing(jm->js->gc, from, 0, PURPLE_TYPING); diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/message.h --- a/libpurple/protocols/jabber/message.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/message.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/oob.c --- a/libpurple/protocols/jabber/oob.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/oob.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/oob.h --- a/libpurple/protocols/jabber/oob.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/oob.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/parser.c --- a/libpurple/protocols/jabber/parser.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/parser.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber XML parser stuff * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/parser.h --- a/libpurple/protocols/jabber/parser.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/parser.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/pep.c --- a/libpurple/protocols/jabber/pep.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/pep.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/pep.h --- a/libpurple/protocols/jabber/pep.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/pep.h Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/ping.c --- a/libpurple/protocols/jabber/ping.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/ping.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,7 +18,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/ping.h --- a/libpurple/protocols/jabber/ping.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/ping.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,7 +19,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #ifndef PURPLE_JABBER_PING_H_ #define PURPLE_JABBER_PING_H_ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/presence.c --- a/libpurple/protocols/jabber/presence.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/presence.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -469,10 +471,17 @@ jbr->commands_fetched = TRUE; } +#if 0 + /* + * Versions of libpurple before 2.6.0 didn't advertise this capability, so + * we can't yet use Entity Capabilities to determine whether or not the + * other client supports Entity Capabilities. + */ if (jabber_resource_has_capability(jbr, "http://jabber.org/protocol/chatstates")) jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED; else jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED; +#endif out: g_free(userdata->from); diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/presence.h --- a/libpurple/protocols/jabber/presence.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/presence.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/roster.c --- a/libpurple/protocols/jabber/roster.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/roster.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/roster.h --- a/libpurple/protocols/jabber/roster.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/roster.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/si.c --- a/libpurple/protocols/jabber/si.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/si.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/si.h --- a/libpurple/protocols/jabber/si.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/si.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/useravatar.c --- a/libpurple/protocols/jabber/useravatar.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/useravatar.c Sat Aug 22 18:54:15 2009 +0000 @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/useravatar.h --- a/libpurple/protocols/jabber/useravatar.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/useravatar.h Sat Aug 22 18:54:15 2009 +0000 @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/usermood.c --- a/libpurple/protocols/jabber/usermood.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/usermood.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/usermood.h --- a/libpurple/protocols/jabber/usermood.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/usermood.h Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/usernick.c --- a/libpurple/protocols/jabber/usernick.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/usernick.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/usernick.h --- a/libpurple/protocols/jabber/usernick.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/usernick.h Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/usertune.c --- a/libpurple/protocols/jabber/usertune.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/usertune.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/usertune.h --- a/libpurple/protocols/jabber/usertune.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/usertune.h Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/xdata.c --- a/libpurple/protocols/jabber/xdata.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/xdata.c Sat Aug 22 18:54:15 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/jabber/xdata.h --- a/libpurple/protocols/jabber/xdata.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/jabber/xdata.h Sat Aug 22 18:54:15 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/msn/contact.c --- a/libpurple/protocols/msn/contact.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/msn/contact.c Sat Aug 22 18:54:15 2009 +0000 @@ -21,7 +21,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "msn.h" diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/msn/contact.h --- a/libpurple/protocols/msn/contact.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/msn/contact.h Sat Aug 22 18:54:15 2009 +0000 @@ -20,7 +20,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef _MSN_CONTACT_H_ #define _MSN_CONTACT_H_ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/msn/oim.c --- a/libpurple/protocols/msn/oim.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/msn/oim.c Sat Aug 22 18:54:15 2009 +0000 @@ -21,7 +21,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "msn.h" #include "soap.h" diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/msn/oim.h --- a/libpurple/protocols/msn/oim.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/msn/oim.h Sat Aug 22 18:54:15 2009 +0000 @@ -20,7 +20,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef _MSN_OIM_H_ #define _MSN_OIM_H_ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/msn/soap.c --- a/libpurple/protocols/msn/soap.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/msn/soap.c Sat Aug 22 18:54:15 2009 +0000 @@ -20,7 +20,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "internal.h" diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/msn/soap.h --- a/libpurple/protocols/msn/soap.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/msn/soap.h Sat Aug 22 18:54:15 2009 +0000 @@ -20,7 +20,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef _MSN_SOAP_H diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/qq/qq_crypt.c --- a/libpurple/protocols/qq/qq_crypt.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/qq/qq_crypt.c Sat Aug 22 18:54:15 2009 +0000 @@ -19,7 +19,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA * * * QQ encryption algorithm diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/qq/qq_crypt.h --- a/libpurple/protocols/qq/qq_crypt.h Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/qq/qq_crypt.h Sat Aug 22 18:54:15 2009 +0000 @@ -19,7 +19,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef _QQ_CRYPT_H_ diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/protocols/yahoo/util.c --- a/libpurple/protocols/yahoo/util.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/protocols/yahoo/util.c Sat Aug 22 18:54:15 2009 +0000 @@ -611,7 +611,6 @@ if (match == NULL) { /* Unknown tag. The user probably typed a less-than sign */ g_string_append_c(cdata, x[i]); - no_more_gt_brackets = TRUE; g_free(tag); g_free(tag_name); break; diff -r 84804fd076bc -r 299ef6fd1a23 libpurple/tests/test_yahoo_util.c --- a/libpurple/tests/test_yahoo_util.c Sat Aug 22 18:05:10 2009 +0000 +++ b/libpurple/tests/test_yahoo_util.c Sat Aug 22 18:54:15 2009 +0000 @@ -100,6 +100,8 @@ yahoo_codes_to_html("test")); assert_string_equal_free("test", yahoo_codes_to_html("\x1B[35mtest")); + assert_string_equal_free(":<", + yahoo_codes_to_html(":<")); #endif /* !USE_CSS_FORMATTING */ } END_TEST diff -r 84804fd076bc -r 299ef6fd1a23 pidgin/gtkmedia.c --- a/pidgin/gtkmedia.c Sat Aug 22 18:05:10 2009 +0000 +++ b/pidgin/gtkmedia.c Sat Aug 22 18:54:15 2009 +0000 @@ -20,7 +20,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #include diff -r 84804fd076bc -r 299ef6fd1a23 pidgin/gtkmedia.h --- a/pidgin/gtkmedia.h Sat Aug 22 18:05:10 2009 +0000 +++ b/pidgin/gtkmedia.h Sat Aug 22 18:54:15 2009 +0000 @@ -21,7 +21,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __GTKMEDIA_H_ diff -r 84804fd076bc -r 299ef6fd1a23 pidgin/gtknotify.c --- a/pidgin/gtknotify.c Sat Aug 22 18:05:10 2009 +0000 +++ b/pidgin/gtknotify.c Sat Aug 22 18:54:15 2009 +0000 @@ -184,10 +184,12 @@ GList **list = data; *list = g_list_prepend(*list, gtk_tree_path_copy(path)); } + static void pounce_response_dismiss() { GtkTreeSelection *selection; + GtkTreeIter iter; GList *list = NULL; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(pounce_dialog->treeview)); @@ -203,6 +205,9 @@ gtk_tree_path_free(list->data); list = g_list_delete_link(list, list); } + + if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(pounce_dialog->treemodel), &iter)) + pounce_response_close(pounce_dialog); } static void @@ -296,6 +301,28 @@ } static void +pounce_row_activated_cb(GtkTreeView *tv, GtkTreePath *path, + GtkTreeViewColumn *col, gpointer data) +{ + PidginNotifyPounceData *pounce_data; + PurpleAccount *account; + GtkTreeIter iter; + + if(!gtk_tree_model_get_iter(GTK_TREE_MODEL(pounce_dialog->treemodel), &iter, path)) + return; + + gtk_tree_model_get(GTK_TREE_MODEL(pounce_dialog->treemodel), &iter, + PIDGIN_POUNCE_DATA, &pounce_data, -1); + + account = pounce_data->account; + + purple_conversation_new(PURPLE_CONV_TYPE_IM, account, + purple_account_get_username(account)); + + pounce_response_dismiss(); +} + +static void reset_mail_dialog(GtkDialog *unused) { if (mail_dialog->in_use) @@ -1539,6 +1566,8 @@ gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE); g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(pounce_row_selected_cb), NULL); + g_signal_connect(G_OBJECT(spec_dialog->treeview), "row-activated", + G_CALLBACK(pounce_row_activated_cb), NULL); } gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); diff -r 84804fd076bc -r 299ef6fd1a23 pidgin/plugins/Makefile.am --- a/pidgin/plugins/Makefile.am Sat Aug 22 18:05:10 2009 +0000 +++ b/pidgin/plugins/Makefile.am Sat Aug 22 18:54:15 2009 +0000 @@ -67,9 +67,12 @@ themeedit.la \ timestamp.la \ timestamp_format.la \ - vvconfig.la \ xmppconsole.la +if USE_VV +plugin_LTLIBRARIES += vvconfig.la +endif + noinst_LTLIBRARIES = \ contact_priority.la \ gtk_signals_test.la @@ -109,7 +112,7 @@ themeedit_la_LIBADD = $(GTK_LIBS) timestamp_la_LIBADD = $(GTK_LIBS) timestamp_format_la_LIBADD = $(GTK_LIBS) -vvconfig_la_LIBADD = $(GTK_LIBS) +vvconfig_la_LIBADD = $(GTK_LIBS) $(GSTREAMER_LIBS) xmppconsole_la_LIBADD = $(GTK_LIBS) endif # PLUGINS diff -r 84804fd076bc -r 299ef6fd1a23 pidgin/plugins/Makefile.mingw --- a/pidgin/plugins/Makefile.mingw Sat Aug 22 18:05:10 2009 +0000 +++ b/pidgin/plugins/Makefile.mingw Sat Aug 22 18:54:15 2009 +0000 @@ -91,7 +91,6 @@ spellchk.dll \ timestamp_format.dll \ timestamp.dll \ - vvconfig.dll \ xmppconsole.dll ##