From: Alan T. DeKok Date: Wed, 15 Jun 2011 08:00:29 +0000 (+0200) Subject: Make home servers unique by source IP, too X-Git-Tag: release_3_0_0_beta0~770 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12d87590f7b03f315f14d9b905ed550ddceccf7c;p=thirdparty%2Ffreeradius-server.git Make home servers unique by source IP, too --- diff --git a/src/main/realms.c b/src/main/realms.c index 6ca664bce3a..30fc25a3b21 100644 --- a/src/main/realms.c +++ b/src/main/realms.c @@ -149,26 +149,24 @@ static int home_server_name_cmp(const void *one, const void *two) static int home_server_addr_cmp(const void *one, const void *two) { + int rcode; const home_server *a = one; const home_server *b = two; if (a->server && !b->server) return -1; if (!a->server && b->server) return +1; - if (a->server && b->server) { - int rcode = a->type - b->type; + rcode = a->type - b->type; if (rcode != 0) return rcode; return strcmp(a->server, b->server); } -#ifdef WITH_TCP - if (a->proto < b->proto) return -1; - if (a->proto > b->proto) return +1; -#endif - if (a->port < b->port) return -1; if (a->port > b->port) return +1; + rcode = fr_ipaddr_cmp(&a->src_ipaddr, &b->src_ipaddr); + if (rcode != 0) return rcode; + return fr_ipaddr_cmp(&a->ipaddr, &b->ipaddr); }