summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Thompson <will.thompson@collabora.co.uk>2011-11-16 09:05:59 +0000
committerWill Thompson <will.thompson@collabora.co.uk>2011-11-18 10:40:59 +0000
commit79008a4927792ddda8720d70d09948951e1b8423 (patch)
treec2f7e0c50140709082377b9d14e357100b77f04f
parente34be9ed3748699425ee4c4565c6a01a65f4d6d5 (diff)
meta-porter: emit ::sending when a child porter does
-rw-r--r--wocky/wocky-meta-porter.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/wocky/wocky-meta-porter.c b/wocky/wocky-meta-porter.c
index 0d3516e..773023a 100644
--- a/wocky/wocky-meta-porter.c
+++ b/wocky/wocky-meta-porter.c
@@ -192,6 +192,10 @@ static void porter_closing_cb (WockyPorter *porter, PorterData *data);
static void porter_remote_closed_cb (WockyPorter *porter, PorterData *data);
static void porter_remote_error_cb (WockyPorter *porter, GQuark domain,
gint code, const gchar *msg, PorterData *data);
+static void porter_sending_cb (
+ WockyC2SPorter *child_porter,
+ WockyStanza *stanza,
+ PorterData *data);
static void
disconnect_porter_signal_handlers (WockyPorter *porter,
@@ -203,6 +207,8 @@ disconnect_porter_signal_handlers (WockyPorter *porter,
porter_closing_cb, data);
g_signal_handlers_disconnect_by_func (porter,
porter_remote_error_cb, data);
+ g_signal_handlers_disconnect_by_func (porter,
+ porter_sending_cb, data);
}
static void
@@ -243,6 +249,15 @@ porter_remote_error_cb (WockyPorter *porter,
}
static void
+porter_sending_cb (
+ WockyC2SPorter *child_porter,
+ WockyStanza *stanza,
+ PorterData *data)
+{
+ g_signal_emit_by_name (data->self, "sending", stanza);
+}
+
+static void
maybe_start_timeout (PorterData *data)
{
if (data->refcount == 0)
@@ -311,6 +326,8 @@ create_porter (WockyMetaPorter *self,
G_CALLBACK (porter_remote_closed_cb), data);
g_signal_connect (data->porter, "remote-error",
G_CALLBACK (porter_remote_error_cb), data);
+ g_signal_connect (data->porter, "sending",
+ G_CALLBACK (porter_sending_cb), data);
register_porter_handlers (self, data->porter, contact);
wocky_porter_start (data->porter);