// // Function: ValidateArgs // // Description: // Parses the command line arguments and sets some global // variables to determine the behavior of the application. // void ValidateArgs(int argc, char **argv) { int i; for (i=1; i < argc ;i++) { if ((argv[i][0] == '-') || (argv[i][0] == '/' )) { switch (tolower (argv[i][1])) { case 's': // act as server bServer = TRUE; break; case 'c': // act as client bServer = FALSE; break; case 'e': // server endpoint pszServerEndpoint = &argv[i][3]; break; case 'n': // server address pszServerAddress = &argv[i][3]; break; case 'l': // local address pszLocalAddress = &argv[i][3]; break; case 'm': // enumerate local addrs bEnumerate = TRUE; break; case 'p': // protocol chProtocol = tolower(argv[i][3]); if (CheckProtocol(chProtocol) == FALSE) { printf("Unknown protcol specified\n\n"); usage(argv[0]); } break; case 'b': // number of bytes to send dwNumBytes = atoi(&argv[i][3]); break; case 'r': // number of repititions dwNumToSend = atoi(&argv[i][3]); break; default: usage(argv[0]); break; } } else usage(argv[0]); } return; }
void CHttpUrl::ParseUrl(std::string const &url) { try { boost::string_ref refUrl(url); size_t begin = 0; m_protocol = CheckProtocol(refUrl, begin); if (m_protocol == Protocol::HTTPS) { m_port = 443u; } else { m_port = 80u; } m_domain = ValidateDomainName(ParseDomainName(url.substr(begin), begin)); m_document = ValidateDocumentName(url.substr(begin)); } catch (std::invalid_argument const &e) { throw CUrlParsingError(e.what()); } }