13
13
14
14
static volatile sig_atomic_t quit = false;
15
15
16
+ static int arg_log_level = -1 ;
16
17
static bool arg_verbose = false;
17
18
static curl_off_t arg_rate_limit_bps = 0 ;
18
19
@@ -470,7 +471,11 @@ static int run(int argc, char *argv[]) {
470
471
}
471
472
}
472
473
473
- /* (void) curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); */
474
+ if (curl_easy_setopt (curl , CURLOPT_VERBOSE , arg_log_level > 4 )) {
475
+ log_error ("Failed to set CURL verbosity." );
476
+ r = - EIO ;
477
+ goto finish ;
478
+ }
474
479
475
480
if (archive_url ) {
476
481
r = acquire_file (rr , curl , archive_url , write_archive );
@@ -540,7 +545,7 @@ static int run(int argc, char *argv[]) {
540
545
}
541
546
542
547
if (curl_easy_setopt (curl , CURLOPT_URL , url_buffer ) != CURLE_OK ) {
543
- log_error ("Failed to set CURL URL to: %s" , index_url );
548
+ log_error ("Failed to set CURL URL to: %s" , url_buffer );
544
549
r = - EIO ;
545
550
goto finish ;
546
551
}
@@ -571,6 +576,12 @@ static int run(int argc, char *argv[]) {
571
576
}
572
577
}
573
578
579
+ if (curl_easy_setopt (curl , CURLOPT_VERBOSE , arg_log_level > 4 )) {
580
+ log_error ("Failed to set CURL verbosity." );
581
+ r = - EIO ;
582
+ goto finish ;
583
+ }
584
+
574
585
log_debug ("Acquiring %s..." , url_buffer );
575
586
576
587
if (robust_curl_easy_perform (curl ) != CURLE_OK ) {
@@ -641,14 +652,19 @@ static void help(void) {
641
652
642
653
static int parse_argv (int argc , char * argv []) {
643
654
655
+ enum {
656
+ ARG_RATE_LIMIT_BPS = 0x100 ,
657
+ };
658
+
644
659
static const struct option options [] = {
645
660
{ "help" , no_argument , NULL , 'h' },
661
+ { "log-level" , required_argument , NULL , 'l' },
646
662
{ "verbose" , no_argument , NULL , 'v' },
647
- { "rate-limit-bps" , required_argument , NULL , 'l' },
663
+ { "rate-limit-bps" , required_argument , NULL , ARG_RATE_LIMIT_BPS },
648
664
{}
649
665
};
650
666
651
- int c ;
667
+ int c , r ;
652
668
653
669
assert (argc >= 0 );
654
670
assert (argv );
@@ -669,19 +685,28 @@ static int parse_argv(int argc, char *argv[]) {
669
685
if (getenv_bool ("CASYNC_VERBOSE" ) > 0 )
670
686
arg_verbose = true;
671
687
672
- while ((c = getopt_long (argc , argv , "hv " , options , NULL )) >= 0 ) {
688
+ while ((c = getopt_long (argc , argv , "hl:v " , options , NULL )) >= 0 ) {
673
689
674
690
switch (c ) {
675
691
676
692
case 'h' :
677
693
help ();
678
694
return 0 ;
679
695
696
+ case 'l' :
697
+ r = set_log_level_from_string (optarg );
698
+ if (r < 0 )
699
+ return log_error_errno (r , "Failed to parse log level \"%s\": %m" , optarg );
700
+
701
+ arg_log_level = r ;
702
+
703
+ break ;
704
+
680
705
case 'v' :
681
706
arg_verbose = true;
682
707
break ;
683
708
684
- case 'l' :
709
+ case ARG_RATE_LIMIT_BPS :
685
710
arg_rate_limit_bps = strtoll (optarg , NULL , 10 );
686
711
break ;
687
712
0 commit comments