diff -r a4fa84588b37 -r ee0f62f4fcd4 src/protocols/sametime/sametime.c --- a/src/protocols/sametime/sametime.c Sun Dec 04 02:53:47 2005 +0000 +++ b/src/protocols/sametime/sametime.c Sun Dec 04 04:09:30 2005 +0000 @@ -148,6 +148,7 @@ #define MW_KEY_INVITE "conf_invite" #define MW_KEY_ENCODING "encoding" #define MW_KEY_FORCE "force_login" +#define MW_KEY_FAKE_IT "fake_client_id" /** number of seconds from the first blist change before a save to the @@ -341,7 +342,7 @@ static int mw_session_io_write(struct mwSession *session, - const char *buf, gsize len) { + const guchar *buf, gsize len) { struct mwGaimPluginData *pd; int ret = 0; @@ -1618,7 +1619,7 @@ pass it to the session, passing back the return code from the read call for handling in read_cb */ static int read_recv(struct mwSession *session, int sock) { - char buf[BUF_LEN]; + guchar buf[BUF_LEN]; int len; len = read(sock, buf, BUF_LEN); @@ -2106,7 +2107,7 @@ static void ft_send(struct mwFileTransfer *ft, FILE *fp) { - char buf[BUF_LONG]; + guchar buf[BUF_LONG]; struct mwOpaque o = { .data = buf, .len = BUF_LONG }; guint32 rem; GaimXfer *xfer; @@ -3645,7 +3646,7 @@ struct mwGaimPluginData *pd; char *user, *pass, *host; - guint port; + guint port, client; gc = gaim_account_get_connection(account); pd = mwGaimPluginData_new(gc); @@ -3685,8 +3686,15 @@ (char *) no_secret, NULL); mwSession_setProperty(pd->session, mwSession_AUTH_USER_ID, user, g_free); mwSession_setProperty(pd->session, mwSession_AUTH_PASSWORD, pass, NULL); + + client = MW_CLIENT_TYPE_ID; + if(gaim_account_get_bool(account, MW_KEY_FAKE_IT, FALSE)) + client = mwLogin_BINARY; + + DEBUG_INFO("client id: 0x%04x\n", client); + mwSession_setProperty(pd->session, mwSession_CLIENT_TYPE_ID, - GUINT_TO_POINTER(MW_CLIENT_TYPE_ID), NULL); + GUINT_TO_POINTER(client), NULL); gaim_connection_update_progress(gc, _("Connecting"), 1, MW_CONNECT_STEPS); @@ -4065,6 +4073,58 @@ } +static const char *mw_client_name(guint16 type) { + switch(type) { + case mwLogin_LIB: + return "Lotus Binary Library"; + + case mwLogin_JAVA_WEB: + return "Lotus Java Client Applet"; + + case mwLogin_BINARY: + return "Lotus Sametime Connect"; + + case mwLogin_JAVA_APP: + return "Lotus Java Client Application"; + + case mwLogin_LINKS: + return "Lotus Sametime Links"; + + case mwLogin_NOTES_6_5: + case mwLogin_NOTES_6_5_3: + case mwLogin_NOTES_7_0_beta: + case mwLogin_NOTES_7_0: + return "Lotus Notes Client"; + + case mwLogin_ICT: + case mwLogin_ICT_1_7_8_2: + case mwLogin_ICT_SIP: + return "IBM Community Tools"; + + case mwLogin_NOTESBUDDY_4_14: + case mwLogin_NOTESBUDDY_4_15: + case mwLogin_NOTESBUDDY_4_16: + return "Alphaworks NotesBuddy"; + + case mwLogin_SANITY: + return "Sanity"; + + case mwLogin_ST_PERL: + return "ST-Send-Message"; + + case mwLogin_TRILLIAN: + case mwLogin_TRILLIAN_IBM: + return "Trillian"; + + case mwLogin_MEANWHILE: + return "Meanwhile"; + + default: + return NULL; + } +} + + static void mw_prpl_get_info(GaimConnection *gc, const char *who) { struct mwAwareIdBlock idb = { mwAware_USER, (char *) who, NULL }; @@ -4104,7 +4164,7 @@ if(type) { g_string_append(str, _("Last Known Client: ")); - tmp = mwLoginType_getName(type); + tmp = mw_client_name(type); if(tmp) { g_string_append(str, tmp); g_string_append(str, "
"); @@ -5201,6 +5261,7 @@ }; +#if 0 static void status_msg_action_cb(GaimConnection *gc, GaimRequestFields *fields) { GaimAccount *acct; @@ -5234,7 +5295,6 @@ unit = mwStorageUnit_newString(mwStore_BUSY_MESSAGES, msg); mwServiceStorage_save(srvc, unit, NULL, NULL, NULL); -#if 0 /* XXX */ /* need to propagate the message change if we're in any of those default states */ @@ -5248,7 +5308,6 @@ } if(msg) serv_set_away(gc, msg, NULL); -#endif } @@ -5300,6 +5359,7 @@ _("Cancel"), NULL, gc); } +#endif static void st_import_action_cb(GaimConnection *gc, char *filename) { @@ -5608,9 +5668,11 @@ GaimPluginAction *act; GList *l = NULL; +#if 0 act = gaim_plugin_action_new(_("Set Status Messages..."), status_msg_action); l = g_list_append(l, act); +#endif act = gaim_plugin_action_new(_("Import Sametime List..."), st_import_action); @@ -5732,6 +5794,10 @@ l = g_list_append(l, opt); } + /* pretend to be Sametime Connect */ + opt = gaim_account_option_bool_new(_("Hide Client Identity"), + MW_KEY_FAKE_IT, FALSE); + mw_prpl_info.protocol_options = l; l = NULL;