--- src/srvc_place.c 2005-12-02 18:00:29.000000000 -0800 +++ src/srvc_place.c 2012-08-21 19:39:32.000000000 -0700 #define PROTOCOL_TYPE 0x00
#define PROTOCOL_VER 0x05
+ As of Sametime ~v8.5, there's a slightly different group chat invite message. + This identifies the earliest server version using the new format. Currently, + it's set for 8.5.1. If other people are having issues, we'll need to decrease +#define NEW_FORMAT_SERVER_VER_MAJOR 0x001e +#define NEW_FORMAT_SERVER_VER_MINOR 0x213f +#define GUINT(val) (GPOINTER_TO_UINT((val))) msg_in_JOIN_RESPONSE = 0x0000, /* ? */
mwIdBlock_clear(&p->idb);
guint16_get(b, &pm->login_type);
guint32_get(b, &pm->unknown_a);
guint32_get(b, &pm->unknown_b);
+ /* TODO: Since the Notes upgrade, an extra name string is sent to + recv_SECTION_LIST(). It might be sent here, but since we're only + parsing one user, it probably doesn't matter here. */ if(srvc->handler && srvc->handler->peerJoined)
static int recv_SECTION_LIST(struct mwPlace *place,
+ int ret = 0, major, minor; + struct mwSession *session; + /* Check the server version to see if the message uses the new format */ + session = mwService_getSession(MW_SERVICE(place->service)); + major = GUINT(mwSession_getProperty(session, mwSession_SERVER_VER_MAJOR)); + minor = GUINT(mwSession_getProperty(session, mwSession_SERVER_VER_MINOR)); + newMsgFormat = (major == NEW_FORMAT_SERVER_VER_MAJOR + && minor >= NEW_FORMAT_SERVER_VER_MINOR) + || major > NEW_FORMAT_SERVER_VER_MAJOR; mwGetBuffer_advance(b, 4);
guint32_get(b, &m->unknown_a);
guint32_get(b, &m->unknown_b);
+ mwString_get(b, &m->extraname); void mwPlace_removeClientData(struct mwPlace *place) {
g_return_if_fail(place != NULL);
mw_datum_clear(&place->client_data);