[Telepathy-commits] [telepathy-salut/master] replace salut_file_transfer_channel_received_file_offer by salut_file_transfer_channel_new_from_stanza
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Mon Mar 16 09:09:31 PDT 2009
---
src/salut-file-transfer-channel.c | 90 ++++++++++++++++++++----------------
src/salut-file-transfer-channel.h | 10 +++--
src/salut-ft-manager.c | 14 +-----
3 files changed, 59 insertions(+), 55 deletions(-)
diff --git a/src/salut-file-transfer-channel.c b/src/salut-file-transfer-channel.c
index d4ada89..ea5ac57 100644
--- a/src/salut-file-transfer-channel.c
+++ b/src/salut-file-transfer-channel.c
@@ -1032,46 +1032,6 @@ xmpp_connection_manager_new_connection_cb (SalutXmppConnectionManager *mgr,
send_file_offer (channel);
}
-gboolean
-salut_file_transfer_channel_received_file_offer (SalutFileTransferChannel *self,
- GibberXmppStanza *stanza,
- GibberXmppConnection *conn,
- SalutContact *contact)
-{
- GibberFileTransfer *ft;
-
- salut_xmpp_connection_manager_take_connection (
- self->priv->xmpp_connection_manager , conn);
- ft = gibber_file_transfer_new_from_stanza_with_from (stanza, conn,
- contact->name);
-
- if (ft == NULL)
- {
- /* Reply with an error */
- GibberXmppStanza *reply;
-
- reply = gibber_iq_helper_new_error_reply (stanza, XMPP_ERROR_BAD_REQUEST,
- "failed to parse file offer");
- gibber_xmpp_connection_send (conn, reply, NULL);
- return FALSE;
- }
-
- g_signal_connect (ft, "error", G_CALLBACK (error_cb), self);
-
- DEBUG ("Received file offer with id '%s'", ft->id);
-
- self->priv->ft = ft;
-
- g_object_set (self,
- "filename", ft->filename,
- "size", gibber_file_transfer_get_size (ft),
- "description", ft->description,
- "content-type", ft->content_type,
- NULL);
-
- return TRUE;
-}
-
static void
salut_file_transfer_channel_set_state (
TpSvcChannelTypeFileTransfer *iface,
@@ -1575,3 +1535,53 @@ salut_file_transfer_channel_new (SalutConnection *conn,
"state", state,
NULL);
}
+
+SalutFileTransferChannel *
+salut_file_transfer_channel_new_from_stanza (SalutConnection *connection,
+ SalutContact *contact,
+ const gchar *path,
+ TpHandle handle,
+ SalutXmppConnectionManager *xcm,
+ TpFileTransferState state,
+ GibberXmppStanza *stanza,
+ GibberXmppConnection *conn)
+{
+ GibberFileTransfer *ft;
+ SalutFileTransferChannel *chan;
+
+ salut_xmpp_connection_manager_take_connection (xcm , conn);
+ ft = gibber_file_transfer_new_from_stanza (stanza, conn);
+
+ if (ft == NULL)
+ {
+ /* Reply with an error */
+ GibberXmppStanza *reply;
+
+ reply = gibber_iq_helper_new_error_reply (stanza, XMPP_ERROR_BAD_REQUEST,
+ "failed to parse file offer");
+ gibber_xmpp_connection_send (conn, reply, NULL);
+ return FALSE;
+ }
+
+ DEBUG ("Received file offer with id '%s'", ft->id);
+
+ chan = g_object_new (SALUT_TYPE_FILE_TRANSFER_CHANNEL,
+ "connection", connection,
+ "contact", contact,
+ "object-path", path,
+ "handle", handle,
+ "xmpp-connection-manager", xcm,
+ "initiator-handle", handle,
+ "state", state,
+ "filename", ft->filename,
+ "size", gibber_file_transfer_get_size (ft),
+ "description", ft->description,
+ "content-type", ft->content_type,
+ NULL);
+
+ chan->priv->ft = ft;
+
+ g_signal_connect (ft, "error", G_CALLBACK (error_cb), chan);
+
+ return chan;
+}
diff --git a/src/salut-file-transfer-channel.h b/src/salut-file-transfer-channel.h
index 075f2cb..b569ae5 100644
--- a/src/salut-file-transfer-channel.h
+++ b/src/salut-file-transfer-channel.h
@@ -71,10 +71,6 @@ GType salut_file_transfer_channel_get_type (void);
(G_TYPE_INSTANCE_GET_CLASS ((obj), SALUT_TYPE_FILE_TRANSFER_CHANNEL, \
SalutFileTransferChannelClass))
-gboolean salut_file_transfer_channel_received_file_offer (
- SalutFileTransferChannel *self, GibberXmppStanza *stanza,
- GibberXmppConnection *conn, SalutContact *contact);
-
gboolean salut_file_transfer_channel_offer_file (SalutFileTransferChannel *self,
GError **error);
@@ -83,6 +79,12 @@ SalutFileTransferChannel * salut_file_transfer_channel_new (
TpHandle handle, SalutXmppConnectionManager *xcm, TpHandle initiator_handle,
TpFileTransferState state);
+SalutFileTransferChannel * salut_file_transfer_channel_new_from_stanza (
+ SalutConnection *connection, SalutContact *contact, const gchar *path,
+ TpHandle handle, SalutXmppConnectionManager *xcm,
+ TpFileTransferState state, GibberXmppStanza *stanza,
+ GibberXmppConnection *conn);
+
G_END_DECLS
#endif /* #ifndef __SALUT_FILE_TRANSFER_CHANNEL_H__*/
diff --git a/src/salut-ft-manager.c b/src/salut-ft-manager.c
index b90c7b7..4d53920 100644
--- a/src/salut-ft-manager.c
+++ b/src/salut-ft-manager.c
@@ -131,17 +131,9 @@ message_stanza_callback (SalutXmppConnectionManager *mgr,
path = generate_object_path (self, handle);
- chan = salut_file_transfer_channel_new (priv->connection, contact, path,
- handle, priv->xmpp_connection_manager, handle,
- TP_FILE_TRANSFER_STATE_PENDING);
-
- /* This will set the extra properties on the ft channel */
- if (salut_file_transfer_channel_received_file_offer (chan, stanza, conn,
- contact))
- {
- tp_channel_manager_emit_new_channel (self, TP_EXPORTABLE_CHANNEL (chan),
- NULL);
- }
+ chan = salut_file_transfer_channel_new_from_stanza (priv->connection,
+ contact, path, handle, priv->xmpp_connection_manager,
+ TP_FILE_TRANSFER_STATE_PENDING, stanza, conn);
salut_ft_manager_channel_created (self, chan, NULL);
--
1.5.6.5
More information about the telepathy-commits
mailing list