changeset 19693:d9bec6786a0c

merge of '23dc0b8b764a7a920891d3024bb830bb14916013' and '5c4412b272d4bbf2942716f8b4fd67890035dab7'
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Mon, 10 Sep 2007 04:47:14 +0000
parents 5a051296836c (diff) c35e8c057441 (current diff)
children 481749fc0b6b
files
diffstat 14 files changed, 76 insertions(+), 55 deletions(-) [+]
line wrap: on
line diff
--- a/doc/SIGNAL-HOWTO.dox	Mon Sep 10 04:45:36 2007 +0000
+++ b/doc/SIGNAL-HOWTO.dox	Mon Sep 10 04:47:14 2007 +0000
@@ -78,7 +78,7 @@
 
   @todo Describe this more.
 
-  @See value.h
+  @see value.h
 
   @section connect Connecting to the signal
   Once the signal is registered, you can connect callbacks to it. First, you
--- a/libpurple/certificate.c	Mon Sep 10 04:45:36 2007 +0000
+++ b/libpurple/certificate.c	Mon Sep 10 04:47:14 2007 +0000
@@ -1256,6 +1256,9 @@
 }
 
 /* For when we've never communicated with this party before */
+/* TODO: Need ways to specify possibly multiple problems with a cert, or at
+   least  reprioritize them. For example, maybe the signature ought to be
+   checked BEFORE the hostname checking? */
 static void
 x509_tls_cached_unknown_peer(PurpleCertificateVerificationRequest *vrq)
 {
@@ -1296,7 +1299,27 @@
 		return;
 	} /* if (name mismatch) */
 
-			
+	/* 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;
+		
+		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);
+		return;
+	} /* if (name mismatch) */
 	
 	/* Next, check that the certificate chain is valid */
 	if ( ! purple_certificate_check_signature_chain(chain) ) {
--- a/libpurple/conversation.h	Mon Sep 10 04:45:36 2007 +0000
+++ b/libpurple/conversation.h	Mon Sep 10 04:47:14 2007 +0000
@@ -184,7 +184,7 @@
 	                   time_t mtime);
 
 	/** Add @a cbuddies to a chat.
-	 *  @param cbuddies      A @C GList of #PurpleConvChatBuddy structs.
+	 *  @param cbuddies      A @c GList of #PurpleConvChatBuddy structs.
 	 *  @param new_arrivals  Whether join notices should be shown.
 	 *                       (Join notices are actually written to the
 	 *                       conversation by #purple_conv_chat_add_users().)
@@ -200,7 +200,7 @@
 	void (*chat_rename_user)(PurpleConversation *conv, const char *old_name,
 	                         const char *new_name, const char *new_alias);
 	/** Remove @a users from a chat.
-	 *  @param users    A @C GList of <tt>const char *</tt>s.
+	 *  @param users    A @c GList of <tt>const char *</tt>s.
 	 *  @see purple_conv_chat_rename_user()
 	 */
 	void (*chat_remove_users)(PurpleConversation *conv, GList *users);
--- a/libpurple/notify.h	Mon Sep 10 04:45:36 2007 +0000
+++ b/libpurple/notify.h	Mon Sep 10 04:47:14 2007 +0000
@@ -213,6 +213,11 @@
 								PurpleNotifySearchResults *results, PurpleNotifyCloseCallback cb,
 								gpointer user_data);
 
