diff --git a/src/slurmctld/node_mgr.c b/src/slurmctld/node_mgr.c index 2c1e88f3792cf7cf7de6077260106fcf4b25b852..f9fb573bddb699e6d04a128c79b7d686c714f8f7 100644 --- a/src/slurmctld/node_mgr.c +++ b/src/slurmctld/node_mgr.c @@ -478,61 +478,15 @@ find_node_record (char *name) */ static int _hash_index (char *name) { - int i, inx = 0, tmp; + int i = 0; if (node_record_count == 0) return 0; /* degenerate case */ - if ( slurmctld_conf.hash_base == 10 ) { - for (i = 0;; i++) { - tmp = (int) name[i]; - if (tmp == 0) - break; /* end if string */ - if ((tmp >= (int) '0') && (tmp <= (int) '9')) - inx = (inx * slurmctld_conf.hash_base) + - (tmp - (int) '0'); - } - } - - else if ( slurmctld_conf.hash_base == 8 ) { - for (i = 0;; i++) { - tmp = (int) name[i]; - if (tmp == 0) - break; /* end if string */ - if ((tmp >= (int) '0') && (tmp <= (int) '7')) - inx = (inx * slurmctld_conf.hash_base) + - (tmp - (int) '0'); - } - } - - else { - for (i = 0; i < 5; i++) { - tmp = (int) name[i]; - if (tmp == 0) - break; /* end if string */ - if ((tmp >= (int) '0') && (tmp <= (int) '9')) { - /* value 0-9 */ - tmp -= (int) '0'; - } - else if ((tmp >= (int) 'a') && (tmp <= (int) 'z')) { - /* value 10-35 */ - tmp -= (int) 'a'; - tmp += 10; - } - else if ((tmp >= (int) 'a') && (tmp <= (int) 'z')) { - /* value 10-35 */ - tmp -= (int) 'a'; - tmp += 10; - } - else { - tmp = 36; - } - inx = (inx * 37) + tmp; - } - } - - inx = inx % node_record_count; - return inx; + while (*name) + i += (int) *name++; + i %= node_record_count; + return i; }