| 125 | }; |
| 126 | |
| 127 | bool |
| 128 | HttpConfig::load_server_session_sharing_match(const char *key, MgmtByte &mask) |
| 129 | { |
| 130 | MgmtByte value; |
| 131 | mask = 0; |
| 132 | // Parse through and build up mask |
| 133 | std::string_view key_list(key); |
| 134 | size_t start = 0; |
| 135 | size_t offset = 0; |
| 136 | Dbg(dbg_ctl_http_config, "enum mask value %s", key); |
| 137 | do { |
| 138 | offset = key_list.find(',', start); |
| 139 | if (offset == std::string_view::npos) { |
| 140 | std::string_view one_key = key_list.substr(start); |
| 141 | if (!http_config_enum_search(one_key, SessionSharingMatchStrings, value)) { |
| 142 | return false; |
| 143 | } |
| 144 | } else { |
| 145 | std::string_view one_key = key_list.substr(start, offset - start); |
| 146 | if (!http_config_enum_search(one_key, SessionSharingMatchStrings, value)) { |
| 147 | return false; |
| 148 | } |
| 149 | start = offset + 1; |
| 150 | } |
| 151 | if (value < TS_SERVER_SESSION_SHARING_MATCH_NONE) { |
| 152 | mask |= (1 << value); |
| 153 | } else if (value == TS_SERVER_SESSION_SHARING_MATCH_BOTH) { |
| 154 | mask |= TS_SERVER_SESSION_SHARING_MATCH_MASK_IP | TS_SERVER_SESSION_SHARING_MATCH_MASK_HOSTONLY | |
| 155 | TS_SERVER_SESSION_SHARING_MATCH_MASK_HOSTSNISYNC; |
| 156 | } else if (value == TS_SERVER_SESSION_SHARING_MATCH_HOST) { |
| 157 | mask |= TS_SERVER_SESSION_SHARING_MATCH_MASK_HOSTONLY | TS_SERVER_SESSION_SHARING_MATCH_MASK_HOSTSNISYNC; |
| 158 | } |
| 159 | } while (offset != std::string_view::npos); |
| 160 | return true; |
| 161 | } |
| 162 | |
| 163 | static bool |
| 164 | http_config_enum_mask_read(const char *name, MgmtByte &value) |
nothing calls this directly
no test coverage detected