static void gibber_file_transfer_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { GibberFileTransfer *self = GIBBER_FILE_TRANSFER (object); switch (property_id) { case PROP_ID: self->id = g_value_dup_string (value); if (self->id == NULL) self->id = generate_id (); break; case PROP_SELF_ID: self->self_id = g_value_dup_string (value); if (self->self_id == NULL) g_critical ("'self-id' cannot be NULL"); break; case PROP_PEER_ID: self->peer_id = g_value_dup_string (value); if (self->peer_id == NULL) g_critical ("'peer-id' cannot be NULL"); break; case PROP_FILENAME: self->filename = g_value_dup_string (value); break; case PROP_DIRECTION: self->direction = g_value_get_uint (value); break; case PROP_PORTER: { self->priv->porter = g_value_dup_object (value); self->priv->stanza_id = wocky_porter_register_handler_from_anyone (self->priv->porter, WOCKY_STANZA_TYPE_IQ, WOCKY_STANZA_SUB_TYPE_NONE, WOCKY_PORTER_HANDLER_PRIORITY_NORMAL, received_stanza_cb, self, NULL); } break; case PROP_CONTACT: self->priv->contact = g_value_dup_object (value); break; case PROP_DESCRIPTION: self->description = g_value_dup_string (value); break; case PROP_CONTENT_TYPE: self->content_type = g_value_dup_string (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
static void porter_available_cb ( GabbleConnection *conn, WockyPorter *porter, gpointer user_data) { GabbleImFactory *self = GABBLE_IM_FACTORY (user_data); gchar *stream_server; DEBUG ("adding callbacks"); self->priv->message_cb_id = wocky_porter_register_handler_from_anyone (porter, WOCKY_STANZA_TYPE_MESSAGE, WOCKY_STANZA_SUB_TYPE_NONE, WOCKY_PORTER_HANDLER_PRIORITY_MIN, im_factory_message_cb, self, NULL); self->priv->delivery_report_cb_id = wocky_porter_register_handler_from_anyone (porter, WOCKY_STANZA_TYPE_MESSAGE, WOCKY_STANZA_SUB_TYPE_NONE, WOCKY_PORTER_HANDLER_PRIORITY_MIN, im_factory_receipt_cb, self, '(', "received", ':', NS_RECEIPTS, ')', NULL); g_object_get (conn, "stream-server", &stream_server, NULL); if (!tp_strdiff (stream_server, "chat.facebook.com")) { wocky_porter_register_handler_from ( porter, WOCKY_STANZA_TYPE_IQ, WOCKY_STANZA_SUB_TYPE_SET, /* We could use _from_server() if that accepted messages from our * JID's domain, not just from bare JID, full JID, or no sender * specified—which would allow the extension to work on other servers * too—but it doesn't. */ stream_server, WOCKY_PORTER_HANDLER_PRIORITY_NORMAL, im_factory_own_message_cb, self, '(', "own-message", ':', NS_FACEBOOK_MESSAGES, '(', "body", ')', ')', NULL); } g_free (stream_server); }
static void attach_to_wocky_session (GabbleJingleFactory *self) { GabbleJingleFactoryPrivate *priv = self->priv; g_assert (priv->session != NULL); g_assert (priv->porter == NULL); priv->porter = g_object_ref (wocky_session_get_porter (priv->session)); /* TODO: we could match different dialects here maybe? */ priv->jingle_handler_id = wocky_porter_register_handler_from_anyone ( priv->porter, WOCKY_STANZA_TYPE_IQ, WOCKY_STANZA_SUB_TYPE_SET, WOCKY_PORTER_HANDLER_PRIORITY_NORMAL, jingle_cb, self, NULL); priv->jingle_info = gabble_jingle_info_new (priv->porter); }