kongr45gpen / kongr45gpen/supybot-github
Support IPv6
- Dominant language
- Python
- Stars
- 10
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
Github has recently added two IPv6 networks to their hook servers. So they will at some point start using them.
Setting `config supybot.plugins.Github.address ::` or (::0) fails with a nice backtrace:
```
ERROR 2021-08-25T16:12:46 Failed to load Github:
Traceback (most recent call last):
File "/limnoria/.local/lib/python3.9/site-packages/supybot/plugins/Owner/", line 190, in _loadPlugins
plugin.loadPluginClass(irc, m)
File "/limnoria/.local/lib/python3.9/site-packages/supybot/", line 153, in loadPluginClass
cb = module.Class(irc)
File "/limnoria/.local/lib/python3.9/site-packages/supybot/utils/", line 102, in __init__
original__init__(self, *args, **kwargs)
File "/limnoria/limnoria/plugins/Github/", line 85, in __init__
self.httpd = server_class((self.address, self.port), RequestHandler.GithubHandler)
File "/usr/lib/python3.9/", line 452, in __init__
self.server_bind()
File "/usr/lib/python3.9/http/", line 138, in server_bind
socketserver.TCPServer.server_bind(self)
File "/usr/lib/python3.9/", line 466, in server_bind
self.socket.bind(self.server_address)
socket.gaierror: [Errno -2] Name does not resolve
ERROR 2021-08-25T16:12:46 Exception id: 0x75898
```
Would be nice to support "::" or "::0" to get a dual stack listening socket.
And probably there should be an `address6` to bind to if `address` (`address4?`) is a qualified IPv4, similarly to what limnoria does for the `supybot.servers.http.hosts4` and `supybot.servers.http.hosts6` config values.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at limnoria/plugins/Github/ around line 85, where the webhook server is created, and compare its address handling with Limnoria's hosts4 and hosts6 configuration. Define the supported behavior for :: or ::0 and qualified IPv4 addresses, then verify that the Github webhook server can bind the intended IPv6 or dual-stack socket.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100