MCPcopy Create free account
hub / github.com/apache/trafficserver / load_server_session_sharing_match

Method load_server_session_sharing_match

src/proxy/http/HttpConfig.cc:127–161  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

125};
126
127bool
128HttpConfig::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
163static bool
164http_config_enum_mask_read(const char *name, MgmtByte &value)

Callers

nothing calls this directly

Calls 3

http_config_enum_searchFunction · 0.85
findMethod · 0.45
substrMethod · 0.45

Tested by

no test coverage detected