Copilot commented on code in PR #12219:
URL: https://github.com/apache/trafficserver/pull/12219#discussion_r2072061669
##########
src/iocore/net/SSLSNIConfig.cc:
##########
@@ -231,43 +228,28 @@ SNIConfigParams::get(std::string_view servername,
in_port_t dest_incoming_port)
}
// Check for wildcard matches
- int ovector[OVECSIZE];
+ RegexMatches matches;
for (auto const &retval : sni_action_list) {
if (element != nullptr && element->rank < retval.rank) {
break;
}
- int length = servername.length();
- if (retval.match == nullptr && length == 0) {
+ if (retval.match.empty() && servername.length() == 0) {
return {&retval.actions, {}};
- } else if (auto offset = pcre_exec(retval.match.get(), nullptr,
servername.data(), length, 0, 0, ovector, OVECSIZE);
- offset >= 0) {
+ } else if (retval.match.exec(servername, matches) >= 0) {
if (!is_port_in_the_ranges(retval.inbound_port_ranges,
dest_incoming_port)) {
continue;
}
- if (offset == 1) {
- // first pair identify the portion of the subject string matched by
the entire pattern
- if (ovector[0] == 0 && ovector[1] == length) {
- // full match
- return {&retval.actions, {}};
- } else {
- continue;
- }
- }
- // If contains groups
- if (offset == 0) {
- // reset to max if too many.
- offset = OVECSIZE / 3;
+ if (matches.size() == 1) {
+ // full match
+ return {&retval.actions, {}};
}
ActionItem::Context::CapturedGroupViewVec groups;
- groups.reserve(offset);
- for (int strnum = 1; strnum < offset; strnum++) {
- const std::size_t start = ovector[2 * strnum];
- const std::size_t length = ovector[2 * strnum + 1] - start;
-
- groups.emplace_back(servername.data() + start, length);
+ groups.reserve(matches.size());
+ for (int count = 0; count < matches.size(); count++) {
Review Comment:
[nitpick] If the full match (at index 0) should be excluded from the
captured groups—as in the previous logic—consider starting the iteration at
index 1 rather than 0.
```suggestion
for (int count = 1; count < matches.size(); count++) {
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]