IOErrors should have an errno and a strerror

Description

When raising SynapseHTTPError or other subclasses of IOError, we should probably respect the convention of passing a 2-tuple with an errno and strerror as described here:

https://docs.python.org/2/library/exceptions.html#exceptions.EnvironmentError
https://docs.python.org/3/library/exceptions.html#OSError

Python is changing how IO and OS exceptions are represented, so maybe more consideration is in order:
https://www.python.org/dev/peps/pep-3151/#exception-attributes

Environment

None

Status

Assignee

Unassigned

Reporter

Chris Bare

Labels

None

Validator

Larsson Omberg

Development Area

None

Release Version History

None

Components

Fix versions

Affects versions

Priority

Minor
Configure