[telepathy-gabble/master] Add dialect_defines_action()

Will Thompson will.thompson at collabora.co.uk
Tue Jun 23 09:36:48 PDT 2009


All the older Jingle dialects define a subset of the actions we support,
which are all supported by modern Jingle.
---
 src/jingle-session.c |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/src/jingle-session.c b/src/jingle-session.c
index ce6b3d8..e654e8d 100644
--- a/src/jingle-session.c
+++ b/src/jingle-session.c
@@ -142,6 +142,32 @@ static JingleAction allowed_actions[MAX_JINGLE_STATES][MAX_ACTIONS_PER_STATE] =
   { JINGLE_ACTION_UNKNOWN }
 };
 
+static gboolean
+dialect_defines_action (JingleDialect d,
+    JingleAction a)
+{
+  if (a == JINGLE_ACTION_UNKNOWN)
+    return FALSE;
+
+  switch (d)
+    {
+      case JINGLE_DIALECT_V032:
+        return TRUE;
+      case JINGLE_DIALECT_V015:
+        return (a != JINGLE_ACTION_DESCRIPTION_INFO);
+      case JINGLE_DIALECT_GTALK4:
+        if (a == JINGLE_ACTION_SESSION_ACCEPT)
+          return TRUE;
+      case JINGLE_DIALECT_GTALK3:
+        return (a == JINGLE_ACTION_SESSION_ACCEPT ||
+            a == JINGLE_ACTION_SESSION_INITIATE ||
+            a == JINGLE_ACTION_SESSION_TERMINATE ||
+            a == JINGLE_ACTION_TRANSPORT_INFO);
+      default:
+        return FALSE;
+    }
+}
+
 static void gabble_jingle_session_send_held (GabbleJingleSession *sess);
 
 static void
-- 
1.5.6.5




More information about the telepathy-commits mailing list