From da834b580366e17fc1a94f9fa9d1737448163717 Mon Sep 17 00:00:00 2001
From: Omar Polo <op@omarpolo.com>
Date: Mon, 3 Jun 2024 16:14:09 +0000
Subject: fix `fastcgi off' handling

When a matching location has a `fastcgi off' directive, we should
honour that and stop searching for further location which may have
a `fastcgi' directive.

Bug reported by Alex // nytpu, thanks!
---
 server.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

(limited to 'server.c')

diff --git a/server.c b/server.c
index 8e39912..ed78ad6 100644
--- a/server.c
+++ b/server.c
@@ -249,7 +249,6 @@ struct location *
 vhost_fastcgi(struct vhost *v, const char *path)
 {
 	struct location *loc;
-	int force_disable = 0;
 
 	if (v == NULL || path == NULL)
 		return NULL;
@@ -260,12 +259,9 @@ vhost_fastcgi(struct vhost *v, const char *path)
 			if (matches(loc->match, path))
 				return loc;
 		if (loc->nofcgi && matches(loc->match, path))
-			force_disable = 1;
+			return NULL;
 	}
 
-	if (force_disable)
-		return NULL;
-
 	loc = TAILQ_FIRST(&v->locations);
 	return loc->fcgi == -1 ? NULL : loc;
 }
-- 
cgit v1.2.3