Mercurial > pidgin
comparison libpurple/protocols/msn/contact.c @ 20774:d1e8f4d63f01
merge of '701fb7aea7a77b05725227038ec645441c76668c'
and '82ae4511a5006e8f04cd58e034b718deba69321a'
author | Carlos Silva <typ0@pidgin.im> |
---|---|
date | Thu, 04 Oct 2007 02:42:15 +0000 |
parents | 48ee7ec3426d dcb28d9939ee |
children | c40416c4eca6 6736c1168c50 e64e6fbd1351 |
comparison
equal
deleted
inserted
replaced
20769:712020cd7c8e | 20774:d1e8f4d63f01 |
---|---|
1022 msn_notification_send_fqy(soapconn->session, state->who); | 1022 msn_notification_send_fqy(soapconn->session, state->who); |
1023 | 1023 |
1024 user = msn_userlist_find_add_user(userlist, state->who, state->who); | 1024 user = msn_userlist_find_add_user(userlist, state->who, state->who); |
1025 msn_user_add_group_id(user, state->guid); | 1025 msn_user_add_group_id(user, state->guid); |
1026 | 1026 |
1027 if (msn_userlist_user_is_in_list(user, MSN_LIST_PL)) { | 1027 msn_soap_free_read_buf(soapconn); |
1028 msn_del_contact_from_list(soapconn->session->contact, NULL, state->who, MSN_LIST_PL); | |
1029 } else { | |
1030 msn_soap_free_read_buf(soapconn); | |
1031 } | |
1032 | |
1033 msn_callback_state_free(state); | 1028 msn_callback_state_free(state); |
1034 | 1029 |
1035 return TRUE; | 1030 return TRUE; |
1036 } | 1031 } |
1037 | 1032 |
1109 } else { | 1104 } else { |
1110 purple_debug_info("MSNCL","Contact %s added to group %s successfully on server, but failed in the local list\n", state->who, state->new_group_name); | 1105 purple_debug_info("MSNCL","Contact %s added to group %s successfully on server, but failed in the local list\n", state->who, state->new_group_name); |
1111 } | 1106 } |
1112 | 1107 |
1113 if (state->action & MSN_ADD_BUDDY) { | 1108 if (state->action & MSN_ADD_BUDDY) { |
1114 MsnUser *user = msn_userlist_find_user(userlist, state->who); | |
1115 | 1109 |
1116 if ( !msn_user_is_yahoo(soapconn->session->account, state->who) ) { | 1110 if ( !msn_user_is_yahoo(soapconn->session->account, state->who) ) { |
1117 | 1111 |
1118 msn_userlist_add_buddy_to_list(userlist, state->who, MSN_LIST_AL); | 1112 msn_userlist_add_buddy_to_list(userlist, state->who, MSN_LIST_AL); |
1119 msn_userlist_add_buddy_to_list(userlist, state->who, MSN_LIST_FL); | 1113 msn_userlist_add_buddy_to_list(userlist, state->who, MSN_LIST_FL); |
1120 } | 1114 } |
1121 msn_notification_send_fqy(soapconn->session, state->who); | 1115 msn_notification_send_fqy(soapconn->session, state->who); |
1122 | |
1123 if (msn_userlist_user_is_in_list(user, MSN_LIST_PL)) { | |
1124 msn_del_contact_from_list(soapconn->session->contact, NULL, state->who, MSN_LIST_PL); | |
1125 msn_callback_state_free(state); | |
1126 return TRUE; | |
1127 } | |
1128 } | 1116 } |
1129 | 1117 |
1130 if (state->action & MSN_MOVE_BUDDY) { | 1118 if (state->action & MSN_MOVE_BUDDY) { |
1131 msn_del_contact_from_group(soapconn->session->contact, state->who, state->old_group_name); | 1119 msn_del_contact_from_group(soapconn->session->contact, state->who, state->old_group_name); |
1132 } else { | 1120 } else { |
1435 MsnCallbackState *state = NULL; | 1423 MsnCallbackState *state = NULL; |
1436 | 1424 |
1437 g_return_val_if_fail(soapconn->data_cb != NULL, TRUE); | 1425 g_return_val_if_fail(soapconn->data_cb != NULL, TRUE); |
1438 g_return_val_if_fail(soapconn->session != NULL, FALSE); | 1426 g_return_val_if_fail(soapconn->session != NULL, FALSE); |
1439 g_return_val_if_fail(soapconn->session->contact != NULL, FALSE); | 1427 g_return_val_if_fail(soapconn->session->contact != NULL, FALSE); |
1428 g_return_val_if_fail(soapconn->session->userlist != NULL, FALSE); | |
1440 | 1429 |
1441 state = (MsnCallbackState *) soapconn->data_cb; | 1430 state = (MsnCallbackState *) soapconn->data_cb; |
1442 | 1431 |
1443 if (soapconn->body == NULL) { | 1432 if (soapconn->body == NULL) { |
1444 msn_callback_state_free(state); | 1433 msn_callback_state_free(state); |
1446 } | 1435 } |
1447 | 1436 |
1448 purple_debug_info("MSN CL", "Contact %s deleted successfully from %s list on server!\n", state->who, MsnMemberRole[state->list_id]); | 1437 purple_debug_info("MSN CL", "Contact %s deleted successfully from %s list on server!\n", state->who, MsnMemberRole[state->list_id]); |
1449 | 1438 |
1450 if (state->list_id == MSN_LIST_PL) { | 1439 if (state->list_id == MSN_LIST_PL) { |
1440 MsnUser *user = msn_userlist_find_user(soapconn->session->userlist, state->who); | |
1441 | |
1442 if (user != NULL) | |
1443 msn_user_unset_op(user, MSN_LIST_PL_OP); | |
1444 | |
1451 msn_add_contact_to_list(soapconn->session->contact, state, state->who, MSN_LIST_RL); | 1445 msn_add_contact_to_list(soapconn->session->contact, state, state->who, MSN_LIST_RL); |
1452 return TRUE; | 1446 return TRUE; |
1453 } | 1447 } |
1454 | 1448 |
1455 if (state->list_id == MSN_LIST_AL) { | 1449 if (state->list_id == MSN_LIST_AL) { |
1539 msn_add_contact_to_list_read_cb(MsnSoapConn *soapconn) | 1533 msn_add_contact_to_list_read_cb(MsnSoapConn *soapconn) |
1540 { | 1534 { |
1541 MsnCallbackState *state = NULL; | 1535 MsnCallbackState *state = NULL; |
1542 | 1536 |
1543 g_return_val_if_fail(soapconn->data_cb != NULL, TRUE); | 1537 g_return_val_if_fail(soapconn->data_cb != NULL, TRUE); |
1538 g_return_val_if_fail(soapconn->session != NULL, FALSE); | |
1539 g_return_val_if_fail(soapconn->session->userlist != NULL, FALSE); | |
1544 | 1540 |
1545 state = (MsnCallbackState *) soapconn->data_cb; | 1541 state = (MsnCallbackState *) soapconn->data_cb; |
1546 | 1542 |
1547 if (soapconn->body == NULL) { | 1543 if (soapconn->body == NULL) { |
1548 msn_callback_state_free(state); | 1544 msn_callback_state_free(state); |
1549 return TRUE; | 1545 return TRUE; |
1550 } | 1546 } |
1551 | 1547 |
1552 purple_debug_info("MSN CL", "Contact %s added successfully to %s list on server!\n", state->who, MsnMemberRole[state->list_id]); | 1548 purple_debug_info("MSN CL", "Contact %s added successfully to %s list on server!\n", state->who, MsnMemberRole[state->list_id]); |
1553 | 1549 |
1554 if (state->list_id == MSN_LIST_RL && (state->action & MSN_DENIED_BUDDY) ) { | 1550 if (state->list_id == MSN_LIST_RL) { |
1555 g_return_val_if_fail(soapconn->session != NULL, FALSE); | 1551 MsnUser *user = msn_userlist_find_user(soapconn->session->userlist, state->who); |
1556 g_return_val_if_fail(soapconn->session->contact != NULL, FALSE); | 1552 |
1557 | 1553 if (user != NULL) { |
1558 msn_add_contact_to_list(soapconn->session->contact, NULL, state->who, MSN_LIST_BL); | 1554 msn_user_set_op(user, MSN_LIST_RL_OP); |
1559 return TRUE; | 1555 } |
1556 | |
1557 if (state->action & MSN_DENIED_BUDDY) { | |
1558 g_return_val_if_fail(soapconn->session->contact != NULL, FALSE); | |
1559 | |
1560 msn_add_contact_to_list(soapconn->session->contact, NULL, state->who, MSN_LIST_BL); | |
1561 return TRUE; | |
1562 } | |
1560 } | 1563 } |
1561 | 1564 |
1562 if (state->list_id == MSN_LIST_AL) { | 1565 if (state->list_id == MSN_LIST_AL) { |
1563 purple_privacy_permit_add(soapconn->session->account, state->who, TRUE); | 1566 purple_privacy_permit_add(soapconn->session->account, state->who, TRUE); |
1564 } else if (state->list_id == MSN_LIST_BL) { | 1567 } else if (state->list_id == MSN_LIST_BL) { |