Mercurial > pidgin
comparison libpurple/protocols/qq/file_trans.c @ 23049:190bc4ecf6c3
patch-03-add-qq_hex_dump
author | SHiNE CsyFeK <csyfek@gmail.com> |
---|---|
date | Tue, 24 Jun 2008 12:09:16 +0000 |
parents | 9a5d140400f1 |
children | 51dbe83ebbd3 |
comparison
equal
deleted
inserted
replaced
23048:9a5d140400f1 | 23049:190bc4ecf6c3 |
---|---|
291 qq_data *qd; | 291 qq_data *qd; |
292 gint bytes, bytes_expected, encrypted_len; | 292 gint bytes, bytes_expected, encrypted_len; |
293 guint8 *raw_data, *encrypted_data; | 293 guint8 *raw_data, *encrypted_data; |
294 time_t now; | 294 time_t now; |
295 ft_info *info; | 295 ft_info *info; |
296 gchar *hex_dump; | |
297 | 296 |
298 qd = (qq_data *) gc->proto_data; | 297 qd = (qq_data *) gc->proto_data; |
299 info = (ft_info *) qd->xfer->data; | 298 info = (ft_info *) qd->xfer->data; |
300 | 299 |
301 raw_data = g_newa (guint8, 61); | 300 raw_data = g_newa (guint8, 61); |
353 purple_debug(PURPLE_DEBUG_ERROR, "QQ", "qq_send_file_ctl_packet: Expected to get %d bytes, but get %d", | 352 purple_debug(PURPLE_DEBUG_ERROR, "QQ", "qq_send_file_ctl_packet: Expected to get %d bytes, but get %d", |
354 bytes_expected, bytes); | 353 bytes_expected, bytes); |
355 return; | 354 return; |
356 } | 355 } |
357 | 356 |
358 hex_dump = hex_dump_to_str(raw_data, bytes); | 357 qq_hex_dump(PURPLE_DEBUG_INFO, "QQ", |
359 purple_debug(PURPLE_DEBUG_INFO, "QQ", "sending packet[%s]: \n%s", qq_get_file_cmd_desc(packet_type), hex_dump); | 358 raw_data, bytes, |
360 g_free(hex_dump); | 359 "sending packet[%s]:", qq_get_file_cmd_desc(packet_type)); |
361 | 360 |
362 encrypted_len = bytes + 16; | 361 encrypted_len = bytes + 16; |
363 encrypted_data = g_newa(guint8, encrypted_len); | 362 encrypted_data = g_newa(guint8, encrypted_len); |
364 qq_encrypt(raw_data, bytes, info->file_session_key, encrypted_data, &encrypted_len); | 363 qq_encrypt(raw_data, bytes, info->file_session_key, encrypted_data, &encrypted_len); |
365 /*debug: try to decrypt it */ | 364 /*debug: try to decrypt it */ |
529 qq_data *qd = (qq_data *) gc->proto_data; | 528 qq_data *qd = (qq_data *) gc->proto_data; |
530 guint16 packet_type; | 529 guint16 packet_type; |
531 guint16 seq; | 530 guint16 seq; |
532 guint8 hellobyte; | 531 guint8 hellobyte; |
533 ft_info *info = (ft_info *) qd->xfer->data; | 532 ft_info *info = (ft_info *) qd->xfer->data; |
534 gchar *hex_dump; | |
535 | 533 |
536 bytes = 0; | 534 bytes = 0; |
537 bytes += _qq_get_file_header(&fh, data + bytes); | 535 bytes += _qq_get_file_header(&fh, data + bytes); |
538 | 536 |
539 decrypted_data = g_newa(guint8, len); | 537 decrypted_data = g_newa(guint8, len); |
549 decryped_bytes += qq_get16(&packet_type, decrypted_data + decryped_bytes); | 547 decryped_bytes += qq_get16(&packet_type, decrypted_data + decryped_bytes); |
550 decryped_bytes += qq_get16(&seq, decrypted_data + decryped_bytes); | 548 decryped_bytes += qq_get16(&seq, decrypted_data + decryped_bytes); |
551 decryped_bytes += 4+1+1+19+1; /* skip something */ | 549 decryped_bytes += 4+1+1+19+1; /* skip something */ |
552 | 550 |
553 purple_debug(PURPLE_DEBUG_INFO, "QQ", "==> [%d] receive %s packet\n", seq, qq_get_file_cmd_desc(packet_type)); | 551 purple_debug(PURPLE_DEBUG_INFO, "QQ", "==> [%d] receive %s packet\n", seq, qq_get_file_cmd_desc(packet_type)); |
554 hex_dump = hex_dump_to_str(decrypted_data, decrypted_len); | 552 qq_hex_dump(PURPLE_DEBUG_INFO, "QQ", |
555 purple_debug(PURPLE_DEBUG_INFO, "QQ", "decrypted control packet received: \n%s", hex_dump); | 553 decrypted_data, decrypted_len, |
556 g_free(hex_dump); | 554 "decrypted control packet received:"); |
557 | 555 |
558 switch (packet_type) { | 556 switch (packet_type) { |
559 case QQ_FILE_CMD_NOTIFY_IP_ACK: | 557 case QQ_FILE_CMD_NOTIFY_IP_ACK: |
560 decryped_bytes = 0; | 558 decryped_bytes = 0; |
561 qq_get_conn_info(info, decrypted_data + decryped_bytes); | 559 qq_get_conn_info(info, decrypted_data + decryped_bytes); |