MCPcopy Create free account
hub / github.com/apache/trafficserver / parse_arguments

Method parse_arguments

src/traffic_logstats/logstats.cc:667–716  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

665const char *USAGE_LINE = "Usage: " PROGRAM_NAME " [-f logfile] [-o origin[,...]] [-O originfile] [-m minhits] [-binshv]";
666
667void
668CommandLineArgs::parse_arguments(const char **argv)
669{
670 // process command-line arguments
671 process_args(&AppVersionInfo::get_version(), argument_descriptions, countof(argument_descriptions), argv, USAGE_LINE);
672
673 // Process as "CGI" ?
674 if (strstr(argv[0], ".cgi") || cgi) {
675 char *query;
676
677 json = 1;
678 cgi = 1;
679
680 if (nullptr != (query = getenv("QUERY_STRING"))) {
681 char buffer[MAX_ORIG_STRING];
682 char *tok, *sep_ptr, *val;
683
684 ink_strlcpy(buffer, query, sizeof(buffer));
685 unescapifyStr(buffer);
686
687 for (tok = strtok_r(buffer, "&", &sep_ptr); tok != nullptr;) {
688 val = strchr(tok, '=');
689 if (val) {
690 *(val++) = '\0';
691 if (0 == strncmp(tok, "origin_list", 11)) {
692 ink_strlcpy(origin_list, val, sizeof(origin_list));
693 } else if (0 == strncmp(tok, "state_tag", 9)) {
694 ink_strlcpy(state_tag, val, sizeof(state_tag));
695 } else if (0 == strncmp(tok, "max_origins", 11)) {
696 max_origins = strtol(val, nullptr, 10);
697 } else if (0 == strncmp(tok, "urls", 4)) {
698 urls = strtol(val, nullptr, 10);
699 } else if (0 == strncmp(tok, "show_urls", 9)) {
700 show_urls = strtol(val, nullptr, 10);
701 } else if (0 == strncmp(tok, "as_object", 9)) {
702 as_object = strtol(val, nullptr, 10);
703 } else if (0 == strncmp(tok, "min_hits", 8)) {
704 min_hits = strtol(val, nullptr, 10);
705 } else if (0 == strncmp(tok, "incremental", 11)) {
706 incremental = strtol(val, nullptr, 10);
707 } else {
708 // Unknown query arg.
709 }
710 }
711
712 tok = strtok_r(nullptr, "&", &sep_ptr);
713 }
714 }
715 }
716}
717
718// Enum for return code levels.
719enum ExitLevel {

Callers 1

mainFunction · 0.80

Calls 5

process_argsFunction · 0.85
get_versionFunction · 0.85
ink_strlcpyFunction · 0.85
countofFunction · 0.50
unescapifyStrFunction · 0.50

Tested by

no test coverage detected