# Changelog - 2015

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

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

## 19.4.3 / 2015/12/30

-   fix: don\'t check if a file is writable using os.stat with SELINUX
    (`1171`{.interpreted-text role="issue"})

## 19.4.2 / 2015/12/29

### Core

-   improvement: handle HaltServer in manage_workers
    (`1095`{.interpreted-text role="issue"})
-   fix: Do not rely on sendfile sending requested count
    (`1155`{.interpreted-text role="issue"})
-   fix: claridy \--no-sendfile default (`1156`{.interpreted-text
    role="issue"})
-   fix: LoggingCatch sendfile failure from no file descriptor
    (`1160`{.interpreted-text role="issue"})

### Logging

-   fix: Always send access log to syslog if syslog is on
-   fix: check auth before trying to own a file
    (`1157`{.interpreted-text role="issue"})

### Documentation

-   fix: Fix Slowloris broken link. (`1142`{.interpreted-text
    role="issue"})
-   Tweak markup in faq.rst

### Testing

-   fix: gaiohttp test (`1164`{.interpreted-text role="issue"})

## 19.4.1 / 2015/11/25

-   fix tornado worker (`1154`{.interpreted-text role="issue"})

## 19.4.0 / 2015/11/20

### Core

-   fix: make sure that a user is able to access to the logs after
    dropping a privilege (`1116`{.interpreted-text role="issue"})
-   improvement: inherit the [Exception]{.title-ref} class where it
    needs to be (`997`{.interpreted-text role="issue"})
-   fix: make sure headers are always encoded as latin1 RFC 2616
    (`1102`{.interpreted-text role="issue"})
-   improvement: reduce arbiter noise (`1078`{.interpreted-text
    role="issue"})
-   fix: don\'t close the unix socket when the worker exit
    (`1088`{.interpreted-text role="issue"})
-   improvement: Make last logged worker count an explicit instance var
    (`1078`{.interpreted-text role="issue"})
-   improvement: prefix config file with its type
    (`836`{.interpreted-text role="issue"})
-   improvement: pidfile handing (`1042`{.interpreted-text
    role="issue"})
-   fix: catch OSError as well as ValueError on race condition
    (`1052`{.interpreted-text role="issue"})
-   improve support of ipv6 by backporting urlparse.urlsplit from Python
    2.7 to Python 2.6.
-   fix: raise InvalidRequestLine when the line contains malicious data
    (`1023`{.interpreted-text role="issue"})
-   fix: fix argument to disable sendfile
-   fix: add gthread to the list of supported workers
    (`1011`{.interpreted-text role="issue"})
-   improvement: retry socket binding up to five times upon
    EADDRNOTAVAIL (`1004`{.interpreted-text role="issue"})
-   **breaking change**: only honor headers that can be encoded in ascii
    to comply to the RFC 7230 (See `1151`{.interpreted-text
    role="issue"}).

### Logging

-   add new parameters to access log (`1132`{.interpreted-text
    role="issue"})
-   fix: make sure that files handles are correctly reopened on HUP
    (`627`{.interpreted-text role="issue"})
-   include request URL in error message (`1071`{.interpreted-text
    role="issue"})
-   get username in access logs (`1069`{.interpreted-text role="issue"})
-   fix statsd logging support on Python 3 (`1010`{.interpreted-text
    role="issue"})

### Testing

-   use last version of mock.
-   many fixes in Travis CI support
-   miscellaneous improvements in tests

### Thread worker

-   fix: Fix self.nr usage in ThreadedWorker so that auto restart works
    as expected (`1031`{.interpreted-text role="issue"})

### Gevent worker

-   fix quit signal handling (`1128`{.interpreted-text role="issue"})
-   add support for Python 3 (`1066`{.interpreted-text role="issue"})
-   fix: make graceful shutdown thread-safe (`1032`{.interpreted-text
    role="issue"})

### Tornado worker

-   fix ssl options (`1146`{.interpreted-text role="issue"},
    `1135`{.interpreted-text role="issue"})
-   don\'t check timeout when stopping gracefully
    (`1106`{.interpreted-text role="issue"})

### AIOHttp worker

-   add SSL support (`1105`{.interpreted-text role="issue"})

### Documentation

-   fix link to proc name setting (`1144`{.interpreted-text
    role="issue"})
-   fix worker class documentation (`1141`{.interpreted-text
    role="issue"}, `1104`{.interpreted-text role="issue"})
-   clarify graceful timeout documentation (`1137`{.interpreted-text
    role="issue"})
-   don\'t duplicate NGINX config files examples
    (`1050`{.interpreted-text role="issue"}, `1048`{.interpreted-text
    role="issue"})
-   add [web.py]{.title-ref} framework example (`1117`{.interpreted-text
    role="issue"})
-   update Debian/Ubuntu installations instructions
    (`1112`{.interpreted-text role="issue"})
-   clarify [pythonpath]{.title-ref} setting description
    (`1080`{.interpreted-text role="issue"})
-   tweak some example for python3
-   clarify [sendfile]{.title-ref} documentation
-   miscellaneous typos in source code comments (thanks!)
-   clarify why REMOTE_ADD may not be the user\'s IP address
    (`1037`{.interpreted-text role="issue"})

### Misc

-   fix: reloader should survive SyntaxError (`994`{.interpreted-text
    role="issue"})
-   fix: expose the reloader class to the worker.

## 19.3.0 / 2015/03/06

### Core

-   fix: `978`{.interpreted-text role="issue"} make sure a listener is
    inheritable
-   add [check_config]{.title-ref} class method to workers
-   fix: `983`{.interpreted-text role="issue"} fix select timeout in
    sync worker with multiple connections
-   allows workers to access to the reloader. close
    `984`{.interpreted-text role="issue"}
-   raise TypeError instead of AssertionError

### Logging

-   make Logger.loglevel a class attribute

### Documentation

-   fix: `988`{.interpreted-text role="issue"} fix syntax errors in
    examples/gunicorn_rc

## 19.2.1 / 2015/02/4

### Logging

-   expose loglevel in the Logger class

### AsyncIO worker (gaiohttp)

-   fix `977`{.interpreted-text role="issue"} fix initial crash

### Documentation

-   document security mailing-list in the contributing page.

## 19.2 / 2015/01/30

### Core

-   optimize the sync workers when listening on a single interface
-   add [\--sendfile]{.title-ref} settings to enable/disable sendfile.
    fix `856`{.interpreted-text role="issue"} .
-   add the selectors module to the code base. `886`{.interpreted-text
    role="issue"}
-   add [\--max-requests-jitter]{.title-ref} setting to set the maximum
    jitter to add to the max-requests setting.
-   fix `899`{.interpreted-text role="issue"} propagate
    proxy_protocol_info to keep-alive requests
-   fix `863`{.interpreted-text role="issue"} worker timeout: dynamic
    timeout has been removed
-   fix: Avoid world writable file

### Logging

-   fix `941`{.interpreted-text role="issue"} set logconfig default to
    paster more trivially
-   add statsd-prefix config setting: set the prefix to use when
    emitting statsd metrics
-   `832`{.interpreted-text role="issue"} log to console by default

### Thread Worker

-   fix `908`{.interpreted-text role="issue"} make sure the worker can
    continue to accept requests

### Eventlet Worker

-   fix `867`{.interpreted-text role="issue"} Fix eventlet shutdown to
    actively shut down the workers.

### Documentation

Many improvements and fixes have been done, see the detailed changelog
for more information.