| 91 | } |
| 92 | |
| 93 | void |
| 94 | Variables::populate(const HttpHeader &header) |
| 95 | { |
| 96 | if (header.name && header.name_len && header.value && header.value_len) { |
| 97 | // doing this because we can't change our const input arg |
| 98 | int name_len = (header.name_len == -1) ? strlen(header.name) : header.name_len; |
| 99 | int value_len = (header.value_len == -1) ? strlen(header.value) : header.value_len; |
| 100 | |
| 101 | // we need to save the cookie string to build the jar from |
| 102 | if ((name_len == 6) && (strncasecmp(header.name, "Cookie", 6) == 0)) { |
| 103 | _releaseCookieJar(); |
| 104 | if (_cookie_str.size()) { |
| 105 | _cookie_str.append(", "); |
| 106 | } |
| 107 | _cookie_str.append(header.value, value_len); |
| 108 | } |
| 109 | |
| 110 | if (_headers_parsed) { |
| 111 | _parseHeader(header.name, name_len, header.value, value_len); |
| 112 | } else { |
| 113 | int match_index = _searchHeaders(SIMPLE_HEADERS, header.name, name_len); |
| 114 | if (match_index != -1) { |
| 115 | _cached_simple_headers[match_index].push_back(string(header.value, value_len)); |
| 116 | } else { |
| 117 | match_index = _searchHeaders(SPECIAL_HEADERS, header.name, name_len); |
| 118 | if (match_index != -1) { |
| 119 | _cached_special_headers[match_index].push_back(string(header.value, value_len)); |
| 120 | } |
| 121 | } |
| 122 | } |
| 123 | _insert(_dict_data[HTTP_HEADER], string(header.name, name_len), string(header.value, value_len)); |
| 124 | } |
| 125 | } |
| 126 | |
| 127 | inline void |
| 128 | Variables::_parseSimpleHeader(SimpleHeader hdr, const string &value) |
no test coverage detected