Mercurial > pidgin
comparison libpurple/protocols/yahoo/yahoo_packet.c @ 27590:a08e84032814
merge of '2348ff22f0ff3453774b8b25b36238465580c609'
and 'e76f11543c2a4aa05bdf584f087cbe3439029661'
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sun, 12 Jul 2009 05:43:38 +0000 |
parents | 07d09a987b86 |
children | 908be3822215 |
comparison
equal
deleted
inserted
replaced
27104:048bcf41deef | 27590:a08e84032814 |
---|---|
22 */ | 22 */ |
23 | 23 |
24 #include "internal.h" | 24 #include "internal.h" |
25 #include "debug.h" | 25 #include "debug.h" |
26 | 26 |
27 #include "yahoo.h" | 27 #include "libymsg.h" |
28 #include "yahoo_packet.h" | 28 #include "yahoo_packet.h" |
29 | 29 |
30 struct yahoo_packet *yahoo_packet_new(enum yahoo_service service, enum yahoo_status status, int id) | 30 struct yahoo_packet *yahoo_packet_new(enum yahoo_service service, enum yahoo_status status, int id) |
31 { | 31 { |
32 struct yahoo_packet *pkt = g_new0(struct yahoo_packet, 1); | 32 struct yahoo_packet *pkt = g_new0(struct yahoo_packet, 1); |
185 x = delimiter - data; | 185 x = delimiter - data; |
186 pair->value = g_strndup((const gchar *)&data[pos], x - pos); | 186 pair->value = g_strndup((const gchar *)&data[pos], x - pos); |
187 pos = x; | 187 pos = x; |
188 pkt->hash = g_slist_prepend(pkt->hash, pair); | 188 pkt->hash = g_slist_prepend(pkt->hash, pair); |
189 | 189 |
190 #ifdef DEBUG | 190 if (purple_debug_is_verbose() || g_getenv("PURPLE_YAHOO_DEBUG")) { |
191 { | |
192 char *esc; | 191 char *esc; |
193 esc = g_strescape(pair->value, NULL); | 192 esc = g_strescape(pair->value, NULL); |
194 purple_debug(PURPLE_DEBUG_MISC, "yahoo", | 193 purple_debug_misc("yahoo", "Key: %d \tValue: %s\n", pair->key, esc); |
195 "Key: %d \tValue: %s\n", pair->key, esc); | |
196 g_free(esc); | 194 g_free(esc); |
197 } | 195 } |
198 #endif | |
199 } else { | 196 } else { |
200 g_free(pair); | 197 g_free(pair); |
201 } | 198 } |
202 pos += 2; | 199 pos += 2; |
203 | 200 |
251 void yahoo_packet_dump(guchar *data, int len) | 248 void yahoo_packet_dump(guchar *data, int len) |
252 { | 249 { |
253 #ifdef YAHOO_DEBUG | 250 #ifdef YAHOO_DEBUG |
254 int i; | 251 int i; |
255 | 252 |
256 purple_debug(PURPLE_DEBUG_MISC, "yahoo", ""); | 253 purple_debug_misc("yahoo", ""); |
257 | 254 |
258 for (i = 0; i + 1 < len; i += 2) { | 255 for (i = 0; i + 1 < len; i += 2) { |
259 if ((i % 16 == 0) && i) { | 256 if ((i % 16 == 0) && i) { |
260 purple_debug(PURPLE_DEBUG_MISC, NULL, "\n"); | 257 purple_debug_misc(NULL, "\n"); |
261 purple_debug(PURPLE_DEBUG_MISC, "yahoo", ""); | 258 purple_debug_misc("yahoo", ""); |
262 } | 259 } |
263 | 260 |
264 purple_debug(PURPLE_DEBUG_MISC, NULL, "%02x%02x ", data[i], data[i + 1]); | 261 purple_debug_misc(NULL, "%02x%02x ", data[i], data[i + 1]); |
265 } | 262 } |
266 if (i < len) | 263 if (i < len) |
267 purple_debug(PURPLE_DEBUG_MISC, NULL, "%02x", data[i]); | 264 purple_debug_misc(NULL, "%02x", data[i]); |
268 | 265 |
269 purple_debug(PURPLE_DEBUG_MISC, NULL, "\n"); | 266 purple_debug_misc(NULL, "\n"); |
270 purple_debug(PURPLE_DEBUG_MISC, "yahoo", ""); | 267 purple_debug_misc("yahoo", ""); |
271 | 268 |
272 for (i = 0; i < len; i++) { | 269 for (i = 0; i < len; i++) { |
273 if ((i % 16 == 0) && i) { | 270 if ((i % 16 == 0) && i) { |
274 purple_debug(PURPLE_DEBUG_MISC, NULL, "\n"); | 271 purple_debug_misc(NULL, "\n"); |
275 purple_debug(PURPLE_DEBUG_MISC, "yahoo", ""); | 272 purple_debug_misc("yahoo", ""); |
276 } | 273 } |
277 | 274 |
278 if (g_ascii_isprint(data[i])) | 275 if (g_ascii_isprint(data[i])) |
279 purple_debug(PURPLE_DEBUG_MISC, NULL, "%c ", data[i]); | 276 purple_debug_misc(NULL, "%c ", data[i]); |
280 else | 277 else |
281 purple_debug(PURPLE_DEBUG_MISC, NULL, ". "); | 278 purple_debug_misc(NULL, ". "); |
282 } | 279 } |
283 | 280 |
284 purple_debug(PURPLE_DEBUG_MISC, NULL, "\n"); | 281 purple_debug_misc(NULL, "\n"); |
285 #endif | 282 #endif /* YAHOO_DEBUG */ |
286 } | 283 } |
287 | 284 |
288 static void | 285 static void |
289 yahoo_packet_send_can_write(gpointer data, gint source, PurpleInputCondition cond) | 286 yahoo_packet_send_can_write(gpointer data, gint source, PurpleInputCondition cond) |
290 { | 287 { |
327 memcpy(data + pos, "YMSG", 4); pos += 4; | 324 memcpy(data + pos, "YMSG", 4); pos += 4; |
328 | 325 |
329 if (wm) | 326 if (wm) |
330 pos += yahoo_put16(data + pos, YAHOO_WEBMESSENGER_PROTO_VER); | 327 pos += yahoo_put16(data + pos, YAHOO_WEBMESSENGER_PROTO_VER); |
331 else if (jp) | 328 else if (jp) |
332 pos += yahoo_put16(data + pos, YAHOO_PROTO_VER_JAPAN); | 329 pos += yahoo_put16(data + pos, YAHOO_PROTO_VER_JAPAN); |
333 else | 330 else |
334 pos += yahoo_put16(data + pos, YAHOO_PROTO_VER); | 331 pos += yahoo_put16(data + pos, YAHOO_PROTO_VER); |
335 pos += yahoo_put16(data + pos, 0x0000); | 332 pos += yahoo_put16(data + pos, 0x0000); |
336 pos += yahoo_put16(data + pos, pktlen + pad); | 333 pos += yahoo_put16(data + pos, pktlen + pad); |
337 pos += yahoo_put16(data + pos, pkt->service); | 334 pos += yahoo_put16(data + pos, pkt->service); |