public SingleConnectionManager(SingleServerConfig cfg, Config config) {
    MasterSlaveServersConfig newconfig = new MasterSlaveServersConfig();
    String addr = cfg.getAddress().getHost() + ":" + cfg.getAddress().getPort();
    newconfig.setRetryAttempts(cfg.getRetryAttempts());
    newconfig.setRetryInterval(cfg.getRetryInterval());
    newconfig.setTimeout(cfg.getTimeout());
    newconfig.setPingTimeout(cfg.getPingTimeout());
    newconfig.setPassword(cfg.getPassword());
    newconfig.setDatabase(cfg.getDatabase());
    newconfig.setClientName(cfg.getClientName());
    newconfig.setMasterAddress(addr);
    newconfig.setMasterConnectionPoolSize(cfg.getConnectionPoolSize());
    newconfig.setSubscriptionsPerConnection(cfg.getSubscriptionsPerConnection());
    newconfig.setSlaveSubscriptionConnectionPoolSize(cfg.getSubscriptionConnectionPoolSize());

    init(newconfig, config);

    if (cfg.isDnsMonitoring()) {
      try {
        this.currentMaster.set(InetAddress.getByName(cfg.getAddress().getHost()));
      } catch (UnknownHostException e) {
        throw new RedisConnectionException("Unknown host", e);
      }
      log.debug("DNS monitoring enabled; Current master set to {}", currentMaster.get());
      monitorDnsChange(cfg);
    }
  }