[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