X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Fport.cc;h=01e0e88b34426e1f014db5fd43346903d004570e;hb=f154f10002fe127f9defcf5f70f9654c2816b965;hp=7dbba4e08e728f17aac89283f7e77d37a3968d50;hpb=5d68a7b1d0fff81d547b8a74ad72247437f412c5;p=awesomized%2Flibmemcached diff --git a/libtest/port.cc b/libtest/port.cc index 7dbba4e0..01e0e88b 100644 --- a/libtest/port.cc +++ b/libtest/port.cc @@ -69,9 +69,9 @@ struct socket_st { void release(in_port_t _arg) { - for(socket_port_t::iterator iter= _pair.begin(); - iter != _pair.end(); - iter++) + for (socket_port_t::iterator iter= _pair.begin(); + iter != _pair.end(); + ++iter) { if ((*iter).second == _arg) { @@ -83,9 +83,9 @@ struct socket_st { ~socket_st() { - for(socket_port_t::iterator iter= _pair.begin(); - iter != _pair.end(); - iter++) + for (socket_port_t::iterator iter= _pair.begin(); + iter != _pair.end(); + ++iter) { shutdown((*iter).first, SHUT_RDWR); close((*iter).first); @@ -120,7 +120,7 @@ in_port_t get_free_port() int retries= 1024; - while (retries--) + while (--retries) { int sd; if ((sd= socket(AF_INET, SOCK_STREAM, 0)) != -1) @@ -155,11 +155,21 @@ in_port_t get_free_port() } // We handle the case where if we max out retries, we still abort. - if (ret_port <= 1024) + if (retries == 0) + { + fatal_message("No port could be found, exhausted retry"); + } + + if (ret_port == 0) { fatal_message("No port could be found"); } + if (ret_port <= 1024) + { + fatal_message("No port could be found, though some where available below or at 1024"); + } + return ret_port; }