diff options
author | Ma Yuan <mayuan2006@gmail.com> | 2006-08-26 13:03:11 +0000 |
---|---|---|
committer | Ma Yuan <mayuan2006@gmail.com> | 2006-08-26 13:03:11 +0000 |
commit | 86932e2cf3e85552c95966027f557ee8f5edad14 (patch) | |
tree | 5ce7254e429adaade8dd546e106eb7438594a9f0 | |
parent | 2925df1306d65dd391d10dd0d28dcd3ee12faa76 (diff) | |
download | pidgin-86932e2cf3e85552c95966027f557ee8f5edad14.tar.gz |
[gaim-migrate @ 17045]
add a MIME encode function,processing utf-8 and base64 encode
committed by MaYuan<mayuan2006@gmail.com>
committer: Ethan Blanton <elb@pidgin.im>
-rw-r--r-- | src/protocols/msn/contact.c | 9 | ||||
-rw-r--r-- | src/protocols/msn/msn-utils.c | 12 | ||||
-rw-r--r-- | src/protocols/msn/msn-utils.h | 3 | ||||
-rw-r--r-- | src/protocols/msn/msn.c | 2 |
4 files changed, 21 insertions, 5 deletions
diff --git a/src/protocols/msn/contact.c b/src/protocols/msn/contact.c index 8259bceb61..2f4b5a9ea6 100644 --- a/src/protocols/msn/contact.c +++ b/src/protocols/msn/contact.c @@ -430,10 +430,6 @@ msn_parse_addressbook(MsnContact * contact) xmlnode_free(node); msn_soap_free_read_buf(contact->soapconn); - - msn_notification_dump_contact(session); - msn_set_psm(session); - msn_session_finish_login(session); } static void @@ -450,6 +446,11 @@ msn_get_address_cb(gpointer data, gint source, GaimInputCondition cond) // gaim_debug_misc("msn", "soap contact server Reply: {%s}\n", soapconn->read_buf); msn_parse_addressbook(contact); + + msn_notification_dump_contact(session); + msn_set_psm(session); + msn_session_finish_login(session); + /*free the read buffer*/ msn_soap_free_read_buf(soapconn); } diff --git a/src/protocols/msn/msn-utils.c b/src/protocols/msn/msn-utils.c index 2e5045616d..2de045f191 100644 --- a/src/protocols/msn/msn-utils.c +++ b/src/protocols/msn/msn-utils.c @@ -146,6 +146,18 @@ msn_parse_format(const char *mime, char **pre_ret, char **post_ret) g_free(cur); } +/*encode the str to RFC2047 style + * Currently only support the UTF-8 and base64 encode + */ +char * +msn_encode_mime(char *str) +{ + char *base64; + + base64 = gaim_base64_encode(str,strlen(str)); + return g_strdup_printf("=?utf-8?B?%s?=",base64); +} + /* * We need this because we're only supposed to encode spaces in the font * names. gaim_url_encode() isn't acceptable. diff --git a/src/protocols/msn/msn-utils.h b/src/protocols/msn/msn-utils.h index d0cf4c3af3..491766529f 100644 --- a/src/protocols/msn/msn-utils.h +++ b/src/protocols/msn/msn-utils.h @@ -24,6 +24,9 @@ #ifndef _MSN_UTILS_H_ #define _MSN_UTILS_H_ +/*encode the str to RFC2047 style*/ +char * msn_encode_mime(char *str); + /** * Generate the Random GUID */ diff --git a/src/protocols/msn/msn.c b/src/protocols/msn/msn.c index 2ffca387d2..d58a6a341f 100644 --- a/src/protocols/msn/msn.c +++ b/src/protocols/msn/msn.c @@ -893,7 +893,7 @@ msn_send_im(GaimConnection *gc, const char *who, const char *message, gaim_debug_info("MaYuan","prepare to send offline Message\n"); session = gc->proto_data; oim = session->oim; - friendname = g_strdup_printf("=?utf-8?B?Y2xpZW50?="); + friendname = msn_encode_mime(account->username); msn_oim_prep_send_msg_info(oim, gaim_account_get_username(account),friendname,who, message); |