summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMa Yuan <mayuan2006@gmail.com>2006-08-10 15:43:55 +0000
committerMa Yuan <mayuan2006@gmail.com>2006-08-10 15:43:55 +0000
commitc473cbbb1e5ed0e2ba883aa09f631c91e57498f6 (patch)
treebf4dc190fa285dc1f49ff47a5e17e79ac84e5015
parent2ef78afd7338700a6ab87ca613aa140d2684f17a (diff)
downloadpidgin-c473cbbb1e5ed0e2ba883aa09f631c91e57498f6.tar.gz
[gaim-migrate @ 16685]
add delte group SOAP operation code ok committed by MaYuan<mayuan2006@gmail.com> committer: Ethan Blanton <elb@pidgin.im>
-rw-r--r--src/protocols/msn/contact.c42
-rw-r--r--src/protocols/msn/contact.h7
-rw-r--r--src/protocols/msn/msn.c1
-rw-r--r--src/protocols/msn/notification.c9
-rw-r--r--src/protocols/msn/userlist.c2
5 files changed, 52 insertions, 9 deletions
diff --git a/src/protocols/msn/contact.c b/src/protocols/msn/contact.c
index e49888aab7..606506cbc9 100644
--- a/src/protocols/msn/contact.c
+++ b/src/protocols/msn/contact.c
@@ -495,27 +495,59 @@ msn_get_gleams(MsnContact *contact)
msn_soap_post(contact->soapconn,MSN_GLEAMS_TEMPLATE,msn_address_written_cb);
}
+/***************************************************************
+ * Group Operation
+ ***************************************************************/
+static void
+msn_group_read_cb(gpointer data, gint source, GaimInputCondition cond)
+{
+ gaim_debug_info("MaYuan","Group read \n");
+}
+
+static void
+msn_group_written_cb(gpointer data, gint source, GaimInputCondition cond)
+{
+ MsnSoapConn * soapconn = data;
+
+ gaim_debug_info("MaYuan","finish Group written\n");
+ soapconn->read_cb = msn_group_read_cb;
+ msn_soap_read_cb(data,source,cond);
+}
+
/*add group*/
-void msn_add_group(MsnContact *contact,const char* group_name)
+void msn_add_group(MsnSession *session,const char* group_name)
{
+ char *body = NULL;
+ MsnContact *contact ;
+
+ g_return_if_fail(session != NULL);
+ contact = session->contact;
gaim_debug_info("MaYuan","msn add group...\n");
+ body = g_strdup_printf(MSN_GROUP_ADD_TEMPLATE,group_name);
/*build SOAP and POST it*/
contact->soapconn->login_path = g_strdup(MSN_ADDRESS_BOOK_POST_URL);
contact->soapconn->soap_action = g_strdup(MSN_GROUP_ADD_SOAP_ACTION);
- msn_soap_post(contact->soapconn,MSN_GROUP_ADD_TEMPLATE,msn_address_written_cb);
+ msn_soap_post(contact->soapconn,body,msn_group_written_cb);
+ g_free(body);
}
/*delete a group*/
-void msn_del_group(MsnContact *contact,const char *guid)
+void msn_del_group(MsnSession *session,const char *guid)
{
+ MsnContact *contact;
+ char *body = NULL;
+
+ g_return_if_fail(session != NULL);
+ contact = session->contact;
gaim_debug_info("MaYuan","msn del group...\n");
+ body = g_strdup_printf(MSN_GROUP_DEL_TEMPLATE,guid);
/*build SOAP and POST it*/
contact->soapconn->login_path = g_strdup(MSN_ADDRESS_BOOK_POST_URL);
contact->soapconn->soap_action = g_strdup(MSN_GROUP_DEL_SOAP_ACTION);
- msn_soap_post(contact->soapconn,MSN_GROUP_DEL_TEMPLATE,msn_address_written_cb);
-
+ msn_soap_post(contact->soapconn,body,msn_group_written_cb);
+ g_free(body);
}
void
diff --git a/src/protocols/msn/contact.h b/src/protocols/msn/contact.h
index ecd7412889..6c7827a113 100644
--- a/src/protocols/msn/contact.h
+++ b/src/protocols/msn/contact.h
@@ -158,7 +158,9 @@ struct _MsnContact
MsnSoapConn *soapconn;
};
-/*function prototype*/
+/************************************************
+ * function prototype
+ ************************************************/
MsnContact * msn_contact_new(MsnSession *session);
void msn_contact_destroy(MsnContact *contact);
@@ -166,5 +168,8 @@ void msn_contact_connect(MsnContact *contact);
void msn_get_contact_list(MsnContact * contact);
void msn_get_address_book(MsnContact *contact);
+/*group operation*/
+void msn_add_group(MsnSession *session,const char* group_name);
+void msn_del_group(MsnSession *session,const char *guid);
#endif/* _MSN_CMDPROC_H_*/
diff --git a/src/protocols/msn/msn.c b/src/protocols/msn/msn.c
index 922c154b53..06cbc1f15b 100644
--- a/src/protocols/msn/msn.c
+++ b/src/protocols/msn/msn.c
@@ -1268,6 +1268,7 @@ msn_rename_group(GaimConnection *gc, const char *old_name,
cmdproc = session->notification->cmdproc;
enc_new_group_name = gaim_url_encode(group->name);
+ gaim_debug_info("MaYuan","rename group:old{%s},new{%s}",old_name,enc_new_group_name);
old_gid = msn_userlist_find_group_id(session->userlist, old_name);
if (old_gid != NULL){
diff --git a/src/protocols/msn/notification.c b/src/protocols/msn/notification.c
index dede9136ec..d481d555f6 100644
--- a/src/protocols/msn/notification.c
+++ b/src/protocols/msn/notification.c
@@ -301,7 +301,7 @@ ver_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
g_snprintf(proto_str, sizeof(proto_str), "MSNP%d", session->protocol_ver);
for (i = 1; i < cmd->param_count -1; i++){
- gaim_debug_info("MaYuan","%s\,proto_str:%s\n",cmd->params[i],proto_str);
+ gaim_debug_info("MaYuan","%s,proto_str:%s\n",cmd->params[i],proto_str);
if (strcmp(cmd->params[i], proto_str) >= 0) {
protocol_supported = TRUE;
break;
@@ -531,11 +531,14 @@ rml_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
MsnTransaction *trans;
char * payload;
+ gaim_debug_info("MaYuan","Process ADL\n");
+#if 0
trans = msn_transaction_new(cmdproc, "RML","");
msn_transaction_set_payload(trans, payload, strlen(payload));
msn_cmdproc_send_trans(cmdproc, trans);
+#endif
}
static void
@@ -1414,6 +1417,8 @@ initial_mdata_msg(MsnCmdProc *cmdproc, MsnMessage *msg)
}
g_strfreev(elems);
+/* test code for add group*/
+// msn_add_group(session,"hello");
}
static void
@@ -1591,7 +1596,7 @@ msn_notification_init(void)
msn_table_add_cmd(cbs_table, NULL, "NOT", not_cmd);
msn_table_add_cmd(cbs_table, NULL, "CHL", chl_cmd);
- msn_table_add_cmd(cbs_table, NULL, "REM", rem_cmd);
+ msn_table_add_cmd(cbs_table, NULL, "RML", rml_cmd);
msn_table_add_cmd(cbs_table, NULL, "ADL", adl_cmd);
msn_table_add_cmd(cbs_table, NULL, "QRY", NULL);
diff --git a/src/protocols/msn/userlist.c b/src/protocols/msn/userlist.c
index 2fe530232d..11f736c21e 100644
--- a/src/protocols/msn/userlist.c
+++ b/src/protocols/msn/userlist.c
@@ -187,7 +187,6 @@ msn_request_add_group(MsnUserList *userlist, const char *who,
const char *old_group_name, const char *new_group_name)
{
MsnCmdProc *cmdproc;
-// MsnTransaction *trans;
MsnMoveBuddy *data;
cmdproc = userlist->session->notification->cmdproc;
@@ -199,6 +198,7 @@ msn_request_add_group(MsnUserList *userlist, const char *who,
data->old_group_name = g_strdup(old_group_name);
/*TODO:add new group via SOAP action*/
+
}
/**************************************************************************