X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8282d03e173656b11ad6456aff12afa1ea8a9801..315c1504ff4aec5188611d052a65c97aec85cd92:/examples/msg/dht-kademlia/node.c diff --git a/examples/msg/dht-kademlia/node.c b/examples/msg/dht-kademlia/node.c index 99ee2942e2..2d8c22fd54 100644 --- a/examples/msg/dht-kademlia/node.c +++ b/examples/msg/dht-kademlia/node.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2010, 2012-2016. The SimGrid Team. +/* Copyright (c) 2010, 2012-2017. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -20,7 +20,7 @@ node_t node_init(unsigned int node_id) node->id = node_id; node->table = routing_table_init(node_id); - snprintf(node->mailbox,MAILBOX_NAME_SIZE-1, "%d", node_id); + snprintf(node->mailbox, MAILBOX_NAME_SIZE - 1, "%u", 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); } @@ -139,7 +139,7 @@ unsigned int get_node_prefix(unsigned int id, unsigned int nb_bits) /** @brief Gets the mailbox name of a host given its identifier */ void get_node_mailbox(unsigned int id, char *mailbox) { - snprintf(mailbox,MAILBOX_NAME_SIZE-1, "%d", id); + snprintf(mailbox, MAILBOX_NAME_SIZE - 1, "%u", id); } /** Constructor, build a new contact information. */