void FailoverService::init_failover_mode()

in src/failover/failover_service.cc [121:136]


void FailoverService::init_failover_mode(const std::string& host) {
    if (this->conn_info_->contains(FAILOVER_MODE_KEY)) {
        std::string mode = StringHelper::ToString(this->conn_info_->at(FAILOVER_MODE_KEY));

        for (auto failover_mode_mapping : FAILOVER_MODE_MAPPING) {
            if (strcmp_case_insensitive(mode.c_str(), failover_mode_mapping.mode_str) == 0) {
                this->failover_mode_ = failover_mode_mapping.mode;
                break;
            }
        }
    }

    if (this->failover_mode_ == UNKNOWN_FAILOVER_MODE) {
        this->failover_mode_ = RdsUtils::IsRdsReaderClusterDns(host) ? READER_OR_WRITER : STRICT_WRITER;
    }
}