# # # patch "server_manager.cc" # from [9966e481799456f287eb05efbad2122f80079628] # to [82f70dbe4c46d8b372d5e499b32f479904000a6a] # # patch "server_manager.hh" # from [f388100b13bf156a491eed4985dafaf47a02d44d] # to [e61db0e206910c391b221d19bdb355fe1937db84] # ============================================================ --- server_manager.cc 9966e481799456f287eb05efbad2122f80079628 +++ server_manager.cc 82f70dbe4c46d8b372d5e499b32f479904000a6a @@ -175,14 +175,14 @@ map >::iterator i; if (!host.empty() && !by_host.empty()) { - i = --by_host.upper_bound(host); - if (i->first == prefix(host)) + i = by_host.lower_bound(host); + if (i != by_host.end() && i->first == prefix(host)) srv = i->second; } if (!srv && !pattern.empty() && !by_pattern.empty()) { - i = --by_pattern.upper_bound(pattern); - if (i->first == prefix(host)) + i = by_pattern.lower_bound(pattern); + if (i != by_pattern.end() && i->first == prefix(host)) srv = i->second; } if (srv) ============================================================ --- server_manager.hh f388100b13bf156a491eed4985dafaf47a02d44d +++ server_manager.hh e61db0e206910c391b221d19bdb355fe1937db84 @@ -44,7 +44,7 @@ bool operator==(prefix const &r) const; bool operator>(prefix const &r) const; }; - map > by_host, by_pattern; + map, std::greater > by_host, by_pattern; map > by_name; set > live; map, serverdata> servers;