| 278 | } |
| 279 | |
| 280 | void |
| 281 | Variables::_parseSubCookies() |
| 282 | { |
| 283 | StringHash &cookies = _dict_data[HTTP_COOKIE]; |
| 284 | for (StringHash::const_iterator it_cookie = cookies.begin(); it_cookie != cookies.end(); ++it_cookie) { |
| 285 | const std::string &name = it_cookie->first; |
| 286 | const std::string &value = it_cookie->second; |
| 287 | if (strchr(value.c_str(), '=') == nullptr) { |
| 288 | continue; |
| 289 | } |
| 290 | |
| 291 | StringHash &subcookies = _sub_cookies[name]; |
| 292 | AttributeList attr_list; |
| 293 | Utils::parseAttributes(value.c_str(), value.length(), attr_list, "&"); |
| 294 | for (auto &iter : attr_list) { |
| 295 | DBG("[%s] Inserting query string variable [%.*s] with value [%.*s]", __FUNCTION__, iter.name_len, iter.name, iter.value_len, |
| 296 | iter.value); |
| 297 | _insert(subcookies, string(iter.name, iter.name_len), string(iter.value, iter.value_len)); |
| 298 | } |
| 299 | } |
| 300 | } |
| 301 | |
| 302 | const string & |
| 303 | Variables::_getSubCookieValue(const string &cookie_str, size_t cookie_part_divider) const |
no test coverage detected