libpurple/protocols/qq/file_trans.c

changeset 24300
aa3947bf4a6a
parent 24299
b3ebedfac7cb
child 24314
587e97c2b707
--- a/libpurple/protocols/qq/file_trans.c	Thu Sep 11 13:25:07 2008 +0000
+++ b/libpurple/protocols/qq/file_trans.c	Mon Sep 15 03:04:07 2008 +0000
@@ -22,6 +22,10 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
  */
 
+#ifdef _WIN32
+#define random rand
+#endif
+
 #include "internal.h"
 
 #include "debug.h"
@@ -58,7 +62,7 @@
 {
 	guint8 seed;
 
-	seed = rand() & 0xFF;
+	seed = random();
 	return _get_file_key(seed);
 }
 
@@ -257,7 +261,7 @@
 	if (bytes == len + 12) {
 		_qq_xfer_write(raw_data, bytes, qd->xfer);
 	} else
-		purple_debug_info("QQ", "send_file: want %d but got %d\n", len + 12, bytes);
+		purple_debug(PURPLE_DEBUG_INFO, "QQ", "send_file: want %d but got %d\n", len + 12, bytes);
 	return bytes;
 }
 
@@ -319,13 +323,13 @@
 			bytes_expected = 61;
 			break;
 		default:
-			purple_debug_info("QQ", "qq_send_file_ctl_packet: Unknown packet type[%d]\n",
+			purple_debug(PURPLE_DEBUG_INFO, "QQ", "qq_send_file_ctl_packet: Unknown packet type[%d]\n",
 					packet_type);
 			bytes_expected = 0;
 	}
 
 	if (bytes != bytes_expected) {
-		purple_debug_error("QQ", "qq_send_file_ctl_packet: Expected to get %d bytes, but get %d",
+		purple_debug(PURPLE_DEBUG_ERROR, "QQ", "qq_send_file_ctl_packet: Expected to get %d bytes, but get %d",
 				bytes_expected, bytes);
 		return;
 	}
@@ -342,24 +346,24 @@
 	guint8 *buf;
 	int buflen;
 	hex_dump = hex_dump_to_str(encrypted_data, encrypted_len);
-	purple_debug_info("QQ", "encrypted packet: \n%s", hex_dump);
+	purple_debug(PURPLE_DEBUG_INFO, "QQ", "encrypted packet: \n%s", hex_dump);
 	g_free(hex_dump);
 	buf = g_newa(guint8, MAX_PACKET_SIZE);
 	buflen = encrypted_len;
 	if (qq_crypt(DECRYPT, encrypted_data, encrypted_len, info->file_session_key, buf, &buflen)) {
-		purple_debug_info("QQ", "decrypt success\n");
+		purple_debug(PURPLE_DEBUG_INFO, "QQ", "decrypt success\n");
 	   if (buflen == bytes && memcmp(raw_data, buf, buflen) == 0)
-			purple_debug_info("QQ", "checksum ok\n");
+			purple_debug(PURPLE_DEBUG_INFO, "QQ", "checksum ok\n");
 
 		hex_dump = hex_dump_to_str(buf, buflen);
-		purple_debug_info("QQ", "decrypted packet: \n%s", hex_dump);
+		purple_debug(PURPLE_DEBUG_INFO, "QQ", "decrypted packet: \n%s", hex_dump);
 		g_free(hex_dump);
 	 } else {
-		purple_debug_info("QQ", "decrypt fail\n");
+		purple_debug(PURPLE_DEBUG_INFO, "QQ", "decrypt fail\n");
 	}
 #endif
 
-	purple_debug_info("QQ", "<== send %s packet\n", qq_get_file_cmd_desc(packet_type));
+	purple_debug(PURPLE_DEBUG_INFO, "QQ", "<== send %s packet\n", qq_get_file_cmd_desc(packet_type));
 	_qq_send_file(gc, encrypted_data, encrypted_len, QQ_FILE_CONTROL_PACKET_TAG, info->to_uid);
 }
 
@@ -406,7 +410,7 @@
 					info->fragment_num = (filesize - 1) / QQ_FILE_FRAGMENT_MAXLEN + 1;
 					info->fragment_len = QQ_FILE_FRAGMENT_MAXLEN;
 