+/**
+ * Frees a PurpleNotifySearchResults object.
+ *
+ * @param results The PurpleNotifySearchResults to free.
+ */
 void purple_notify_searchresults_free(PurpleNotifySearchResults *results);
 
 /**
--- a/libpurple/prefs.c	Mon Sep 10 04:45:36 2007 +0000
+++ b/libpurple/prefs.c	Mon Sep 10 04:47:14 2007 +0000
@@ -329,9 +329,13 @@
 				purple_prefs_set_string_list(pref_name_full->str, NULL);
 				break;
 			case PURPLE_PREF_PATH:
-				decoded = g_filename_from_utf8(pref_value, -1, NULL, NULL, NULL);
-				purple_prefs_set_path(pref_name_full->str, decoded);
-				g_free(decoded);
+				if (pref_value) {
+					decoded = g_filename_from_utf8(pref_value, -1, NULL, NULL, NULL);
+					purple_prefs_set_path(pref_name_full->str, decoded);
+					g_free(decoded);
+				} else {
+					purple_prefs_set_path(pref_name_full->str, NULL);
+				}
 				break;
 			case PURPLE_PREF_PATH_LIST:
 				purple_prefs_set_path_list(pref_name_full->str, NULL);
--- a/libpurple/protocols/oscar/family_locate.c	Mon Sep 10 04:45:36 2007 +0000
+++ b/libpurple/protocols/oscar/family_locate.c	Mon Sep 10 04:47:14 2007 +0000
@@ -636,13 +636,11 @@
 	 * Parse out the Type-Length-Value triples as they're found.
 	 */
 	for (curtlv = 0; curtlv < tlvcnt; curtlv++) {
-		guint16 type;
-		guint8 number, length;
+		guint16 type, length;
 		int endpos;
 
 		type = byte_stream_get16(bs);
-		number = byte_stream_get8(bs);
-		length = byte_stream_get8(bs);
+		length = byte_stream_get16(bs);
 
 		endpos = byte_stream_curpos(bs) + MIN(length, byte_stream_empty(bs));
 
--- a/libpurple/protocols/oscar/oscar.c	Mon Sep 10 04:45:36 2007 +0000
+++ b/libpurple/protocols/oscar/oscar.c	Mon Sep 10 04:47:14 2007 +0000
@@ -2125,28 +2125,11 @@
 		}
 		else if (args->status == AIM_RENDEZVOUS_CONNECTED)
 		{
-			/* Remote user has accepted our peer request */
-			PeerConnection *conn;
-
-			conn = peer_connection_find_by_cookie(od, userinfo->sn, args->cookie);
 			/*
-			 * If conn is NULL it means we haven't tried to create
-			 * a connection with that user.  They may be trying to
-			 * do something malicious.
+			 * Remote user has accepted our peer request.  If we
+			 * wanted to we could look up the PeerConnection using
+			 * args->cookie, but we don't need to do anything here.
 			 */
-			if (conn != NULL)
-			{
-				if (conn->listenerfd != -1)
-				{
-					/*
-					 * If they are connecting directly to us then
-					 * continue the peer negotiation by
-					 * accepting connections on our listener port.
-					 */
-					conn->watcher_incoming = purple_input_add(conn->listenerfd,
-							PURPLE_INPUT_READ, peer_connection_listen_cb, conn);
-				}
-			}
 		}
 	}
 
--- a/libpurple/protocols/oscar/peer.c	Mon Sep 10 04:45:36 2007 +0000
+++ b/libpurple/protocols/oscar/peer.c	Mon Sep 10 04:47:14 2007 +0000
@@ -671,6 +671,10 @@
 	account = purple_connection_get_account(gc);
 	conn->listenerfd = listenerfd;
 
+	/* Watch for new connections on our listener socket */
+	conn->watcher_incoming = purple_input_add(conn->listenerfd,
+			PURPLE_INPUT_READ, peer_connection_listen_cb, conn);
+
 	/* Send the "please connect to me!" ICBM */
 	bos_conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM);
 	if (bos_conn == NULL)
--- a/libpurple/server.h	Mon Sep 10 04:45:36 2007 +0000
+++ b/libpurple/server.h	Mon Sep 10 04:47:14 2007 +0000
@@ -64,7 +64,7 @@
  *
  * @param gc The connection to send the message on.
  * @param who Whose attention to request.
- * @param type An index into the prpl's attention_types list determining the type
+ * @param type_code An index into the prpl's attention_types list determining the type
  * 	of the attention request command to send. 0 if prpl only defines one
  * 	(for example, Yahoo and MSN), but some protocols define more (MySpaceIM).
  *
@@ -77,7 +77,7 @@
  *
  * @param gc The connection that received the attention message.
  * @param who Who requested your attention.
- * @param type An index into the prpl's attention_types list determining the type
+ * @param type_code An index into the prpl's attention_types list determining the type
  * 	of the attention request command to send. 
  */
 void serv_got_attention(PurpleConnection *gc, const char *who, guint type_code);
--- a/pidgin/gtkblist.h	Mon Sep 10 04:45:36 2007 +0000
+++ b/pidgin/gtkblist.h	Mon Sep 10 04:47:14 2007 +0000
@@ -378,7 +378,7 @@
  * This tooltip will be destroyed the next time this function is called, or when XXXX
  * is called
  *
- * @param buddy The buddy to show a tooltip for
+ * @param node The buddy list node to show a tooltip for
  * @param widget The widget to draw the tooltip on
  */
 void pidgin_blist_draw_tooltip(PurpleBlistNode *node, GtkWidget *widget);
