summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_http_static.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/nxt_http_static.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/nxt_http_static.c b/src/nxt_http_static.c
index 44b85389..48a989cf 100644
--- a/src/nxt_http_static.c
+++ b/src/nxt_http_static.c
@@ -94,9 +94,20 @@ nxt_http_static_handler(nxt_task_t *task, nxt_http_request_t *r,
if (nxt_slow_path(ret != NXT_OK)) {
switch (f->error) {
+ /*
+ * For Unix domain sockets "errno" is set to:
+ * - ENXIO on Linux;
+ * - EOPNOTSUPP on *BSD, MacOSX, and Solaris.
+ */
+
case NXT_ENOENT:
case NXT_ENOTDIR:
case NXT_ENAMETOOLONG:
+#if (NXT_LINUX)
+ case NXT_ENXIO:
+#else
+ case NXT_EOPNOTSUPP:
+#endif
level = NXT_LOG_ERR;
status = NXT_HTTP_NOT_FOUND;
break;
@@ -209,7 +220,6 @@ nxt_http_static_handler(nxt_task_t *task, nxt_http_request_t *r,
/* Not a file. */
nxt_file_close(task, f);
- f = NULL;
if (nxt_slow_path(!nxt_is_dir(&fi))) {
nxt_log(task, NXT_LOG_ERR, "\"%FN\" is not a regular file",
@@ -218,6 +228,8 @@ nxt_http_static_handler(nxt_task_t *task, nxt_http_request_t *r,
return NULL;
}
+ f = NULL;
+
r->status = NXT_HTTP_MOVED_PERMANENTLY;
r->resp.content_length_n = 0;