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);