X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/417742f1c7f6545db82079acd702fde03547d400..783573d576fa9ac43c007c6031bce185d882f92b:/examples/msg/dht-kademlia/node.c diff --git a/examples/msg/dht-kademlia/node.c b/examples/msg/dht-kademlia/node.c index 08aa37c036..c0741d681c 100644 --- a/examples/msg/dht-kademlia/node.c +++ b/examples/msg/dht-kademlia/node.c @@ -20,7 +20,7 @@ node_t node_init(unsigned int node_id) node->id = node_id; node->table = routing_table_init(node_id); - sprintf(node->mailbox, "%0*x", MAILBOX_NAME_SIZE, node_id); + snprintf(node->mailbox,MAILBOX_NAME_SIZE-1, "%d", node_id); node->find_node_failed = 0; node->find_node_success = 0; @@ -115,20 +115,20 @@ unsigned int get_id_in_prefix(unsigned int id, unsigned int prefix) { if (prefix == 0) { return 0; + } else { + return (1U << ((unsigned int)(prefix - 1))) ^ id; } - unsigned int n = 1 << (prefix - 1); - return n ^ id; } /** @brief Returns the prefix of an identifier. * The prefix is the id of the bucket in which the remote identifier xor our identifier should be stored. - * @param id : bigunsigned int id to test + * @param id : big unsigned int id to test * @param nb_bits : key size */ unsigned int get_node_prefix(unsigned int id, unsigned int nb_bits) { - unsigned int j, size = sizeof(unsigned int) * 8; - for (j = 0; j < size; j++) { + unsigned int size = sizeof(unsigned int) * 8; + for (unsigned int j = 0; j < size; j++) { if (((id >> (size - 1 - j)) & 0x1) != 0) { return nb_bits - (j); } @@ -136,11 +136,10 @@ unsigned int get_node_prefix(unsigned int id, unsigned int nb_bits) return 0; } -/** @brief Gets the mailbox name of a host given its identifier - */ +/** @brief Gets the mailbox name of a host given its identifier */ void get_node_mailbox(unsigned int id, char *mailbox) { - sprintf(mailbox, "%0*x", MAILBOX_NAME_SIZE, id); + snprintf(mailbox,MAILBOX_NAME_SIZE-1, "%d", id); } /** Constructor, build a new contact information. */