@@ -49,7 +49,6 @@ pub struct ConnectionOptions {
4949 port : Option < u16 > ,
5050 unix_socket : Option < CString > ,
5151 client_flags : CapabilityFlags ,
52- #[ cfg( not( windows) ) ]
5352 ssl_mode : Option < mysql_ssl_mode > ,
5453}
5554
@@ -78,23 +77,26 @@ impl ConnectionOptions {
7877 _ => None ,
7978 } ;
8079
81- #[ cfg( not( windows) ) ]
82- let ssl_mode = match query_pairs. get ( "ssl_mode" ) {
83- Some ( v) => {
84- let ssl_mode = match v. to_lowercase ( ) . as_str ( ) {
85- "disabled" => mysql_ssl_mode:: SSL_MODE_DISABLED ,
86- "preferred" => mysql_ssl_mode:: SSL_MODE_PREFERRED ,
87- "required" => mysql_ssl_mode:: SSL_MODE_REQUIRED ,
88- "verify_ca" => mysql_ssl_mode:: SSL_MODE_VERIFY_CA ,
89- "verify_identity" => mysql_ssl_mode:: SSL_MODE_VERIFY_IDENTITY ,
90- _ => {
91- let msg = "unknown ssl_mode" ;
92- return Err ( ConnectionError :: InvalidConnectionUrl ( msg. into ( ) ) ) ;
93- }
94- } ;
95- Some ( ssl_mode)
80+ let ssl_mode = if cfg ! ( target_os = "windows" ) {
81+ None
82+ } else {
83+ match query_pairs. get ( "ssl_mode" ) {
84+ Some ( v) => {
85+ let ssl_mode = match v. to_lowercase ( ) . as_str ( ) {
86+ "disabled" => mysql_ssl_mode:: SSL_MODE_DISABLED ,
87+ "preferred" => mysql_ssl_mode:: SSL_MODE_PREFERRED ,
88+ "required" => mysql_ssl_mode:: SSL_MODE_REQUIRED ,
89+ "verify_ca" => mysql_ssl_mode:: SSL_MODE_VERIFY_CA ,
90+ "verify_identity" => mysql_ssl_mode:: SSL_MODE_VERIFY_IDENTITY ,
91+ _ => {
92+ let msg = "unknown ssl_mode" ;
93+ return Err ( ConnectionError :: InvalidConnectionUrl ( msg. into ( ) ) ) ;
94+ }
95+ } ;
96+ Some ( ssl_mode)
97+ }
98+ _ => None ,
9699 }
97- _ => None ,
98100 } ;
99101
100102 let host = match url. host ( ) {
@@ -125,7 +127,6 @@ impl ConnectionOptions {
125127 port : url. port ( ) ,
126128 unix_socket : unix_socket,
127129 client_flags : client_flags,
128- #[ cfg( not( windows) ) ]
129130 ssl_mode : ssl_mode,
130131 } )
131132 }
@@ -158,7 +159,6 @@ impl ConnectionOptions {
158159 self . client_flags
159160 }
160161
161- #[ cfg( not( windows) ) ]
162162 pub fn ssl_mode ( & self ) -> Option < mysql_ssl_mode > {
163163 self . ssl_mode
164164 }
@@ -298,29 +298,32 @@ fn unix_socket_tests() {
298298 ) ;
299299}
300300
301- #[ cfg( not( windows) ) ]
302301#[ test]
303302fn ssl_mode ( ) {
304303 let ssl_mode = |url| ConnectionOptions :: parse ( url) . unwrap ( ) . ssl_mode ( ) ;
305- assert_eq ! ( ssl_mode( "mysql://localhost" ) , None ) ;
306- assert_eq ! (
307- ssl_mode( "mysql://localhost?ssl_mode=disabled" ) ,
308- Some ( mysql_ssl_mode:: SSL_MODE_DISABLED )
309- ) ;
310- assert_eq ! (
311- ssl_mode( "mysql://localhost?ssl_mode=PREFERRED" ) ,
312- Some ( mysql_ssl_mode:: SSL_MODE_PREFERRED )
313- ) ;
314- assert_eq ! (
315- ssl_mode( "mysql://localhost?ssl_mode=required" ) ,
316- Some ( mysql_ssl_mode:: SSL_MODE_REQUIRED )
317- ) ;
318- assert_eq ! (
319- ssl_mode( "mysql://localhost?ssl_mode=VERIFY_CA" ) ,
320- Some ( mysql_ssl_mode:: SSL_MODE_VERIFY_CA )
321- ) ;
322- assert_eq ! (
323- ssl_mode( "mysql://localhost?ssl_mode=verify_identity" ) ,
324- Some ( mysql_ssl_mode:: SSL_MODE_VERIFY_IDENTITY )
325- ) ;
304+ if cfg ! ( target_os = "windows" ) {
305+ assert_eq ! ( ssl_mode( "mysql://localhost?ssl_mode=required" ) , None ) ;
306+ } else {
307+ assert_eq ! ( ssl_mode( "mysql://localhost" ) , None ) ;
308+ assert_eq ! (
309+ ssl_mode( "mysql://localhost?ssl_mode=disabled" ) ,
310+ Some ( mysql_ssl_mode:: SSL_MODE_DISABLED )
311+ ) ;
312+ assert_eq ! (
313+ ssl_mode( "mysql://localhost?ssl_mode=PREFERRED" ) ,
314+ Some ( mysql_ssl_mode:: SSL_MODE_PREFERRED )
315+ ) ;
316+ assert_eq ! (
317+ ssl_mode( "mysql://localhost?ssl_mode=required" ) ,
318+ Some ( mysql_ssl_mode:: SSL_MODE_REQUIRED )
319+ ) ;
320+ assert_eq ! (
321+ ssl_mode( "mysql://localhost?ssl_mode=VERIFY_CA" ) ,
322+ Some ( mysql_ssl_mode:: SSL_MODE_VERIFY_CA )
323+ ) ;
324+ assert_eq ! (
325+ ssl_mode( "mysql://localhost?ssl_mode=verify_identity" ) ,
326+ Some ( mysql_ssl_mode:: SSL_MODE_VERIFY_IDENTITY )
327+ ) ;
328+ }
326329}
0 commit comments