Author: DavidCzech
Date: 2009-01-13 23:33:04 -0500 (Tue, 13 Jan 2009)
New Revision: 1478

Modified:
   trunk/concordance/src/Session.c
   trunk/concordance/src/utils.c
Log:
Version checking

Modified: trunk/concordance/src/Session.c
===================================================================
--- trunk/concordance/src/Session.c     2009-01-14 04:26:43 UTC (rev 1477)
+++ trunk/concordance/src/Session.c     2009-01-14 04:33:04 UTC (rev 1478)
@@ -534,12 +534,13 @@
            in the concordCore_sessionRead just after the XMLParse call (above).
         */
         if (g_ascii_strcasecmp(name,
-                               "http://etherx.jabber.org/streams stream") == 0)
+                               "http://etherx.jabber.org/streams stream") == 
0){
+          int major, minor = 0;
           /* need to test version and other important attributes
-
-
           */
-          concordSession_reply_stream(session);
+          
conSession_getVersion(concordSearchAttributes(atts,"version"),&major,&minor);
+          printf("Major %d Minor %d\n",major,minor);
+          concordSession_reply_stream(session);}
         else
           session->state = CONCORD_E_CLOSE;
         break;

Modified: trunk/concordance/src/utils.c
===================================================================
--- trunk/concordance/src/utils.c       2009-01-14 04:26:43 UTC (rev 1477)
+++ trunk/concordance/src/utils.c       2009-01-14 04:33:04 UTC (rev 1478)
@@ -175,3 +175,27 @@
   printf("returning %i\n", r);
   return TRUE;
 }
+
+gchar* 
+conSession_getVersion(gchar * version,int * major, int * minor) {
+  //cdef :
+  gchar ** versions; 
+  if (g_strrstr(version,".")!=NULL) {
+    versions = g_strsplit(version,".",2); // Separate Major from minor
+    if (g_strv_length(versions) >= 2){  
+        printf("versions[0], %s, versions[1], %s\n",versions[0],versions[1]);
+        if (!concordStrToUI(versions[0], major))  {printf("Error on major\n"); 
return "version ='0.0'";}
+        if (!concordStrToUI(versions[1], minor))  {printf("Error on minor\n"); 
return "version ='0.0'";}
+        if ((*major) < 1) // Unsupported version
+          return "version='0.0'"; 
+        else if (((*major) == 1) && ((*minor) == 0))// Only 1.0 is supported 
+          return "version='1.0'";
+    }
+  }
+  // else (because it should have returned above)
+  (*major) = 0;
+  (*minor) = 0;
+  g_strfreev(versions);
+  return "version = '0.0'";
+ 
+}

_______________________________________________
PySoy-SVN mailing list
PySoy-SVN@pysoy.org
http://www.pysoy.org/mailman/listinfo/pysoy-svn

Reply via email to