Skip to content
Branch: master
Commits on Feb 20, 2020
  1. Configuration: removing UTF-8 BOM from the input JSON.

    VBart committed Feb 20, 2020
    Some editors can add it to JSON files.
  2. Configuration: stripping comments from the input JSON.

    VBart committed Feb 20, 2020
    This allows to have JavaScript-like comments in the uploading JSON.
Commits on Feb 19, 2020
  1. Version bump.

    VBart committed Feb 19, 2020
Commits on Feb 6, 2020
  1. Added version 1.15.0 CHANGES.

    VBart committed Feb 6, 2020
Commits on Jan 28, 2020
  1. PHP: added check for the ".php" extension.

    VBart committed Jan 28, 2020
    A check for the ".php" extension is added to prevent execution of files
    with arbitrary extensions in cases where "index" and "script" options
    aren't used.
Commits on Jan 27, 2020
  1. Version bump.

    VBart committed Jan 27, 2020
  2. Updated copyright notice.

    VBart committed Jan 27, 2020
Commits on Dec 26, 2019
  1. Added version 1.14.0 CHANGES.

    VBart committed Dec 26, 2019
Commits on Dec 24, 2019
  1. Removed unused variables from "docs/Makefile".

    VBart committed Dec 24, 2019
    They actually have been broken since 00d8049418cf,
    where NXT_VERSION was removed from nxt_main.h.
    Also, shebang is added.
Commits on Dec 23, 2019
  1. Python: pre-creation of objects for string constants.

    VBart committed Dec 23, 2019
    This is an optimization to avoid creating them at runtime on each request.
Commits on Nov 14, 2019
  1. Added version 1.13.0 CHANGES.

    VBart committed Nov 14, 2019
  2. Python: avoiding buffering of exception backtraces.

    VBart committed Nov 14, 2019
    A quote from the Python 3 documentation:
     | When interactive, stdout and stderr streams are line-buffered.
     | Otherwise, they are block-buffered like regular text files.
    As a result, if an exception occurred and PyErr_Print() was called, its output
    could be buffered but not printed to the log for a while (ultimately, until
    the interpreter finalization).  If the application process crashed shortly,
    the backtrace was completely lost.
    Buffering can be disabled by redefining the sys.stderr stream object.
    However, interference with standard environment objects was deemed undesirable.
    Instead, sys.stderr.flush() is called every time after printing exceptions.
    A potential advantage here is that lines from backtraces won't be mixed
    with other lines in the log.
  3. Python: removed wrong PyErr_Print() call.

    VBart committed Nov 14, 2019
    PyCallable_Check() doesn't produce errors.
    The needless call was introduced in fdd6ed28e3b9.
  4. Python: optimized response object close() calling.

    VBart committed Nov 14, 2019
    PyObject_HasAttrString() is just a wrapper over PyObject_GetAttrString(),
    while PyObject_CallMethod() calls it as the first step.  As a result,
    PyObject_GetAttrString() was called twice if close() was present.
    To get rid of PyObject_HasAttrString() while keeping the same behaviour,
    the PyObject_CallMethod() call has been decomposed into separate calls of
    PyObject_GetAttrString() and PyObject_CallFunction().
  5. Python: fixed an object leak when response close() is called.

    VBart committed Nov 14, 2019
    On success, PyObject_CallMethod() returns a new reference to
    the result of the call, which previously got lost.
    Also, error logging on failure was added.
    The issue was introduced by b0148ec28c4d.
  6. Python: improved error handling if response object isn't iterable.

    VBart committed Nov 14, 2019
    According to the documentation, PyObject_GetIter():
     | Raises TypeError and returns NULL if the object cannot be iterated.
    Previously, this exception wasn't printed or cleared and remained unhandled.
  7. Python: fixed handling of errors on response object iteration.

    VBart committed Nov 14, 2019
    According to the documentation, PyIter_Next():
     | If there are no remaining values, returns NULL with no exception set.
     | If an error occurs while retrieving the item, returns NULL and passes
     | along the exception.
    Previously, this exception wasn't properly handled and the response was
    finalized as successful.
    This issue was introduced in b0148ec28c4d.
    A check for PyErr_Occurred() located in the code below might print this
    traceback or occasionally catch an exception from one of the two response
    close() calls.
    Albeit that exceptions from the close() calls also need to be catched,
    it's clear that this particular check wasn't supposed to do so.  This is
    another issue and it will be fixed later.
Commits on Nov 13, 2019
  1. Python: releasing GIL while waiting for a request.

    VBart committed Nov 13, 2019
    It unblocks other threads that can be forked by the application
    to work in background.
    This closes #336 issue on GitHub.
Commits on Nov 7, 2019
Commits on Oct 9, 2019
Commits on Oct 7, 2019
  1. Version bump.

    VBart committed Oct 7, 2019
Commits on Oct 3, 2019
  1. Added version 1.12.0 CHANGES.

    VBart committed Oct 3, 2019
Commits on Oct 2, 2019
  1. Added response status code to error page body.

    VBart committed Oct 2, 2019
    Also the error page markup is now valid according to HTML5 specification.
    All optional tags were omitted.
Commits on Sep 30, 2019
  1. HTTP parser: removed unused "exten" field.

    VBart committed Sep 30, 2019
    This field was intended for MIME type lookup by file extension when serving
    static files, but this use case is too narrow; only a fraction of requests
    targets static content, and the URI presumably isn't rewritten.  Moreover,
    current implementation uses the entire filename for MIME type lookup if the
    file has no extension.
    Instead of extracting filenames and extensions when parsing requests, it's
    easier to obtain them right before serving static content; this behavior is
    already implemented.  Thus, we can drop excessive logic from parser.
You can’t perform that action at this time.