* User parameters for transferred file data. For the test, the default values are :
* File size: 10 pieces * 5 blocks/piece * 16384 bytes/block = 819200 bytes
*/
-#define FILE_PIECES 10
-#define PIECES_BLOCKS 5
+#define FILE_PIECES 10U
+#define PIECES_BLOCKS 5U
#define BLOCK_SIZE 16384
static const unsigned long int FILE_SIZE = FILE_PIECES * PIECES_BLOCKS * BLOCK_SIZE;
}
}
-/** @brief Retrieves the peer list from the tracker
+/** @brief Retrieves the peer list from the tracker
* @param peer current peer data
*/
int get_peers_data(peer_t peer)
xbt_free(peer);
}
-/** @brief Returns if a peer has finished downloading the file
+/** @brief Returns if a peer has finished downloading the file
* @param bitfield peer bitfield
*/
int has_finished(unsigned int bitfield)
xbt_assert((remote_peer != NULL), "A non-in-our-list peer has sent us a message. WTH ?");
xbt_assert(!remote_peer->choked_download);
remote_peer->choked_download = 1;
- remove_current_piece(peer, remote_peer, remote_peer->current_piece);
+ if (remote_peer->current_piece != -1)
+ remove_current_piece(peer, remote_peer, remote_peer->current_piece);
break;
case MESSAGE_HAVE:
XBT_DEBUG("\t for piece %d", message->index);
char *key;
xbt_dict_cursor_t cursor;
connection_t connection;
- int interested;
xbt_dict_foreach(peer->peers, cursor, key, connection) {
- interested = 0;
+ int interested = 0;
if (connection->am_interested != 0) {
//Check if the peer still has a piece we want.
for (int i = 0; i < FILE_PIECES; i++) {