22
33use std:: { net:: IpAddr , path:: PathBuf , process, time:: Duration } ;
44
5- use clap:: { App , Arg , ArgGroup , ArgMatches , ErrorKind as ClapErrorKind } ;
5+ use clap:: { Arg , ArgGroup , ArgMatches , Command , ErrorKind as ClapErrorKind } ;
66use futures:: future:: { self , Either } ;
77use log:: { info, trace} ;
88use tokio:: { self , runtime:: Builder } ;
@@ -27,12 +27,11 @@ use shadowsocks_service::{
2727use crate :: logging;
2828use crate :: {
2929 config:: { Config as ServiceConfig , RuntimeMode } ,
30- monitor,
31- validator,
30+ monitor, validator,
3231} ;
3332
3433/// Defines command line options
35- pub fn define_command_line_options ( mut app : App < ' _ > ) -> App < ' _ > {
34+ pub fn define_command_line_options ( mut app : Command < ' _ > ) -> Command < ' _ > {
3635 app = app. arg (
3736 Arg :: new ( "CONFIG" )
3837 . short ( 'c' )
@@ -432,7 +431,7 @@ pub fn main(matches: &ArgMatches) {
432431
433432 let timeout = match matches. value_of_t :: < u64 > ( "TIMEOUT" ) {
434433 Ok ( t) => Some ( Duration :: from_secs ( t) ) ,
435- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => None ,
434+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => None ,
436435 Err ( err) => err. exit ( ) ,
437436 } ;
438437
@@ -456,7 +455,7 @@ pub fn main(matches: &ArgMatches) {
456455
457456 match matches. value_of_t :: < ServerConfig > ( "URL" ) {
458457 Ok ( svr_addr) => config. server . push ( svr_addr) ,
459- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
458+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
460459 Err ( err) => err. exit ( ) ,
461460 }
462461
@@ -494,7 +493,7 @@ pub fn main(matches: &ArgMatches) {
494493 let mut local_config = LocalConfig :: new ( protocol) ;
495494 match matches. value_of_t :: < ServerAddr > ( "LOCAL_ADDR" ) {
496495 Ok ( local_addr) => local_config. addr = Some ( local_addr) ,
497- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => {
496+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => {
498497 #[ cfg( feature = "local-tun" ) ]
499498 if protocol == ProtocolType :: Tun {
500499 // `tun` protocol doesn't need --local-addr
@@ -507,28 +506,28 @@ pub fn main(matches: &ArgMatches) {
507506
508507 match matches. value_of_t :: < ServerAddr > ( "UDP_BIND_ADDR" ) {
509508 Ok ( udp_bind_addr) => local_config. udp_addr = Some ( udp_bind_addr) ,
510- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
509+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
511510 Err ( err) => err. exit ( ) ,
512511 }
513512
514513 #[ cfg( feature = "local-tunnel" ) ]
515514 match matches. value_of_t :: < Address > ( "FORWARD_ADDR" ) {
516515 Ok ( addr) => local_config. forward_addr = Some ( addr) ,
517- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
516+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
518517 Err ( err) => err. exit ( ) ,
519518 }
520519
521520 #[ cfg( feature = "local-redir" ) ]
522521 {
523522 match matches. value_of_t :: < RedirType > ( "TCP_REDIR" ) {
524523 Ok ( tcp_redir) => local_config. tcp_redir = tcp_redir,
525- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
524+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
526525 Err ( err) => err. exit ( ) ,
527526 }
528527
529528 match matches. value_of_t :: < RedirType > ( "UDP_REDIR" ) {
530529 Ok ( udp_redir) => local_config. udp_redir = udp_redir,
531- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
530+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
532531 Err ( err) => err. exit ( ) ,
533532 }
534533 }
@@ -562,13 +561,13 @@ pub fn main(matches: &ArgMatches) {
562561
563562 match matches. value_of_t :: < NameServerAddr > ( "LOCAL_DNS_ADDR" ) {
564563 Ok ( addr) => local_config. local_dns_addr = Some ( addr) ,
565- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
564+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
566565 Err ( err) => err. exit ( ) ,
567566 }
568567
569568 match matches. value_of_t :: < RemoteDnsAddress > ( "REMOTE_DNS_ADDR" ) {
570569 Ok ( addr) => local_config. remote_dns_addr = Some ( addr. 0 ) ,
571- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
570+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
572571 Err ( err) => err. exit ( ) ,
573572 }
574573 }
@@ -588,7 +587,7 @@ pub fn main(matches: &ArgMatches) {
588587
589588 config. local . push ( local_dns_config) ;
590589 }
591- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
590+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
592591 Err ( err) => err. exit ( ) ,
593592 }
594593 }
@@ -599,19 +598,19 @@ pub fn main(matches: &ArgMatches) {
599598
600599 match matches. value_of_t :: < IpNet > ( "TUN_INTERFACE_ADDRESS" ) {
601600 Ok ( tun_address) => local_config. tun_interface_address = Some ( tun_address) ,
602- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
601+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
603602 Err ( err) => err. exit ( ) ,
604603 }
605604 match matches. value_of_t :: < String > ( "TUN_INTERFACE_NAME" ) {
606605 Ok ( tun_name) => local_config. tun_interface_name = Some ( tun_name) ,
607- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
606+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
608607 Err ( err) => err. exit ( ) ,
609608 }
610609
611610 #[ cfg( unix) ]
612611 match matches. value_of_t :: < PathBuf > ( "TUN_DEVICE_FD_FROM_PATH" ) {
613612 Ok ( fd_path) => local_config. tun_device_fd_from_path = Some ( fd_path) ,
614- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
613+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
615614 Err ( err) => err. exit ( ) ,
616615 }
617616 }
@@ -637,34 +636,34 @@ pub fn main(matches: &ArgMatches) {
637636
638637 match matches. value_of_t :: < u64 > ( "TCP_KEEP_ALIVE" ) {
639638 Ok ( keep_alive) => config. keep_alive = Some ( Duration :: from_secs ( keep_alive) ) ,
640- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
639+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
641640 Err ( err) => err. exit ( ) ,
642641 }
643642
644643 #[ cfg( any( target_os = "linux" , target_os = "android" ) ) ]
645644 match matches. value_of_t :: < u32 > ( "OUTBOUND_FWMARK" ) {
646645 Ok ( mark) => config. outbound_fwmark = Some ( mark) ,
647- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
646+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
648647 Err ( err) => err. exit ( ) ,
649648 }
650649
651650 #[ cfg( target_os = "freebsd" ) ]
652651 match matches. value_of_t :: < u32 > ( "OUTBOUND_USER_COOKIE" ) {
653652 Ok ( user_cookie) => config. outbound_user_cookie = Some ( user_cookie) ,
654- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
653+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
655654 Err ( err) => err. exit ( ) ,
656655 }
657656
658657 match matches. value_of_t :: < String > ( "OUTBOUND_BIND_INTERFACE" ) {
659658 Ok ( iface) => config. outbound_bind_interface = Some ( iface) ,
660- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
659+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
661660 Err ( err) => err. exit ( ) ,
662661 }
663662
664663 #[ cfg( all( unix, not( target_os = "android" ) ) ) ]
665664 match matches. value_of_t :: < u64 > ( "NOFILE" ) {
666665 Ok ( nofile) => config. nofile = Some ( nofile) ,
667- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
666+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
668667 Err ( err) => err. exit ( ) ,
669668 }
670669
@@ -689,40 +688,40 @@ pub fn main(matches: &ArgMatches) {
689688
690689 match matches. value_of_t :: < u64 > ( "UDP_TIMEOUT" ) {
691690 Ok ( udp_timeout) => config. udp_timeout = Some ( Duration :: from_secs ( udp_timeout) ) ,
692- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
691+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
693692 Err ( err) => err. exit ( ) ,
694693 }
695694
696695 match matches. value_of_t :: < usize > ( "UDP_MAX_ASSOCIATIONS" ) {
697696 Ok ( udp_max_assoc) => config. udp_max_associations = Some ( udp_max_assoc) ,
698- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
697+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
699698 Err ( err) => err. exit ( ) ,
700699 }
701700
702701 match matches. value_of_t :: < u32 > ( "INBOUND_SEND_BUFFER_SIZE" ) {
703702 Ok ( bs) => config. inbound_send_buffer_size = Some ( bs) ,
704- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
703+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
705704 Err ( err) => err. exit ( ) ,
706705 }
707706 match matches. value_of_t :: < u32 > ( "INBOUND_RECV_BUFFER_SIZE" ) {
708707 Ok ( bs) => config. inbound_recv_buffer_size = Some ( bs) ,
709- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
708+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
710709 Err ( err) => err. exit ( ) ,
711710 }
712711 match matches. value_of_t :: < u32 > ( "OUTBOUND_SEND_BUFFER_SIZE" ) {
713712 Ok ( bs) => config. outbound_send_buffer_size = Some ( bs) ,
714- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
713+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
715714 Err ( err) => err. exit ( ) ,
716715 }
717716 match matches. value_of_t :: < u32 > ( "OUTBOUND_RECV_BUFFER_SIZE" ) {
718717 Ok ( bs) => config. outbound_recv_buffer_size = Some ( bs) ,
719- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
718+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
720719 Err ( err) => err. exit ( ) ,
721720 }
722721
723722 match matches. value_of_t :: < IpAddr > ( "OUTBOUND_BIND_ADDR" ) {
724723 Ok ( bind_addr) => config. outbound_bind_addr = Some ( bind_addr) ,
725- Err ( ref err) if err. kind == ClapErrorKind :: ArgumentNotFound => { }
724+ Err ( ref err) if err. kind ( ) == ClapErrorKind :: ArgumentNotFound => { }
726725 Err ( err) => err. exit ( ) ,
727726 }
728727
0 commit comments