summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMa Yuan <mayuan2006@gmail.com>2006-08-26 13:03:11 +0000
committerMa Yuan <mayuan2006@gmail.com>2006-08-26 13:03:11 +0000
commit86932e2cf3e85552c95966027f557ee8f5edad14 (patch)
tree5ce7254e429adaade8dd546e106eb7438594a9f0
parent2925df1306d65dd391d10dd0d28dcd3ee12faa76 (diff)
downloadpidgin-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.c9
-rw-r--r--src/protocols/msn/msn-utils.c12
-rw-r--r--src/protocols/msn/msn-utils.h3
-rw-r--r--src/protocols/msn/msn.c2
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);