message: Retry asio::error::would_block, ignore all other exceptions in send_to
diff: @@ -48,10 +48,8 @@ namespace fc
  }
  catch(const boost::system::system_error& e)
  {
  - if(e.code() != boost::asio::error::would_block)
  - throw;
  - }
  -
  + if(e.code() == boost::asio::error::would_block)
  + {
  auto send_buffer_ptr = std::make_shared<std::vector<char>>(buffer, buffer+length);
  my->_sock->async_send_to(boost::asio::buffer(send_buffer_ptr.get(), length), to,
  [send_buffer_ptr](const boost::system::error_code& /*ec*/, std::size_t /*bytes_transferred*/)
  @@ -60,6 +58,9 @@ namespace fc
  // log to catch anything that doesn't make it across the network.
  });
  }
  + // All other exceptions ignored.
  + }
  + }
  void udp_socket::send_to(const std::shared_ptr<const char>& buffer, size_t length,
  boost::asio::ip::udp::endpoint& to)
  @@ -71,10 +72,8 @@ namespace fc
  }
  catch(const boost::system::system_error& e)
  {
  - if(e.code() != boost::asio::error::would_block)
  - throw;
  - }
  -
  + if(e.code() == boost::asio::error::would_block)
  + {
  auto preserved_buffer_ptr = buffer;
  my->_sock->async_send_to(boost::asio::buffer(preserved_buffer_ptr.get(), length), to,
  [preserved_buffer_ptr](const boost::system::error_code& /*ec*/, std::size_t /*bytes_transferred*/)
  @@ -83,6 +82,9 @@ namespace fc
  // log to catch anything that doesn't make it across the network.
  });
  }
  + // All other exceptions ignored.
  + }
  + }
  void udp_socket::open()
  {
  