Lines Matching defs:parameters
34 struct Parameters {
35 Parameters() : ss({}), port("80"), path("/") {}
45 bool parseUrl(const struct Arguments& args, struct Parameters* parameters) {
46 if (parameters == nullptr) { return false; }
54 parameters->host = std::string(args.arg1).substr(strlen(HTTP_PREFIX));
55 const auto first_slash = parameters->host.find_first_of("/");
57 parameters->path = parameters->host.substr(first_slash);
58 parameters->host.erase(first_slash);
61 if (parameters->host.size() == 0) {
66 if (parameters->host[0] == '[') {
67 const auto closing_bracket = parameters->host.find_first_of("]");
72 parameters->hostname = parameters->host.substr(1, closing_bracket - 1);
75 if (colon_port < parameters->host.size()) {
76 if (parameters->host[colon_port] != ':') {
80 parameters->port = parameters->host.substr(closing_bracket + 2);
83 const auto first_colon = parameters->host.find_first_of(":");
85 parameters->port = parameters->host.substr(first_colon + 1);
86 parameters->hostname = parameters->host.substr(0, first_colon);
88 parameters->hostname = parameters->host;
94 std::cerr << "Resolving hostname=" << parameters->hostname
95 << ", port=" << parameters->port
108 parameters->hostname.c_str(),
109 parameters->port.c_str(),
113 rval = getaddrinfo(parameters->hostname.c_str(),
114 parameters->port.c_str(),
130 memcpy(&(parameters->ss), result[0].ai_addr, result[0].ai_addrlen);
167 int doHttpQuery(int fd, const struct Parameters& parameters) {
170 reinterpret_cast<const struct sockaddr *>(&(parameters.ss)),
171 (parameters.ss.ss_family == AF_INET6)
188 parameters.path.c_str(), parameters.host.c_str()));
233 struct Parameters parameters;
234 if (!parseUrl(args, ¶meters)) { return -1; }
239 parameters.ss.ss_family,
244 return doHttpQuery(closer.fd, parameters);