--- a/pidgin/gtkdialogs.c	Mon Sep 10 04:45:36 2007 +0000
+++ b/pidgin/gtkdialogs.c	Mon Sep 10 04:47:14 2007 +0000
@@ -95,8 +95,7 @@
 /* Order: Alphabetical by Last Name */
 static struct developer patch_writers[] = {
 	{"John 'rekkanoryo' Bailey",	NULL,	NULL},
-	{"Peter 'Bleeter' Lawler",      NULL,   NULL},
-        {"Dennis 'EvilDennisR' Ristuccia",	N_("Senior Contributor/QA"),	NULL},
+	{"Dennis 'EvilDennisR' Ristuccia",	N_("Senior Contributor/QA"),	NULL},
 	{"Peter 'Fmoo' Ruibal",		NULL,	NULL},
 	{"Gabriel 'Nix' Schulhof", 	NULL, 	NULL},
 	{"Will 'resiak' Thompson",	NULL,	NULL},
@@ -122,6 +121,7 @@
 static struct developer retired_patch_writers[] = {
 	{"Felipe 'shx' Contreras",		NULL,	NULL},
 	{"Decklin Foster",				NULL,	NULL},
+	{"Peter 'Bleeter' Lawler",      NULL,   NULL},
 	{"Robert 'Robot101' McQueen",	NULL,	NULL},
 	{"Benjamin Miller",				NULL,	NULL},
 	{NULL, NULL, NULL}
@@ -305,14 +305,14 @@
 	context = gtk_widget_get_pango_context(widget);
 	layout = pango_layout_new(context);
 
-	markup = g_strdup_printf("<span foreground=\"#FFFFFF\">%s</span>", VERSION);
+	markup = g_strdup_printf("<span foreground=\"#000000\">%s</span>", VERSION);
 	pango_layout_set_font_description(layout, style->font_desc);
 	pango_layout_set_markup(layout, markup, strlen(markup));
 	g_free(markup);
 
 	pango_layout_get_pixel_size(layout, &lwidth, &lheight);
 	gdk_draw_layout(GDK_DRAWABLE(pixmap), style->bg_gc[GTK_STATE_NORMAL],
-					width - (lwidth + 3), height - (lheight + 1), layout);
+					width - (lwidth + 3), 1, layout);
 	g_object_unref(G_OBJECT(layout));
 
 	*original = gdk_pixbuf_get_from_drawable(NULL, pixmap, NULL,
@@ -396,6 +396,9 @@
 
 	g_string_append(str, "<FONT SIZE=\"4\">URL:</FONT> <A HREF=\""
 					PURPLE_WEBSITE "\">" PURPLE_WEBSITE "</A><BR/><BR/>");
+	g_string_append(str, "<FONT SIZE=\"4\">FAQ:</FONT> <A HREF=\""
+			"http://developer.pidgin.im/wiki/FAQ\">"
+			"http://developer.pidgin.im/wiki/FAQ</A><BR/><BR/>");
 	g_string_append_printf(str, _("<FONT SIZE=\"4\">IRC:</FONT> "
 						   "#pidgin on irc.freenode.net<BR><BR>"));
 
--- a/pidgin/gtkutils.h	Mon Sep 10 04:45:36 2007 +0000
+++ b/pidgin/gtkutils.h	Mon Sep 10 04:47:14 2007 +0000
@@ -311,7 +311,7 @@
  * The default filter function for screenname autocomplete.
  *
  * @param completion_entry The completion entry to filter.
- * @param online_accounts  If this is @c FALSE, only the autocompletion entries
+ * @param all_accounts  If this is @c FALSE, only the autocompletion entries
  *                         which belong to an online account will be filtered.
  * @return Returns @c TRUE if the autocompletion entry is filtered.
  */
@@ -435,7 +435,7 @@
  * @param y Address of the gint representing the vertical position
  *        where the menu shall be drawn. This is an output parameter.
  * @param push_in This is an output parameter?
- * @param user_data Not used by this particular position function.
+ * @param data Not used by this particular position function.
  */
 void pidgin_menu_position_func_helper(GtkMenu *menu, gint *x, gint *y,
 										gboolean *push_in, gpointer data);
Binary file pidgin/pixmaps/logo.png has changed
--- a/pidgin/plugins/win32/transparency/win2ktrans.c	Mon Sep 10 04:45:36 2007 +0000
+++ b/pidgin/plugins/win32/transparency/win2ktrans.c	Mon Sep 10 04:47:14 2007 +0000
@@ -1,23 +1,24 @@
 /*
- * purple - Transparency plugin
+ * Pidgin - Transparency plugin
  *
- * copyright (c) 1998-2002, rob flynn <rob@marko.net>
- * copyright (c) 2002-2003, Herman Bloggs <hermanator12002@yahoo.com>
- * copyright (c) 2005,      Daniel Atallah <daniel_atallah@yahoo.com>
+ * Copyright (C) 1998-2002, Rob Flynn <rob@marko.net>
+ * Copyright (C) 2002-2003, Herman Bloggs <hermanator12002@yahoo.com>
+ * Copyright (C) 2005,      Daniel Atallah <daniel_atallah@yahoo.com>
  *
- * 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
- * (at your option) any later version.
+ * 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 (at your option) any later version.
  *
- * this program is distributed in the hope that it will be useful,
- * but without any warranty; without even the implied warranty of
- * merchantability or fitness for a particular purpose.  see the
- * gnu general public license for more details.
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
  *
- * 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-1301  usa
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02111-1301, USA.
  *
  */
 #ifndef _WIN32_WINNT