diff options
author | Arun Isaac | 2020-03-13 21:29:16 +0530 |
---|---|---|
committer | Arun Isaac | 2020-03-13 21:29:16 +0530 |
commit | d6c776b618f8d84f28eb69aa9113ffce599cad9b (patch) | |
tree | e7366285523cec371001f84c3a03911e28e43daf /ennu.el | |
parent | c3c4a17b09f695ed5474918747238ffc70cde5d9 (diff) | |
download | ennum-d6c776b618f8d84f28eb69aa9113ffce599cad9b.tar.gz ennum-d6c776b618f8d84f28eb69aa9113ffce599cad9b.tar.lz ennum-d6c776b618f8d84f28eb69aa9113ffce599cad9b.zip |
Deny requests to all html files except index.html.
* ennu.el (ennu-server-start): Deny requests to all html files except
index.html.
Diffstat (limited to 'ennu.el')
-rw-r--r-- | ennu.el | 13 |
1 files changed, 9 insertions, 4 deletions
@@ -486,10 +486,15 @@ as keys. Keys are compared using `equal'." (setq httpd-root (expand-file-name (ennu-setting :output-directory) (ennu-setting :working-directory))) (defun httpd/ (proc uri-path query request) - (let ((uri-path (httpd-unhex uri-path))) - (pcase (httpd-status (httpd-gen-path uri-path)) - (200 (httpd-serve-root proc httpd-root uri-path request)) - (_ (httpd-serve-root proc httpd-root (concat uri-path ".html") request))))) + (let ((uri-path (httpd-unhex uri-path)) + (file-path (httpd-gen-path uri-path))) + (cond + ((and (not (string= (file-name-nondirectory file-path) "index.html")) + (string= (file-name-extension file-path) "html")) + (httpd-error proc 404)) + ((= (httpd-status file-path) 200) + (httpd-serve-root proc httpd-root uri-path request)) + (t (httpd-serve-root proc httpd-root (concat uri-path ".html") request))))) (httpd-start)) (defun ennu-server-stop () |