aio-libs / aio-libs/aiohttp

aiodns does not work with mDNS and is the default resolver

Aperta
#10,186 10 commenti 1 reazione 0 assegnatari Vedi su GitHub
bug
Lingua principale
Python
Stelle
16.5k
Fork
2.4k
Merge medio
17h 22m
PR unite (30g)
212

Descrizione

### Describe the bug

With aiohttp v3.10.10, mDNS hostnames do not resolve when aiodns is installed.

When I force the use of a ThreadedResolver, or when I uninstall aiodns, mDNS hostnames resolve fine.

I see (#8522) that aiodns was made the default resolver again, recently, which explains the regression. The underlying c-ares library has a long-time open request for mDNS support (https://github.com/c-ares/c-ares/issues/171) and no movement over the past few years.

### To Reproduce

You will need a mDNS-resolvable service for this to work. (If you have avahi-daemon installed, your hostname with a .local suffix should suffice.)

```
>>> import aiohttp
>>> import asyncio
>>> async def main():
... async with aiohttp.ClientSession() as session:
... async with session.get('http://some_mdns_hostname.local') as resp:
... print(resp.status)
... print(await resp.text())
>>>asyncio.run(main())
ClientConnectorDNSError: Cannot connect to host rfmux0033.local:80 ssl:default [Domain name not found]
```

### Expected behavior

Correct resolution of the hostname via mDNS.

### Logs/tracebacks

```python-traceback
ClientConnectorDNSError: Cannot connect to host some_mdns_hostname.local:80 ssl:default [Domain name not found]
```

### Python Version

```console
$ python --version
Python 3.12.8
```

### aiohttp Version

```console
aiohttp.__version__
'3.10.10'
```

### multidict Version

```console
multidict.__version__
'6.1.0'
```

### propcache Version

```console
Not installed.
```

### yarl Version

```console
yarl.__version__
'1.13.1'
```

### OS

Debian Linux (testing)

### Related component

Client

### Additional context

_No response_

### Code of Conduct

- [X] I agree to follow the aio-libs Code of Conduct

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.