-					purple_debug_info("QQ", 
+					purple_debug(PURPLE_DEBUG_INFO, "QQ", 
 							"start transfering data, %d fragments with %d length each\n",
 							info->fragment_num, info->fragment_len);
 					/* Unknown */
@@ -431,7 +435,7 @@
 							filename_len);
 					break;
 				case QQ_FILE_DATA_INFO:
-					purple_debug_info("QQ", 
+					purple_debug(PURPLE_DEBUG_INFO, "QQ", 
 							"sending %dth fragment with length %d, offset %d\n",
 							fragment_index, len, (fragment_index-1)*fragment_size);
 					/* bytes += qq_put16(raw_data + bytes, ++(qd->send_seq)); */
@@ -444,7 +448,7 @@
 					bytes += qq_putdata(raw_data + bytes, data, len);
 					break;
 				case QQ_FILE_EOF:
-					purple_debug_info("QQ", "end of sending data\n");
+					purple_debug(PURPLE_DEBUG_INFO, "QQ", "end of sending data\n");
 					/* bytes += qq_put16(raw_data + bytes, info->fragment_num + 1); */
 					bytes += qq_put16(raw_data + bytes, info->fragment_num);
 					bytes += qq_put8(raw_data + bytes, sub_type);
@@ -470,7 +474,7 @@
 					break;
 			}
 	}
-	purple_debug_info("QQ", "<== send %s packet\n", qq_get_file_cmd_desc(packet_type));
+	purple_debug(PURPLE_DEBUG_INFO, "QQ", "<== send %s packet\n", qq_get_file_cmd_desc(packet_type));
 	_qq_send_file(gc, raw_data, bytes, QQ_FILE_DATA_PACKET_TAG, info->to_uid);
 }
 
@@ -512,7 +516,7 @@
 	decrypted_data = g_newa(guint8, data_len);
 	decrypted_len = qq_decrypt(decrypted_data, data, data_len, qd->session_md5);
 	if ( decrypted_len <= 0 ) {
-		purple_debug_error("QQ", "Error decrypt rcv file ctrl packet\n");
+		purple_debug(PURPLE_DEBUG_ERROR, "QQ", "Error decrypt rcv file ctrl packet\n");
 		return;
 	}
 
@@ -522,7 +526,7 @@
 	decryped_bytes += qq_get16(&seq, decrypted_data + decryped_bytes);
 	decryped_bytes += 4+1+1+19+1;	/* skip something */
 
-	purple_debug_info("QQ", "==> [%d] receive %s packet\n", seq, qq_get_file_cmd_desc(packet_type));
+	purple_debug(PURPLE_DEBUG_INFO, "QQ", "==> [%d] receive %s packet\n", seq, qq_get_file_cmd_desc(packet_type));
 	qq_hex_dump(PURPLE_DEBUG_INFO, "QQ",
 		decrypted_data, decrypted_len,
 		"decrypted control packet received:");
@@ -562,7 +566,7 @@
 			qq_send_file_ctl_packet(gc, QQ_FILE_CMD_SENDER_SAY_HELLO, fh.sender_uid, 0);
 			break;
 		default:
-			purple_debug_info("QQ", "unprocess file command %d\n", packet_type);
+			purple_debug(PURPLE_DEBUG_INFO, "QQ", "unprocess file command %d\n", packet_type);
 	}
 }
 
@@ -573,7 +577,7 @@
 	ft_info *info = (ft_info *) xfer->data;
 	guint32 mask;
 
-	purple_debug_info("QQ", 
+	purple_debug(PURPLE_DEBUG_INFO, "QQ", 
 			"receiving %dth fragment with length %d, slide window status %o, max_fragment_index %d\n", 
 			index, len, info->window, info->max_fragment_index);
 	if (info->window == 0 && info->max_fragment_index == 0) {
@@ -581,11 +585,11 @@
 			purple_xfer_cancel_local(xfer);
 			return;
 		}
-		purple_debug_info("QQ", "object file opened for writing\n");
+		purple_debug(PURPLE_DEBUG_INFO, "QQ", "object file opened for writing\n");
 	}
 	mask = 0x1 << (index % sizeof(info->window));
 	if (index < info->max_fragment_index || (info->window & mask)) {
-		purple_debug_info("QQ", "duplicate %dth fragment, drop it!\n", index+1);
+		purple_debug(PURPLE_DEBUG_INFO, "QQ", "duplicate %dth fragment, drop it!\n", index+1);
 		return;
 	}
 
