# Changelog - 2018

::: note
::: title
Note
:::

Please see `news`{.interpreted-text role="doc"} for the latest changes
:::

## 19.9.0 / 2018/07/03

-   fix: address a regression that prevented syslog support from working
    (`1668`{.interpreted-text role="issue"}, `1773`{.interpreted-text
    role="pr"})
-   fix: correctly set [REMOTE_ADDR]{.title-ref} on versions of Python 3
    affected by [Python Issue 30205](https://bugs.python.org/issue30205)
    (`1755`{.interpreted-text role="issue"}, `1796`{.interpreted-text
    role="pr"})
-   fix: show zero response length correctly in access log
    (`1787`{.interpreted-text role="pr"})
-   fix: prevent raising `AttributeError`{.interpreted-text role="exc"}
    when `--reload` is not passed in case of a
    `SyntaxError`{.interpreted-text role="exc"} raised from the WSGI
    application. (`1805`{.interpreted-text role="issue"},
    `1806`{.interpreted-text role="pr"})
-   The internal module `gunicorn.workers.async` was renamed to
    `gunicorn.workers.base_async` since `async` is now a reserved word
    in Python 3.7. (`1527`{.interpreted-text role="pr"})

## 19.8.1 / 2018/04/30

-   fix: secure scheme headers when bound to a unix socket
    (`1766`{.interpreted-text role="issue"}, `1767`{.interpreted-text
    role="pr"})

## 19.8.0 / 2018/04/28

-   Eventlet 0.21.0 support (`1584`{.interpreted-text role="issue"})
-   Tornado 5 support (`1728`{.interpreted-text role="issue"},
    `1752`{.interpreted-text role="pr"})
-   support watching additional files with `--reload-extra-file`
    (`1527`{.interpreted-text role="pr"})
-   support configuring logging with a dictionary with
    `--logging-config-dict` (`1087`{.interpreted-text role="issue"},
    `1110`{.interpreted-text role="pr"}, `1602`{.interpreted-text
    role="pr"})
-   add support for the `--config` flag in the `GUNICORN_CMD_ARGS`
    environment variable (`1576`{.interpreted-text role="issue"},
    `1581`{.interpreted-text role="pr"})
-   disable `SO_REUSEPORT` by default and add the `--reuse-port` setting
    (`1553`{.interpreted-text role="issue"}, `1603`{.interpreted-text
    role="issue"}, `1669`{.interpreted-text role="pr"})
-   fix: installing [inotify]{.title-ref} on MacOS no longer breaks the
    reloader (`1540`{.interpreted-text role="issue"},
    `1541`{.interpreted-text role="pr"})
-   fix: do not throw `TypeError` when `SO_REUSEPORT` is not available
    (`1501`{.interpreted-text role="issue"}, `1491`{.interpreted-text
    role="pr"})
-   fix: properly decode HTTP paths containing certain non-ASCII
    characters (`1577`{.interpreted-text role="issue"},
    `1578`{.interpreted-text role="pr"})
-   fix: remove whitespace when logging header values under gevent
    (`1607`{.interpreted-text role="pr"})
-   fix: close unlinked temporary files (`1327`{.interpreted-text
    role="issue"}, `1428`{.interpreted-text role="pr"})
-   fix: parse `--umask=0` correctly (`1622`{.interpreted-text
    role="issue"}, `1632`{.interpreted-text role="pr"})
-   fix: allow loading applications using relative file paths
    (`1349`{.interpreted-text role="issue"}, `1481`{.interpreted-text
    role="pr"})
-   fix: force blocking mode on the gevent sockets
    (`880`{.interpreted-text role="issue"}, `1616`{.interpreted-text
    role="pr"})
-   fix: preserve leading [/]{.title-ref} in request path
    (`1512`{.interpreted-text role="issue"}, `1511`{.interpreted-text
    role="pr"})
-   fix: forbid contradictory secure scheme headers
-   fix: handle malformed basic authentication headers in access log
    (`1683`{.interpreted-text role="issue"}, `1684`{.interpreted-text
    role="pr"})
-   fix: defer handling of `USR1` signal to a new greenlet under gevent
    (`1645`{.interpreted-text role="issue"}, `1651`{.interpreted-text
    role="pr"})
-   fix: the threaded worker would sometimes close the wrong keep-alive
    connection under Python 2 (`1698`{.interpreted-text role="issue"},
    `1699`{.interpreted-text role="pr"})
-   fix: re-open log files on `USR1` signal using `handler._open` to
    support subclasses of `FileHandler` (`1739`{.interpreted-text
    role="issue"}, `1742`{.interpreted-text role="pr"})
-   deprecation: the `gaiohttp` worker is deprecated, see the
    `worker-class`{.interpreted-text role="ref"} documentation for more
    information (`1338`{.interpreted-text role="issue"},
    `1418`{.interpreted-text role="pr"}, `1569`{.interpreted-text
    role="pr"})