| 61 msn_message_set_attr(msg, "User-Agent", "Gaim/" VERSION); |
61 msn_message_set_attr(msg, "User-Agent", "Gaim/" VERSION); |
| 62 msn_message_set_content_type(msg, "text/plain"); |
62 msn_message_set_content_type(msg, "text/plain"); |
| 63 msn_message_set_charset(msg, "UTF-8"); |
63 msn_message_set_charset(msg, "UTF-8"); |
| 64 msn_message_set_flag(msg, 'N'); |
64 msn_message_set_flag(msg, 'N'); |
| 65 |
65 |
| |
66 msn_message_ref(msg); |
| |
67 |
| 66 return msg; |
68 return msg; |
| 67 } |
69 } |
| 68 |
70 |
| 69 MsnMessage * |
71 MsnMessage * |
| 70 msn_message_new_from_str(MsnSession *session, const char *str) |
72 msn_message_new_from_str(MsnSession *session, const char *str) |
| 172 void |
174 void |
| 173 msn_message_destroy(MsnMessage *msg) |
175 msn_message_destroy(MsnMessage *msg) |
| 174 { |
176 { |
| 175 g_return_if_fail(msg != NULL); |
177 g_return_if_fail(msg != NULL); |
| 176 |
178 |
| |
179 if (msg->ref_count > 0) { |
| |
180 msn_message_unref(msg); |
| |
181 |
| |
182 return; |
| |
183 } |
| |
184 |
| 177 if (msg->sender != NULL) |
185 if (msg->sender != NULL) |
| 178 msn_user_unref(msg->sender); |
186 msn_user_unref(msg->sender); |
| 179 |
187 |
| 180 if (msg->receiver != NULL) |
188 if (msg->receiver != NULL) |
| 181 msn_user_unref(msg->receiver); |
189 msn_user_unref(msg->receiver); |
| 190 g_free(msg->charset); |
198 g_free(msg->charset); |
| 191 |
199 |
| 192 g_hash_table_destroy(msg->attr_table); |
200 g_hash_table_destroy(msg->attr_table); |
| 193 g_list_free(msg->attr_list); |
201 g_list_free(msg->attr_list); |
| 194 |
202 |
| |
203 gaim_debug(GAIM_DEBUG_INFO, "msn", "Destroying message\n"); |
| 195 g_free(msg); |
204 g_free(msg); |
| |
205 } |
| |
206 |
| |
207 MsnMessage * |
| |
208 msn_message_ref(MsnMessage *msg) |
| |
209 { |
| |
210 g_return_val_if_fail(msg != NULL, NULL); |
| |
211 |
| |
212 msg->ref_count++; |
| |
213 |
| |
214 return msg; |
| |
215 } |
| |
216 |
| |
217 MsnMessage * |
| |
218 msn_message_unref(MsnMessage *msg) |
| |
219 { |
| |
220 g_return_val_if_fail(msg != NULL, NULL); |
| |
221 |
| |
222 if (msg->ref_count <= 0) |
| |
223 return NULL; |
| |
224 |
| |
225 msg->ref_count--; |
| |
226 |
| |
227 if (msg->ref_count == 0) { |
| |
228 msn_message_destroy(msg); |
| |
229 |
| |
230 return NULL; |
| |
231 } |
| |
232 |
| |
233 return msg; |
| 196 } |
234 } |
| 197 |
235 |
| 198 char * |
236 char * |
| 199 msn_message_build_string(const MsnMessage *msg) |
237 msn_message_build_string(const MsnMessage *msg) |
| 200 { |
238 { |