Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
use bitfields as bitfields
[simgrid.git] / examples / msg / app-bittorrent / connection.c
index 847a6c4..5548625 100644 (file)
@@ -15,7 +15,7 @@ connection_t connection_new(int id)
 
   connection->id = id;
   connection->mailbox = bprintf("%d", id);
-  connection->bitfield = NULL;
+  connection->bitfield = 0;
   connection->current_piece = -1;
   connection->interested = 0;
   connection->am_interested = 0;
@@ -35,7 +35,10 @@ void connection_add_speed_value(connection_t connection, double speed)
 void connection_free(void *data)
 {
   connection_t co = (connection_t) data;
-  xbt_free(co->bitfield);
   xbt_free(co->mailbox);
   xbt_free(co);
 }
+
+int connection_has_piece(connection_t connection, unsigned int piece){
+  return !!(connection->bitfield & 1<<piece);
+}