pub(crate) async fn client_setup( swarm: &mut Swarm<Behaviour>, redis: &mut RedisClient, relay_addr: Multiaddr, mode: Mode, ) -> Result<Either<ListenerId, ConnectionId>>