libpurple/connection.c

branch
soc.2013.gobjectification.plugins
changeset 37148
50f361d39a1e
parent 37146
b5b9c75a4b54
parent 36068
e9b9320a985a
child 37666
08ec2e6e0174
--- a/libpurple/connection.c	Tue May 20 10:59:21 2014 +0530
+++ b/libpurple/connection.c	Sat May 24 02:32:01 2014 +0530
@@ -308,6 +308,16 @@
 	return priv->flags;
 }
 
+gboolean
+purple_connection_is_disconnecting(const PurpleConnection *gc)
+{
+	PurpleConnectionPrivate *priv = PURPLE_CONNECTION_GET_PRIVATE(gc);
+
+	g_return_val_if_fail(priv != NULL, TRUE);
+
+	return priv->is_finalizing;
+}
+
 PurpleAccount *
 purple_connection_get_account(const PurpleConnection *gc)
 {
@@ -787,6 +797,7 @@
 	}
 
 	purple_http_conn_cancel_all(gc);
+	_purple_socket_cancel_with_connection(gc);
 	purple_proxy_connect_cancel_with_handle(gc);
 
 	connections = g_list_remove(connections, gc);
@@ -1025,6 +1036,19 @@
 /**************************************************************************
  * Connections API
  **************************************************************************/
+
+void
+_purple_assert_connection_is_valid(PurpleConnection *gc,
+	const gchar *file, int line)
+{
+	if (gc && g_list_find(purple_connections_get_all(), gc))
+		return;
+
+	purple_debug_fatal("connection", "PURPLE_ASSERT_CONNECTION_IS_VALID(%p)"
+		" failed at %s:%d", gc, file, line);
+	exit(-1);
+}
+
 void
 purple_connections_disconnect_all(void)
 {

mercurial