@@ -130,16 +130,30 @@ void Configuration::LoadDsn(const std::string& dsn) {
130130 Set (FlightSqlConnection::TOKEN , ReadDsnString (dsn, FlightSqlConnection::TOKEN ));
131131 Set (FlightSqlConnection::UID , ReadDsnString (dsn, FlightSqlConnection::UID ));
132132 Set (FlightSqlConnection::PWD , ReadDsnString (dsn, FlightSqlConnection::PWD ));
133- Set (FlightSqlConnection::USE_ENCRYPTION ,
134- ReadDsnString (dsn, FlightSqlConnection::USE_ENCRYPTION , DEFAULT_ENABLE_ENCRYPTION ));
135133 Set (FlightSqlConnection::TRUSTED_CERTS ,
136134 ReadDsnString (dsn, FlightSqlConnection::TRUSTED_CERTS ));
135+
136+ #ifdef __APPLE__
137+ // macOS iODBC treats non-empty defaults as the real values when reading from system
138+ // DSN, so we don't pass defaults on macOS.
139+ // GH-49387 TODO: enable default values on macOS
140+ Set (FlightSqlConnection::USE_ENCRYPTION ,
141+ ReadDsnString (dsn, FlightSqlConnection::USE_ENCRYPTION ));
142+ Set (FlightSqlConnection::USE_SYSTEM_TRUST_STORE ,
143+ ReadDsnString (dsn, FlightSqlConnection::USE_SYSTEM_TRUST_STORE ));
144+ Set (FlightSqlConnection::DISABLE_CERTIFICATE_VERIFICATION ,
145+ ReadDsnString (dsn, FlightSqlConnection::DISABLE_CERTIFICATE_VERIFICATION ));
146+ #else
147+ // Windows and Linux
148+ Set (FlightSqlConnection::USE_ENCRYPTION ,
149+ ReadDsnString (dsn, FlightSqlConnection::USE_ENCRYPTION , DEFAULT_ENABLE_ENCRYPTION ));
137150 Set (FlightSqlConnection::USE_SYSTEM_TRUST_STORE ,
138151 ReadDsnString (dsn, FlightSqlConnection::USE_SYSTEM_TRUST_STORE ,
139152 DEFAULT_USE_CERT_STORE ));
140153 Set (FlightSqlConnection::DISABLE_CERTIFICATE_VERIFICATION ,
141154 ReadDsnString (dsn, FlightSqlConnection::DISABLE_CERTIFICATE_VERIFICATION ,
142155 DEFAULT_DISABLE_CERT_VERIFICATION ));
156+ #endif
143157
144158 auto customKeys = ReadAllKeys (dsn);
145159 RemoveAllKnownKeys (customKeys);
0 commit comments