[PATCH v7 00/14] Static: Implement new "index" option
Alejandro Colomar
alx.manpages at gmail.com
Tue Feb 15 15:25:10 UTC 2022
Some pytests are failing (both existing ones and new ones), but
the existing ones I don't understand them very well, and the new
ones may be incorrect, since the manual tests I performed work
correctly, AFAICT. See patch 07/14 to see which existing tests
are failing and why.
Changes:
v2:
- Add support for variables in "index"
- Don't move share_idx, since that caused unnecessary padding.
- Use <stdbool.h>
v3 <https://mailman.nginx.org/pipermail/unit/2021-December/000304.html>:
- Don't use <stdbool.h> (as previously discussed).
- Add a .gitignore:
While doing this work, I had quite some accidents. This
prevented them from happening again. I based it on the
.gitignore of the Linux man-pages
<https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/.gitignore>
<https://lore.kernel.org/linux-man/20210509213930.94120-35-alx.manpages@gmail.com/>.
- Treat non-arrays as arrays of size 1
(as discussed earlier today:
<https://mailman.nginx.org/pipermail/unit/2021-December/000300.html>).
- Simplify all of the code that can be simplified thanks to the
change mentioned above (arrays of size 1).
- Fix the indentation of some random lines that I found to have an
incorrect indentation.
- Reduce branching (especially 'else's), to improve readability.
I didn't merge this change into the patch that adds the feature
because there it adds too much complexity for nothing, and the
patches read better separately. However, I patched it previous
to the third step to simplify that patch too, so this change
sits on a patch of its own better, I think.
- Use const for a read-only parameter of a function. I didn't
change other functions (not even in the same file), since that
would mean a huuuge diff, and for consistency we would need to
do it everywhere. So I only did it where I *needed* it to
compile, for now.
v4 <https://mailman.nginx.org/pipermail/unit/2021-December/000327.html>:
- Actually iterate.
v5 <https://mailman.nginx.org/pipermail/unit/2021-December/000346.html>:
- Remove spurious 'else' [Valentin]
v6:
- Add Andrei's tests (and remove my changes to the existing tests).
- Fix bugs reported by Andrei:
- Reject [].
- Don't return 301 for a directory (maybe I should add a check
that the string can't be empty; do we want that?)
- Fix non-compiling debug code.
v7:
- Remove all of my changes to <tests/>.
Alejandro Colomar (13):
.gitignore: ignore new files
nxt_conf.c: Treat non-arrays as arrays of size 1
Remove special cases for non-NXT_CONF_VALUE_ARRAY
Fix indentation
nxt_http_static_ctx_t: rename field 'index' to 'share_idx'
Static: return 404 when "index" is a non-regular file
Static: add "index" option
nxt_http_static_iterate(): generalize code
Static: variables in the "index" option
nxt_conf_set_string_dup(): Use 'const' for read-only parameter
nxt_http_static_init(): Simplify branching
Static: multiple paths in the "index" option
Static: optimize "index" iteration
Andrei Zeliankou (1):
Tests: added tests for "index" option.
.gitignore | 2 +
docs/changes.xml | 18 +++++
src/nxt_conf.c | 7 +-
src/nxt_conf.h | 2 +-
src/nxt_conf_validation.c | 55 +++++++++++++++-
src/nxt_gnutls.c | 4 +-
src/nxt_http.h | 15 +++--
src/nxt_http_route.c | 54 +++------------
src/nxt_http_static.c | 134 +++++++++++++++++++++++++-------------
src/nxt_main_process.c | 2 +-
src/nxt_openssl.c | 24 ++-----
src/nxt_router.c | 23 ++-----
src/nxt_time_parse.c | 6 +-
src/nxt_unit.c | 4 +-
src/nxt_work_queue.h | 4 +-
src/perl/nxt_perl_psgi.c | 2 +-
src/python/nxt_python.c | 9 ---
test/test_static.py | 47 +++++++++++++
18 files changed, 255 insertions(+), 157 deletions(-)
create mode 100644 .gitignore
--
2.34.1
More information about the unit
mailing list