+ if (peer_choosed != NULL)
+ XBT_DEBUG("(%d) update_choked peers unchoked (%d) ; int (%d) ; choked (%d) ",
+ peer->id, peer_choosed->id, peer_choosed->interested, peer_choosed->choked_upload);
+
+ if (peer_choked != peer_choosed) {
+ if (peer_choked != NULL) {
+ xbt_assert((!peer_choked->choked_upload), "Tries to choked a choked peer");
+ peer_choked->choked_upload = 1;
+ xbt_assert((*((int *) key_choked) == peer_choked->id), "WTF !!!");
+ update_active_peers_set(peer, peer_choked);
+ XBT_DEBUG("(%d) Sending a CHOKE to %d", peer->id, peer_choked->id);
+ send_choked(peer, peer_choked->mailbox);
+ }
+ if (peer_choosed != NULL) {
+ xbt_assert((peer_choosed->choked_upload), "Tries to unchoked an unchoked peer");
+ peer_choosed->choked_upload = 0;
+ xbt_dict_set_ext(peer->active_peers, (char *) &peer_choosed->id, sizeof(int), peer_choosed, NULL);
+ peer_choosed->last_unchoke = MSG_get_clock();
+ XBT_DEBUG("(%d) Sending a UNCHOKE to %d", peer->id, peer_choosed->id);
+ update_active_peers_set(peer, peer_choosed);
+ send_unchoked(peer, peer_choosed->mailbox);
+ }
+ }