@@ -168,58 +168,48 @@ fn main() {
168168 None => Config :: new ( ) ,
169169 } ;
170170
171- let mut has_provided_server_config = false ;
172-
173- if matches. value_of ( "SERVER_ADDR" ) . is_some ( ) && matches. value_of ( "PASSWORD" ) . is_some ( ) &&
174- matches. value_of ( "ENCRYPT_METHOD" ) . is_some ( )
175- {
176- let ( svr_addr, password, method) = matches
177- . value_of ( "SERVER_ADDR" )
178- . and_then ( |svr_addr| {
179- matches. value_of ( "PASSWORD" ) . map ( |pwd| ( svr_addr, pwd) )
180- } )
181- . and_then ( |( svr_addr, pwd) | {
182- matches. value_of ( "ENCRYPT_METHOD" ) . map (
183- |m| ( svr_addr, pwd, m) ,
184- )
185- } )
186- . unwrap ( ) ;
171+ let has_provided_server_config = match (
172+ matches. value_of ( "SERVER_ADDR" ) ,
173+ matches. value_of ( "PASSWORD" ) ,
174+ matches. value_of ( "ENCRYPT_METHOD" ) ,
175+ ) {
176+ ( Some ( svr_addr) , Some ( password) , Some ( method) ) => {
177+ let method = match method. parse ( ) {
178+ Ok ( m) => m,
179+ Err ( err) => {
180+ panic ! ( "Does not support {:?} method: {:?}" , method, err) ;
181+ }
182+ } ;
187183
188- let method = match method. parse ( ) {
189- Ok ( m) => m,
190- Err ( err) => {
191- panic ! ( "Does not support {:?} method: {:?}" , method, err) ;
192- }
193- } ;
194-
195- let sc = ServerConfig :: new (
196- svr_addr. parse :: < ServerAddr > ( ) . expect ( "Invalid server addr" ) ,
197- password. to_owned ( ) ,
198- method,
199- None ,
200- ) ;
201-
202- config. server . push ( sc) ;
203- has_provided_server_config = true ;
204- } else if matches. value_of ( "SERVER_ADDR" ) . is_none ( ) && matches. value_of ( "PASSWORD" ) . is_none ( ) &&
205- matches. value_of ( "ENCRYPT_METHOD" ) . is_none ( )
206- {
207- // Does not provide server config
208- } else {
209- panic ! ( "`server-addr`, `method` and `password` should be provided together" ) ;
210- }
184+ let sc = ServerConfig :: new (
185+ svr_addr. parse :: < ServerAddr > ( ) . expect ( "Invalid server addr" ) ,
186+ password. to_owned ( ) ,
187+ method,
188+ None ,
189+ ) ;
211190
212- let has_provided_local_config = if matches. value_of ( "LOCAL_ADDR" ) . is_some ( ) {
213- let local_addr = matches. value_of ( "LOCAL_ADDR" ) . unwrap ( ) ;
191+ config. server . push ( sc) ;
192+ true
193+ }
194+ ( None , None , None ) => {
195+ // Does not provide server config
196+ false
197+ }
198+ _ => {
199+ panic ! ( "`server-addr`, `method` and `password` should be provided together" ) ;
200+ }
201+ } ;
214202
215- let local_addr: SocketAddr = local_addr. parse ( ) . expect (
216- "`local-addr` is not a valid IP address" ,
217- ) ;
203+ let has_provided_local_config = match matches. value_of ( "LOCAL_ADDR" ) {
204+ Some ( local_addr) => {
205+ let local_addr: SocketAddr = local_addr. parse ( ) . expect (
206+ "`local-addr` is not a valid IP address" ,
207+ ) ;
218208
219- config. local = Some ( local_addr) ;
220- true
221- } else {
222- false
209+ config. local = Some ( local_addr) ;
210+ true
211+ }
212+ None => false ,
223213 } ;
224214
225215 if !has_provided_config && !( has_provided_server_config && has_provided_local_config) {
0 commit comments