Reconnect to discoverd when the connection drops

This should use the map of services so that it is O(N), the slice returned is just a flattened version of the map.