Author: ArcRiley Date: 2009-02-26 02:13:59 -0500 (Thu, 26 Feb 2009) New Revision: 1522
Modified: trunk/concordance/include/concordance.h trunk/concordance/include/concordance.sockets.h trunk/concordance/src/sockets/Client.c trunk/concordance/src/utils.c Log: added session key generation Modified: trunk/concordance/include/concordance.h =================================================================== --- trunk/concordance/include/concordance.h 2009-02-26 02:25:06 UTC (rev 1521) +++ trunk/concordance/include/concordance.h 2009-02-26 07:13:59 UTC (rev 1522) @@ -40,6 +40,7 @@ gchar* concordFindAttr (const gchar** attrs, const gchar* key); gchar* concordPyUnicodeToUTF8 (PyObject* unicode); gboolean concordStrToUI (const gchar* string, guint* result); +void concordRandKey (gchar* key); typedef struct { GMainContext* context; /* Concordance's Glib context */ Modified: trunk/concordance/include/concordance.sockets.h =================================================================== --- trunk/concordance/include/concordance.sockets.h 2009-02-26 02:25:06 UTC (rev 1521) +++ trunk/concordance/include/concordance.sockets.h 2009-02-26 07:13:59 UTC (rev 1522) @@ -68,6 +68,7 @@ Gsasl_session* sctx; /* gsasl session context */ XML_Parser pars; /* expat parser for this session */ gchar host[256]; /* verified hostname or NULL */ + gchar skey[16]; /* session key (stream id="") */ concordVersion vers; /* XMPP major.minor version */ gboolean tls; /* flag for whether tls is enabled */ gint state; /* current session state */ Modified: trunk/concordance/src/sockets/Client.c =================================================================== --- trunk/concordance/src/sockets/Client.c 2009-02-26 02:25:06 UTC (rev 1521) +++ trunk/concordance/src/sockets/Client.c 2009-02-26 07:13:59 UTC (rev 1522) @@ -350,7 +350,8 @@ gchar** versions; gchar* error = NULL; - + /* generate random session key */ + concordRandKey(session->skey); /* initialize response buffer @@ -369,7 +370,7 @@ "<stream:stream xmlns='jabber:client'" " xmlns:stream='http://etherx.jabber.org/streams'" " from='%s' id='%s'", - "selket.apogean.org", "concordance-1"); + "selket.apogean.org", session->skey); /* Parse version: * NULL is passed, meaning the version attribute was not found, so: Modified: trunk/concordance/src/utils.c =================================================================== --- trunk/concordance/src/utils.c 2009-02-26 02:25:06 UTC (rev 1521) +++ trunk/concordance/src/utils.c 2009-02-26 07:13:59 UTC (rev 1522) @@ -121,3 +121,20 @@ *result = r; return TRUE; } + +void +concordRandKey(gchar* key) { /*\ + cdef : \*/ + gint i; + gchar map[] = "0123456789ABCDEFGHIJKLMNOPQRSTUV"; + + for (i = 0; i<15; i += 1) { + /* generate a 5-bit random int and map it to an alphanumeric value + + gint32 g_random_int_range (gint32 begin, + gint32 end); + */ + key[i] = map[g_random_int_range(0,32)]; + } + key[15] = 0; +} _______________________________________________ PySoy-SVN mailing list PySoy-SVN@pysoy.org http://www.pysoy.org/mailman/listinfo/pysoy-svn