--- a/libpurple/protocols/mxit/protocol.c Fri Jan 07 21:51:05 2011 +0000
+++ b/libpurple/protocols/mxit/protocol.c Fri Jan 07 22:20:18 2011 +0000
@@ -747,7 +747,7 @@
* @param session The MXit session object
* @param username Username who's profile is being requested (NULL = our own)
* @param nr_attribs Number of attributes being requested
- * @param attributes The names of the attributes
+ * @param attribute The names of the attributes void mxit_send_extprofile_request( struct MXitSession* session, const char* username, unsigned int nr_attrib, const char* attribute[] )
@@ -757,7 +757,8 @@
datalen = snprintf( data, sizeof( data ),
"ms=%s%c%i", /* "ms="mxitid\1nr_attributes */
- (username ? username : ""), CP_FLD_TERM, nr_attrib);
+ ( username ? username : "" ), CP_FLD_TERM, nr_attrib for ( i = 0; i < nr_attrib; i++ )
@@ -805,6 +806,63 @@
/*------------------------------------------------------------------------
+ * Send packet to request list of suggested friends. + * @param session The MXit session object + * @param max Maximum number of results to return + * @param nr_attribs Number of attributes being requested + * @param attribute The names of the attributes +void mxit_send_suggest_friends( struct MXitSession* session, int max, unsigned int nr_attrib, const char* attribute[] ) + char data[CP_MAX_PACKET]; + /* convert the packet to a byte stream */ + datalen = snprintf( data, sizeof( data ), + "ms=%i%c%s%c%i%c%i", /* inputType \1 input \ 1 maxSuggestions \1 numAttributes \1 name0 ... \1 nameN */ + CP_SUGGEST_FRIENDS, CP_FLD_TERM, "", CP_FLD_TERM, max, CP_FLD_TERM, nr_attrib ); + for ( i = 0; i < nr_attrib; i++ ) + datalen += sprintf( data + datalen, "%c%s", CP_FLD_TERM, attribute[i] ); + /* queue packet for transmission */ + mxit_queue_packet( session, data, datalen, CP_CMD_EXTPROFILE_GET ); +/*------------------------------------------------------------------------ + * Send packet to perform a search for users. + * @param session The MXit session object + * @param max Maximum number of results to return + * @param text The search text + * @param nr_attribs Number of attributes being requested + * @param attribute The names of the attributes +void mxit_send_suggest_search( struct MXitSession* session, int max, const char* text, unsigned int nr_attrib, const char* attribute[] ) + char data[CP_MAX_PACKET]; + /* convert the packet to a byte stream */ + datalen = snprintf( data, sizeof( data ), + "ms=%i%c%s%c%i%c%i", /* inputType \1 input \ 1 maxSuggestions \1 numAttributes \1 name0 ... \1 nameN */ + CP_SUGGEST_SEARCH, CP_FLD_TERM, text, CP_FLD_TERM, max, CP_FLD_TERM, nr_attrib ); + for ( i = 0; i < nr_attrib; i++ ) + datalen += sprintf( data + datalen, "%c%s", CP_FLD_TERM, attribute[i] ); + /* queue packet for transmission */ + mxit_queue_packet( session, data, datalen, CP_CMD_EXTPROFILE_GET ); +/*------------------------------------------------------------------------ * Send a presence update packet to the MXit server.
* @param session The MXit session object
--- a/libpurple/protocols/mxit/protocol.h Fri Jan 07 21:51:05 2011 +0000
+++ b/libpurple/protocols/mxit/protocol.h Fri Jan 07 22:20:18 2011 +0000
@@ -127,6 +127,7 @@
#define CP_CMD_TX_MSG 0x000A /* (10) send new message */
#define CP_CMD_REGISTER 0x000B /* (11) register */
//#define CP_CMD_PROFILE_SET 0x000C /* (12) set profile (DEPRECATED see CP_CMD_EXTPROFILE_SET) */
+#define CP_CMD_SUGGESTCONTACTS 0x000D /* (13) suggest contacts */ #define CP_CMD_POLL 0x0011 /* (17) poll the HTTP server for an update */
//#define CP_CMD_PROFILE_GET 0x001A /* (26) get profile (DEPRECATED see CP_CMD_EXTPROFILE_GET) */
#define CP_CMD_MEDIA 0x001B /* (27) get multimedia message */
@@ -204,6 +205,12 @@
#define CP_PROF_DOBLOCKED 0x40 /* date-of-birth cannot be changed */
+#define CP_SUGGEST_ADDRESSBOOK 0 /* address book search */ +#define CP_SUGGEST_FRIENDS 1 /* suggested friends */ +#define CP_SUGGEST_SEARCH 2 /* free-text search */ +#define CP_SUGGEST_MXITID 4 /* MXitId search */ /* define this to enable protocol debugging (very verbose logging) */
@@ -295,6 +302,9 @@
void mxit_send_extprofile_update( struct MXitSession* session, const char* password, unsigned int nr_attrib, const char* attributes );
void mxit_send_extprofile_request( struct MXitSession* session, const char* username, unsigned int nr_attrib, const char* attribute[] );
+void mxit_send_suggest_friends( struct MXitSession* session, int max, unsigned int nr_attrib, const char* attribute[] ); +void mxit_send_suggest_search( struct MXitSession* session, int max, const char* text, unsigned int nr_attrib, const char* attribute[] ); void mxit_send_invite( struct MXitSession* session, const char* username, const char* alias, const char* groupname );
void mxit_send_remove( struct MXitSession* session, const char* username );
void mxit_send_allow_sub( struct MXitSession* session, const char* username, const char* alias );