Cannot bind onto IPv6 address #736

Open
opened 2022-11-25 19:13:06 -05:00 by piegamesde · 1 comment
piegamesde commented 2022-11-25 19:13:06 -05:00 (Migrated from github.com)

I want the server to bind on an IPv6 address, and configured it like this:

[Server]
address = "[::1]"

However, this consistently fails with the following error message:

systemd[1]: Started Nitter (An alternative Twitter front-end).
nitter[216801]: Starting Nitter at http://nitter.example.org
nitter[216801]: Connected to Redis at localhost:6379
nitter[216801]: oserr.nim:95             raiseOSError
nitter[216801]: asyncfutures.nim:437     asyncCheckCallback
nitter[216801]: Error: unhandled exception: Additional info: Name or service not known [OSError]

I'm not sure what is happening from the error message here, other services that I configured to bind on the same address work just fine

I want the server to bind on an IPv6 address, and configured it like this: ``` [Server] address = "[::1]" ``` However, this consistently fails with the following error message: ``` systemd[1]: Started Nitter (An alternative Twitter front-end). nitter[216801]: Starting Nitter at http://nitter.example.org nitter[216801]: Connected to Redis at localhost:6379 nitter[216801]: oserr.nim:95 raiseOSError nitter[216801]: asyncfutures.nim:437 asyncCheckCallback nitter[216801]: Error: unhandled exception: Additional info: Name or service not known [OSError] ``` I'm not sure what is happening from the error message here, other services that I configured to bind on the same address work just fine
jackyzy823 commented 2022-11-26 02:21:14 -05:00 (Migrated from github.com)

nitter not support bind on ipv6 , because its underlying http framework jester not support that.
if you want to bind on ipv6 , you need to manually patch ~/.nimble/pkgs/jester-0.5.0/jester.nim

diff --git a/jester.nim b/jester.nim
index fe7cbc3..64cc412 100644
--- a/jester.nim
+++ b/jester.nim
@@ -503,7 +503,7 @@ proc serve*(
       self.settings.port,
       proc (req: asynchttpserver.Request): Future[void] {.gcsafe, closure.} =
         result = handleRequest(jes, req),
-      self.settings.bindAddr)
+      self.settings.bindAddr, domain=net.Domain.AF_INET6)
     if not self.settings.futureErrorHandler.isNil:
       serveFut.callback = self.settings.futureErrorHandler
     else:

and in nitter.conf use ipv6 address without square brackets.

nitter not support bind on ipv6 , because its underlying http framework `jester` not support that. if you want to bind on ipv6 , you need to manually patch `~/.nimble/pkgs/jester-0.5.0/jester.nim` ```diff diff --git a/jester.nim b/jester.nim index fe7cbc3..64cc412 100644 --- a/jester.nim +++ b/jester.nim @@ -503,7 +503,7 @@ proc serve*( self.settings.port, proc (req: asynchttpserver.Request): Future[void] {.gcsafe, closure.} = result = handleRequest(jes, req), - self.settings.bindAddr) + self.settings.bindAddr, domain=net.Domain.AF_INET6) if not self.settings.futureErrorHandler.isNil: serveFut.callback = self.settings.futureErrorHandler else: ``` and in nitter.conf use ipv6 address without square brackets.
This discussion has been locked. Commenting is limited to contributors.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
PAS/nitter#736
No description provided.