aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libempathy/empathy-irc-network.c21
-rw-r--r--libempathy/empathy-irc-network.h3
2 files changed, 24 insertions, 0 deletions
diff --git a/libempathy/empathy-irc-network.c b/libempathy/empathy-irc-network.c
index 1340ece01..fa422e9fc 100644
--- a/libempathy/empathy-irc-network.c
+++ b/libempathy/empathy-irc-network.c
@@ -237,3 +237,24 @@ empathy_irc_network_add_server (EmpathyIrcNetwork *self,
priv->servers = g_slist_append (priv->servers, g_object_ref (server));
g_signal_emit (self, signals[MODIFIED], 0);
}
+
+void
+empathy_irc_network_remove_server (EmpathyIrcNetwork *self,
+ EmpathyIrcServer *server)
+{
+ EmpathyIrcNetworkPrivate *priv;
+ GSList *l;
+
+ g_return_if_fail (EMPATHY_IS_IRC_NETWORK (self));
+ g_return_if_fail (server != NULL && EMPATHY_IS_IRC_SERVER (server));
+
+ priv = EMPATHY_IRC_NETWORK_GET_PRIVATE (self);
+
+ l = g_slist_find (priv->servers, server);
+ if (l == NULL)
+ return;
+
+ g_object_unref (l->data);
+ priv->servers = g_slist_delete_link (priv->servers, l);
+ g_signal_emit (self, signals[MODIFIED], 0);
+}
diff --git a/libempathy/empathy-irc-network.h b/libempathy/empathy-irc-network.h
index c1412af1e..51b3dbab2 100644
--- a/libempathy/empathy-irc-network.h
+++ b/libempathy/empathy-irc-network.h
@@ -70,6 +70,9 @@ empathy_irc_network_get_servers (EmpathyIrcNetwork *network);
void empathy_irc_network_add_server (EmpathyIrcNetwork *network,
EmpathyIrcServer *server);
+void empathy_irc_network_remove_server (EmpathyIrcNetwork *network,
+ EmpathyIrcServer *server);
+
G_END_DECLS
#endif /* __EMPATHY_IRC_NETWORK_H__ */