TParameters *createParameters(const char *str, const char *sep){ TParameters *p = (TParameters *)malloc(sizeof(TParameters)); TDataParameters *data = (TDataParameters *)malloc(sizeof(struct _data_parameters)); p->data = data; int len= strlen(sep)+1; data->sep = (char *)malloc(len); len = strlen(str)+1; data->str = (char *)malloc(len); data->eachOne = NULL; data->size=0; strcpy(data->sep,sep); strcpy(data->str,str); p->dispose = destroyParameters; p->next = nextParameters; p->iterator = iteratorParameters; splitParameters(p); return p; }
void HTTPRequest::getCookies(NameValueCollection& cookies) const { NameValueCollection::ConstIterator it = find(COOKIE); while (it != end() && it->first == COOKIE) { splitParameters(it->second.begin(), it->second.end(), cookies); ++it; } }
void MessageHeader::splitParameters(const std::string& s, std::string& value, NameValueCollection& parameters) { value.clear(); parameters.clear(); std::string::const_iterator it = s.begin(); std::string::const_iterator end = s.end(); while (it != end && Poco::Ascii::isSpace(*it)) ++it; while (it != end && *it != ';') value += *it++; Poco::trimRightInPlace(value); if (it != end) ++it; splitParameters(it, end, parameters); }
void HTTPResponse::getCookies(std::vector<HTTPCookie>& cookies) const { cookies.clear(); NameValueCollection::ConstIterator it = find(SET_COOKIE); while (it != end() && Poco::icompare(it->first, SET_COOKIE) == 0) { NameValueCollection nvc; splitParameters(it->second.begin(), it->second.end(), nvc); cookies.push_back(HTTPCookie(nvc)); ++it; } }