HTTP: rewrote while loop as for loop.

This considerably simplifies the function, and will also help log the
iteration in which we are, which corresponds to the route array element.

Link: <https://github.com/nginx/unit/pull/824>
Link: <https://github.com/nginx/unit/pull/839>
Reviewed-by: Andrew Clayton <a.clayton@nginx.com>
Tested-by: Liam Crilly <liam@nginx.com>
Reviewed-by: Zhidao Hong <z.hong@f5.com>
Signed-off-by: Alejandro Colomar <alx@nginx.com>
This commit is contained in:
Alejandro Colomar
2023-01-10 22:03:40 +01:00
parent c18dd1f65b
commit 773c341d70

View File

@@ -1540,21 +1540,17 @@ static nxt_http_action_t *
nxt_http_route_handler(nxt_task_t *task, nxt_http_request_t *r,
nxt_http_action_t *start)
{
size_t i;
nxt_http_route_t *route;
nxt_http_action_t *action;
nxt_http_route_match_t **match, **end;
route = start->u.route;
match = &route->match[0];
end = match + route->items;
while (match < end) {
action = nxt_http_route_match(task, r, *match);
for (i = 0; i < route->items; i++) {
action = nxt_http_route_match(task, r, route->match[i]);
if (action != NULL) {
return action;
}
match++;
}
nxt_http_request_error(task, r, NXT_HTTP_NOT_FOUND);