~singpolyma/biboumi

45aebb8d8a3088058ae65b154496ce1fb2e3d94d — louiz’ 7 years ago b292256
Avoid an exception due to some bad logic in the DNS resolution mechanic

fix #3207
M louloulibs/network/dns_socket_handler.cpp => louloulibs/network/dns_socket_handler.cpp +2 -1
@@ 42,7 42,8 @@ bool DNSSocketHandler::is_connected() const

void DNSSocketHandler::remove_from_poller()
{
  this->poller->remove_socket_handler(this->socket);
  if (this->poller->is_managing_socket(this->socket))
    this->poller->remove_socket_handler(this->socket);
}

#endif /* CARES_FOUND */

M louloulibs/network/poller.cpp => louloulibs/network/poller.cpp +5 -0
@@ 226,3 226,8 @@ size_t Poller::size() const
{
  return this->socket_handlers.size();
}

bool Poller::is_managing_socket(const socket_t socket) const
{
  return (this->socket_handlers.find(socket) != this->socket_handlers.end());
}

M louloulibs/network/poller.hpp => louloulibs/network/poller.hpp +4 -0
@@ 74,6 74,10 @@ public:
   * Returns the number of SocketHandlers managed by the poller.
   */
  size_t size() const;
  /**
   * Whether the given socket is managed by the poller
   */
   bool is_managing_socket(const socket_t socket) const;

private:
  /**