Mercurial > pidgin.yaz
comparison libpurple/protocols/msn/slpcall.c @ 31599:34da321b60f1
Try to hide all P2P fields away behind accessor functions.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Thu, 20 Jan 2011 06:43:45 +0000 |
parents | 9ccbd0302bb2 |
children | eb1bbaae3427 |
comparison
equal
deleted
inserted
replaced
31598:19e89f916e69 | 31599:34da321b60f1 |
---|---|
1057 msn_slp_process_msg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg) | 1057 msn_slp_process_msg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg) |
1058 { | 1058 { |
1059 MsnSlpCall *slpcall; | 1059 MsnSlpCall *slpcall; |
1060 const guchar *body; | 1060 const guchar *body; |
1061 gsize body_len; | 1061 gsize body_len; |
1062 guint32 session_id; | |
1063 guint32 flags; | |
1062 | 1064 |
1063 slpcall = NULL; | 1065 slpcall = NULL; |
1064 body = slpmsg->buffer; | 1066 body = slpmsg->buffer; |
1065 body_len = slpmsg->header->offset; | 1067 body_len = msn_p2p_info_get_offset(slpmsg->p2p_info); |
1066 | 1068 |
1067 if (slpmsg->header->flags == P2P_NO_FLAG || slpmsg->header->flags == P2P_WLM2009_COMP) | 1069 session_id = msn_p2p_info_get_session_id(slpmsg->p2p_info); |
1070 flags = msn_p2p_info_get_flags(slpmsg->p2p_info); | |
1071 | |
1072 if (flags == P2P_NO_FLAG || flags == P2P_WLM2009_COMP) | |
1068 { | 1073 { |
1069 char *body_str; | 1074 char *body_str; |
1070 | 1075 |
1071 if (slpmsg->header->session_id == 64) | 1076 if (session_id == 64) |
1072 { | 1077 { |
1073 /* This is for handwritten messages (Ink) */ | 1078 /* This is for handwritten messages (Ink) */ |
1074 GError *error = NULL; | 1079 GError *error = NULL; |
1075 gsize bytes_read, bytes_written; | 1080 gsize bytes_read, bytes_written; |
1076 | 1081 |
1123 body_str = g_strndup((const char *)body, body_len); | 1128 body_str = g_strndup((const char *)body, body_len); |
1124 slpcall = msn_slp_sip_recv(slplink, body_str); | 1129 slpcall = msn_slp_sip_recv(slplink, body_str); |
1125 } | 1130 } |
1126 g_free(body_str); | 1131 g_free(body_str); |
1127 } | 1132 } |
1128 else if (msn_p2p_msg_is_data(slpmsg->header->flags)) | 1133 else if (msn_p2p_msg_is_data(flags)) |
1129 { | 1134 { |
1130 slpcall = msn_slplink_find_slp_call_with_session_id(slplink, slpmsg->header->session_id); | 1135 slpcall = msn_slplink_find_slp_call_with_session_id(slplink, session_id); |
1131 | 1136 |
1132 if (slpcall != NULL) | 1137 if (slpcall != NULL) |
1133 { | 1138 { |
1134 if (slpcall->timer) { | 1139 if (slpcall->timer) { |
1135 purple_timeout_remove(slpcall->timer); | 1140 purple_timeout_remove(slpcall->timer); |
1140 slpcall->cb(slpcall, body, body_len); | 1145 slpcall->cb(slpcall, body, body_len); |
1141 | 1146 |
1142 slpcall->wasted = TRUE; | 1147 slpcall->wasted = TRUE; |
1143 } | 1148 } |
1144 } | 1149 } |
1145 else if (slpmsg->header->flags == P2P_ACK) | 1150 else if (flags == P2P_ACK) |
1146 { | 1151 { |
1147 /* Acknowledgement of previous message. Don't do anything currently. */ | 1152 /* Acknowledgement of previous message. Don't do anything currently. */ |
1148 } | 1153 } |
1149 else | 1154 else |
1150 purple_debug_warning("msn", "Unprocessed SLP message with flags 0x%04x\n", | 1155 purple_debug_warning("msn", "Unprocessed SLP message with flags 0x%04x\n", |
1151 slpmsg->header->flags); | 1156 flags); |
1152 | 1157 |
1153 return slpcall; | 1158 return slpcall; |
1154 } | 1159 } |