[telepathy-gabble/master] Use _defines_action() more widely
Will Thompson
will.thompson at collabora.co.uk
Thu Jun 25 07:08:14 PDT 2009
---
src/jingle-content.c | 3 ++-
src/jingle-session.c | 10 ++++++----
src/jingle-session.h | 3 +++
3 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/src/jingle-content.c b/src/jingle-content.c
index b5afe9e..c367301 100644
--- a/src/jingle-content.c
+++ b/src/jingle-content.c
@@ -866,7 +866,8 @@ gabble_jingle_content_maybe_send_description (GabbleJingleContent *self)
if (priv->state < JINGLE_CONTENT_STATE_SENT)
return;
- if (gabble_jingle_session_get_dialect (self->session) == JINGLE_DIALECT_V032)
+ if (gabble_jingle_session_defines_action (self->session,
+ JINGLE_ACTION_DESCRIPTION_INFO))
{
LmMessageNode *sess_node;
LmMessage *msg = gabble_jingle_session_new_message (self->session,
diff --git a/src/jingle-session.c b/src/jingle-session.c
index 5e55309..3302ca8 100644
--- a/src/jingle-session.c
+++ b/src/jingle-session.c
@@ -142,10 +142,12 @@ static JingleAction allowed_actions[MAX_JINGLE_STATES][MAX_ACTIONS_PER_STATE] =
{ JINGLE_ACTION_UNKNOWN }
};
-static gboolean
-dialect_defines_action (JingleDialect d,
+gboolean
+gabble_jingle_session_defines_action (GabbleJingleSession *sess,
JingleAction a)
{
+ JingleDialect d = sess->priv->dialect;
+
if (a == JINGLE_ACTION_UNKNOWN)
return FALSE;
@@ -1540,7 +1542,7 @@ gabble_jingle_session_parse (GabbleJingleSession *sess, JingleAction action, LmM
contact_repo = tp_base_connection_get_handles (
(TpBaseConnection *) priv->conn, TP_HANDLE_TYPE_CONTACT);
- if (!dialect_defines_action (priv->dialect, action))
+ if (!gabble_jingle_session_defines_action (sess, action))
{
g_set_error (error, GABBLE_XMPP_ERROR, XMPP_ERROR_BAD_REQUEST,
"action '%s' unknown (using dialect %u)", action_name, priv->dialect);
@@ -2197,7 +2199,7 @@ gabble_jingle_session_send_rtp_info (GabbleJingleSession *sess,
LmMessage *message;
LmMessageNode *jingle, *notification;
- if (sess->priv->dialect != JINGLE_DIALECT_V032)
+ if (!gabble_jingle_session_defines_action (sess, JINGLE_ACTION_SESSION_INFO))
{
DEBUG ("Not sending <%s/>; not using modern Jingle", name);
return;
diff --git a/src/jingle-session.h b/src/jingle-session.h
index 545b576..7903be7 100644
--- a/src/jingle-session.h
+++ b/src/jingle-session.h
@@ -126,6 +126,9 @@ gboolean gabble_jingle_session_get_remote_hold (GabbleJingleSession *sess);
gboolean gabble_jingle_session_get_remote_ringing (GabbleJingleSession *sess);
+gboolean gabble_jingle_session_defines_action (GabbleJingleSession *sess,
+ JingleAction action);
+
/* Only to be used for the test suite */
void gabble_set_jingle_session_timeout (guint seconds);
--
1.5.6.5
More information about the telepathy-commits
mailing list