@@ -605,7 +609,7 @@
 		if (mask & 0x8000) mask = 0x0001;
 		else mask = mask << 1;
 	}
-	purple_debug_info("QQ", "procceed %dth fragment, slide window status %o, max_fragment_index %d\n", 
+	purple_debug(PURPLE_DEBUG_INFO, "QQ", "procceed %dth fragment, slide window status %o, max_fragment_index %d\n", 
 			index, info->window, info->max_fragment_index);
 }
 
@@ -650,12 +654,12 @@
 	PurpleXfer *xfer = qd->xfer;
 	ft_info *info = (ft_info *) xfer->data;
 
-	purple_debug_info("QQ", 
+	purple_debug(PURPLE_DEBUG_INFO, "QQ", 
 			"receiving %dth fragment ack, slide window status %o, max_fragment_index %d\n", 
 			fragment_index, info->window, info->max_fragment_index);
 	if (fragment_index < info->max_fragment_index || 
 			fragment_index >= info->max_fragment_index + sizeof(info->window)) {
-		purple_debug_info("QQ", "duplicate %dth fragment, drop it!\n", fragment_index+1);
+		purple_debug(PURPLE_DEBUG_INFO, "QQ", "duplicate %dth fragment, drop it!\n", fragment_index+1);
 		return;
 	}
 	mask = 0x1 << (fragment_index % sizeof(info->window));
@@ -692,7 +696,7 @@
 			else mask = mask << 1;
 		}
 	}
-	purple_debug_info("QQ", 
+	purple_debug(PURPLE_DEBUG_INFO, "QQ", 
 			"procceed %dth fragment ack, slide window status %o, max_fragment_index %d\n", 
 			fragment_index, info->window, info->max_fragment_index);
 }
@@ -733,7 +737,7 @@
 
 					info->max_fragment_index = 0;
 					info->window = 0;
-					purple_debug_info("QQ", 
+					purple_debug(PURPLE_DEBUG_INFO, "QQ", 
 							"start receiving data, %d fragments with %d length each\n",
 							info->fragment_num, info->fragment_len);
 					_qq_send_file_data_packet(gc, QQ_FILE_CMD_FILE_OP_ACK, sub_type,
@@ -743,7 +747,7 @@
 					bytes += qq_get32(&fragment_index, data + bytes);
 					bytes += qq_get32(&fragment_offset, data + bytes);
 					bytes += qq_get16(&fragment_len, data + bytes);
-					purple_debug_info("QQ", 
+					purple_debug(PURPLE_DEBUG_INFO, "QQ", 
 							"received %dth fragment with length %d, offset %d\n",
 							fragment_index, fragment_len, fragment_offset);
 
@@ -752,7 +756,7 @@
 					_qq_recv_file_progess(gc, data + bytes, fragment_len, fragment_index, fragment_offset);
 					break;
 				case QQ_FILE_EOF:
-					purple_debug_info("QQ", "end of receiving\n");
+					purple_debug(PURPLE_DEBUG_INFO, "QQ", "end of receiving\n");
 					_qq_send_file_data_packet(gc, QQ_FILE_CMD_FILE_OP_ACK, sub_type,
 							0, 0, NULL, 0);
 					break;
@@ -791,11 +795,11 @@
 			purple_xfer_end(qd->xfer);
 			break;
 		case QQ_FILE_BASIC_INFO:
-			purple_debug_info("QQ", "here\n");
+			purple_debug(PURPLE_DEBUG_INFO, "QQ", "here\n");
 			_qq_send_file_data_packet(gc, QQ_FILE_DATA_INFO, 0, 0, 0, NULL, 0);
 			break;
 		default:
-			purple_debug_info("QQ", "_qq_process_recv_file_data: unknown packet type [%d]\n",
+			purple_debug(PURPLE_DEBUG_INFO, "QQ", "_qq_process_recv_file_data: unknown packet type [%d]\n",
 					packet_type);
 			break;
 	}
@@ -820,6 +824,6 @@
 			_qq_process_recv_file_data(gc, data + bytes, len - bytes);
 			break;
 		default:
-			purple_debug_info("QQ", "unknown packet tag");
+			purple_debug(PURPLE_DEBUG_INFO, "QQ", "unknown packet tag");
 	}
 }

mercurial