[PATCH v4 00/12] Static: Implement new "index" option

Alejandro Colomar alx.manpages at gmail.com
Thu Dec 23 19:24:57 UTC 2021


Hi Valentin,

I have implemented the last step for adding this feature, as you
proposed them:

 *(1) Add new "index" option, with minimal support (a string).
 *(2) Allow variables in the "index" option.
 *(3) Allow multiple filenames in the "index" option.

Plus some other changes that I needed for this to work (or even
some that I just noticed while doing this and fixed too).

v2:
- Add support for variables in "index"
- Don't move share_idx, since that caused unnecessary padding.
- Use <stdbool.h>

v3:
- 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:
- Actually iterate.  This completes the feature.


Alejandro Colomar (12):
  .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'
  test_static.py: formatting fix
  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

 .gitignore                |   2 +
 docs/changes.xml          |  18 ++++++
 src/nxt_conf.c            |   7 ++-
 src/nxt_conf.h            |   2 +-
 src/nxt_conf_validation.c |   8 ++-
 src/nxt_gnutls.c          |   4 +-
 src/nxt_http.h            |  15 ++---
 src/nxt_http_route.c      |  54 +++-------------
 src/nxt_http_static.c     | 127 +++++++++++++++++++++++++-------------
 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       |  18 ++++--
 18 files changed, 167 insertions(+), 162 deletions(-)
 create mode 100644 .gitignore

-- 
2.34.1



More information about the unit mailing list