pidgin.mxit: a9967d17: * Send the MXit Client version as the li...
andrew.victor at mxit.com
andrew.victor at mxit.com
Wed Jan 26 04:25:41 EST 2011
----------------------------------------------------------------------
Revision: a9967d17d0334c686954bcdf5464ea7143fdce98
Parent: 753a08d80ac13d59fd47a14eff531df16c30d489
Author: andrew.victor at mxit.com
Date: 01/26/11 04:22:39
Branch: im.pidgin.pidgin.mxit
URL: http://d.pidgin.im/viewmtn/revision/info/a9967d17d0334c686954bcdf5464ea7143fdce98
Changelog:
* Send the MXit Client version as the libpurple version rather than always "5.9.0".
* Also use MXit protocol v6 when registering.
Changes against parent 753a08d80ac13d59fd47a14eff531df16c30d489
patched libpurple/protocols/mxit/login.c
patched libpurple/protocols/mxit/protocol.c
patched libpurple/protocols/mxit/protocol.h
-------------- next part --------------
============================================================
--- libpurple/protocols/mxit/login.c 380c6764f0771bf5fee27320a985014bcd0dfd7e
+++ libpurple/protocols/mxit/login.c bddcdbb3c9fb41225d192112696a6013ad4c966d
@@ -547,8 +547,8 @@ static void mxit_cb_captcha_ok( PurpleCo
/* get state */
state = purple_account_get_int( session->acc, MXIT_CONFIG_STATE, MXIT_STATE_LOGIN );
- url = g_strdup_printf( "%s?type=getpid&sessionid=%s&login=%s&ver=%s&clientid=%s&cat=%s&chalresp=%s&cc=%s&loc=%s&path=%i&brand=%s&model=%s&h=%i&w=%i&ts=%li",
- session->logindata->wapserver, session->logindata->sessionid, purple_url_encode( session->acc->username ), MXIT_CP_RELEASE, MXIT_CLIENT_ID, MXIT_CP_ARCH,
+ url = g_strdup_printf( "%s?type=getpid&sessionid=%s&login=%s&ver=%i.%i.%i&clientid=%s&cat=%s&chalresp=%s&cc=%s&loc=%s&path=%i&brand=%s&model=%s&h=%i&w=%i&ts=%li",
+ session->logindata->wapserver, session->logindata->sessionid, purple_url_encode( session->acc->username ), PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, PURPLE_MICRO_VERSION, MXIT_CLIENT_ID, MXIT_CP_ARCH,
captcha_resp, session->logindata->cc, session->logindata->locale, ( state == MXIT_STATE_REGISTER1 ) ? 0 : 1, MXIT_CP_PLATFORM, MXIT_CP_OS,
MXIT_CAPTCHA_HEIGHT, MXIT_CAPTCHA_WIDTH, time( NULL ) );
url_data = purple_util_fetch_url_request( url, TRUE, MXIT_HTTP_USERAGENT, TRUE, NULL, FALSE, mxit_cb_clientinfo2, session );
============================================================
--- libpurple/protocols/mxit/protocol.c 70feb212e0805fa8321a7dd416141a88802f6b89
+++ libpurple/protocols/mxit/protocol.c b7f1d65db1173aefe60880cdfe7d437e248a1e2e
@@ -639,6 +639,7 @@ void mxit_send_register( struct MXitSess
const char* locale;
char data[CP_MAX_PACKET];
int datalen;
+ char* clientVersion;
unsigned int features = MXIT_CP_FEATURES;
locale = purple_account_get_string( session->acc, MXIT_CONFIG_LOCALE, MXIT_DEFAULT_LOCALE );
@@ -649,18 +650,25 @@ void mxit_send_register( struct MXitSess
else if (mxit_audio_enabled())
features |= MXIT_CF_VOICE;
+ /* generate client version string (eg, P-2.7.10-Y-PURPLE) */
+ clientVersion = g_strdup_printf( "%c-%i.%i.%i-%s-%s", MXIT_CP_DISTCODE, PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, PURPLE_MICRO_VERSION, MXIT_CP_ARCH, MXIT_CP_PLATFORM );
+
/* convert the packet to a byte stream */
datalen = snprintf( data, sizeof( data ),
"ms=%s%c%s%c%i%c%s%c" /* "ms"=password\1version\1maxreplyLen\1name\1 */
"%s%c%i%c%s%c%s%c" /* dateOfBirth\1gender\1location\1capabilities\1 */
- "%s%c%i%c%s%c%s", /* dc\1features\1dialingcode\1locale */
- session->encpwd, CP_FLD_TERM, MXIT_CP_VERSION, CP_FLD_TERM, CP_MAX_FILESIZE, CP_FLD_TERM, profile->nickname, CP_FLD_TERM,
+ "%s%c%i%c%s%c%s" /* dc\1features\1dialingcode\1locale */
+ "%c%i%c%i", /* \1protocolVer\1lastRosterUpdate */
+ session->encpwd, CP_FLD_TERM, clientVersion, CP_FLD_TERM, CP_MAX_FILESIZE, CP_FLD_TERM, profile->nickname, CP_FLD_TERM,
profile->birthday, CP_FLD_TERM, ( profile->male ) ? 1 : 0, CP_FLD_TERM, MXIT_DEFAULT_LOC, CP_FLD_TERM, MXIT_CP_CAP, CP_FLD_TERM,
- session->distcode, CP_FLD_TERM, features, CP_FLD_TERM, session->dialcode, CP_FLD_TERM, locale
+ session->distcode, CP_FLD_TERM, features, CP_FLD_TERM, session->dialcode, CP_FLD_TERM, locale,
+ CP_FLD_TERM, MXIT_CP_PROTO_VESION, CP_FLD_TERM, 0
);
/* queue packet for transmission */
mxit_queue_packet( session, data, datalen, CP_CMD_REGISTER );
+
+ g_free( clientVersion );
}
@@ -675,6 +683,7 @@ void mxit_send_login( struct MXitSession
const char* locale;
char data[CP_MAX_PACKET];
int datalen;
+ char* clientVersion;
unsigned int features = MXIT_CP_FEATURES;
locale = purple_account_get_string( session->acc, MXIT_CONFIG_LOCALE, MXIT_DEFAULT_LOCALE );
@@ -685,13 +694,16 @@ void mxit_send_login( struct MXitSession
else if (mxit_audio_enabled())
features |= MXIT_CF_VOICE;
+ /* generate client version string (eg, P-2.7.10-Y-PURPLE) */
+ clientVersion = g_strdup_printf( "%c-%i.%i.%i-%s-%s", MXIT_CP_DISTCODE, PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, PURPLE_MICRO_VERSION, MXIT_CP_ARCH, MXIT_CP_PLATFORM );
+
/* convert the packet to a byte stream */
datalen = snprintf( data, sizeof( data ),
"ms=%s%c%s%c%i%c" /* "ms"=password\1version\1getContacts\1 */
"%s%c%s%c%i%c" /* capabilities\1dc\1features\1 */
"%s%c%s%c" /* dialingcode\1locale\1 */
"%i%c%i%c%i", /* maxReplyLen\1protocolVer\1lastRosterUpdate */
- session->encpwd, CP_FLD_TERM, MXIT_CP_VERSION, CP_FLD_TERM, 1, CP_FLD_TERM,
+ session->encpwd, CP_FLD_TERM, clientVersion, CP_FLD_TERM, 1, CP_FLD_TERM,
MXIT_CP_CAP, CP_FLD_TERM, session->distcode, CP_FLD_TERM, features, CP_FLD_TERM,
session->dialcode, CP_FLD_TERM, locale, CP_FLD_TERM,
CP_MAX_FILESIZE, CP_FLD_TERM, MXIT_CP_PROTO_VESION, CP_FLD_TERM, 0
@@ -704,6 +716,8 @@ void mxit_send_login( struct MXitSession
/* queue packet for transmission */
mxit_queue_packet( session, data, datalen, CP_CMD_LOGIN );
+
+ g_free( clientVersion );
}
============================================================
--- libpurple/protocols/mxit/protocol.h 2bb24a27aed68c0359a39cb1965064541a5ff5f9
+++ libpurple/protocols/mxit/protocol.h 957abd9e0c5b3b161acbab0544cce1ae10986b86
@@ -86,12 +86,10 @@
#define MXIT_ACK_TIMEOUT ( 30 ) /* timeout after waiting X seconds for an ack from the server (30 seconds) */
/* MXit client version */
-#define MXIT_CP_DISTCODE "P" /* client distribution code (magic, do not touch!) */
-#define MXIT_CP_RELEASE "5.9.0" /* client version */
+#define MXIT_CP_DISTCODE 'P' /* client distribution code (magic, do not touch!) */
#define MXIT_CP_ARCH "Y" /* client architecture series (Y not for Yoda but for PC-client) */
#define MXIT_CLIENT_ID "LP" /* client ID as specified by MXit */
#define MXIT_CP_PLATFORM "PURPLE" /* client platform */
-#define MXIT_CP_VERSION MXIT_CP_DISTCODE"-"MXIT_CP_RELEASE"-"MXIT_CP_ARCH"-"MXIT_CP_PLATFORM
#define MXIT_CP_PROTO_VESION 60 /* client protocol version */
/* set operating system name */
More information about the Commits
mailing list