requests failed bind source port and throw wrong exception

<!-- Summary. -->

## Expected Result
status_code 200

<!-- What you expected. -->

status_code 200

<!-- What happened instead. -->

## Reproduction Steps
Exception
Traceback (most recent call last):
  File "test.py", line 33, in <module>
    response, socks_proxy = s.request(method="GET", url=r"https://xxxxx.xxxx..xxxxx", timeout=10, verify=False)
  File "/home/zhangchengguo/AES_SAAS/python/lib/python3.7/site-packages/requests/sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/zhangchengguo/AES_SAAS/python/lib/python3.7/site-packages/requests/sessions.py", line 678, in send
    history = [resp for resp in gen]
  File "/home/zhangchengguo/AES_SAAS/python/lib/python3.7/site-packages/requests/sessions.py", line 678, in <listcomp>
    history = [resp for resp in gen]
  File "/home/zhangchengguo/AES_SAAS/python/lib/python3.7/site-packages/requests/sessions.py", line 245, in resolve_redirects
    **adapter_kwargs
  File "/home/zhangchengguo/AES_SAAS/python/lib/python3.7/site-packages/requests/sessions.py", line 656, in send
    r, socks_proxy = adapter.send(request, **kwargs)
  File "/home/zhangchengguo/AES_SAAS/python/lib/python3.7/site-packages/requests/adapters.py", line 490, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='xxx.xxx.xxx', port=80): Max retries exceeded with url: /errors/StopService.htm (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fbe76ef6950>: Failed to establish a new connection: [Errno -9] Address family for hostname not supported'))


```python
import socket
import time
requests.packages.urllib3.disable_warnings()
def _get_available_port():
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.settimeout(10)
    find_available = False
    for i in range(100):
        port = 40000 + i
        status = client.connect_ex(('127.0.0.1', port))
        if status == 0:
            print("current port {} is been used, try another port for {} times".format(port, i))
            client.close()
            client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        else:
            time.sleep(2)
            find_available = True
            print("current port {} is available".format(port))
            break
    if not find_available:
        print("after try 100 times, find no avaible port")
        return None
    return port

port_ava = _get_available_port()

s = requests.Session()
s.mount('http://', source.SourceAddressAdapter(('0.0.0.0', port_ava)))
s.mount('https://', source.SourceAddressAdapter(('0.0.0.0', port_ava)))
url = "url that return 302 Found" # a url return redirect 302
response, socks_proxy = s.request(method="GET", url=url, timeout=10, verify=False)
print("status_code: {}".format(response.status_code))


```

## System Information

    $ python -m requests.help

```json
{
  "paste": "here"
}
```

<!-- This command is only available on Requests v2.16.4 and greater. Otherwise,
please provide some basic information about your system (Python version,
operating system, &c). -->