From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; spf=pass smtp.mailfrom=orleans.occnc.com; dkim=pass header.d=orleans.occnc.com; arc=none (Message is not ARC signed); dmarc=none Received: from mta6-tap0.andover.occnc.com (mta6-tap0.andover.occnc.com [IPv6:2600:2c00:b000:2500::153]) by mail.toke.dk (Postfix) with ESMTPS id 019B4E6232D for ; Fri, 20 Mar 2026 04:57:11 +0100 (CET) Received: from harbor6.andover.occnc.com (harbor6.andover.occnc.com [IPv6:2600:2c00:b000:2500::610b]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519MLKEM768 server-signature ECDSA (secp384r1) server-digest SHA384) (Client did not present a certificate) (Authenticated sender: curtis@occnc.com) by mta6-tap0.andover.occnc.com (Postfix) with ESMTPSA id 2D35DEDE9; Thu, 19 Mar 2026 23:57:04 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=orleans.occnc.com; s=curtis-orleans-20250605-224653; t=1773979024; bh=Lv81lJ0swCcWg833TNpOws4dcsyyzHTBDuLepoouCHk=; h=To:cc:Reply-To:Subject:From:Date; b=gMes+D3IQh4TCnuyyHVweF+ZafVB/Pj2gD27FCyp/gr9xVf4rzM1dJBeQ9d66MQOE 6bUaqzGdjmyNXdcJUiTNftH+HdVXgfBUYJKTpukA/9Wa5uyN0b8oE+w8MbDaMJH+KY D+eJj/jitzLVVK9kwlXv3i4nzp2zWtEFUtM/fUriM4I3kfVkyuSv1tQIxxbvtHHIig 52H1/9Qs1r8jaCLvGYnmMG/MtnrK8X+sBg4gA0ddwZROdjrOXeSsTu1dRlJ9qFLiEB 7CUSMvEsN84K2AZX77Em5Ja58lxlPlT2l5awCAh1BoCaTK+uSr4FODppovKd0fpWBm KqqiqyHOLnTgg== To: galene@lists.galene.org cc: Curtis Villamizar From: Curtis Villamizar MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <78475.1773978608.1@harbor6.andover.occnc.com> Date: Thu, 19 Mar 2026 23:50:08 -0400 Message-ID: <177397903427.1734.12568395710048199288@gauss> Message-ID-Hash: UTUJFQV6MXTBNSBY5I2BSVDELJHVROSO X-Message-ID-Hash: UTUJFQV6MXTBNSBY5I2BSVDELJHVROSO X-MailFrom: curtis@orleans.occnc.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Reply-To: Curtis Villamizar Subject: [Galene] galene on IPv6 only List-Id: =?utf-8?q?Gal=C3=A8ne_videoconferencing_server_discussion_list?= Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: It looks like galene does not want to work on an IPv6 only server. This server has no IPv4 address at all, not even loopback 127.0.0.1. When I use -http [::6106]:8443 it does not bind to that address. I do get a UDP bind to a random UDP port. I see the UDP range option but it is not clear to me what that is for. I also get messages related to IPv4-ish stuff. Failed to enable mDNS over IPv4: (listen udp4 224.0.0.0:5353: socket: protocol not supported) and Relay test failed: timeout 2026/03/19 07:41:38 Perhaps you didn't configure a TURN server? TURN: no public addresses The second message is benign and only indicates the relayTest() test has failed even though it should not be run if there is no IPv4. This is despite both mDNS and TURN supposedly disabled. This is IPv6 so no need for ICE, STUN, TURN, etc. There is nothing on the local lan (its in a datacenter) so no need for mDNS and running mDNS is *very* bad form in that type of environment. I should mention that this is FreeBSD inside an IPv6 only jail. I have patches that get me to connect via tcp6. See below. This also gets rid of the mDNS attempt so that seems tied to the bind previously not working. So this is sort of a solved problem. If instead of using the IPv6 address inside [] I use the host name, then not solved. Even though the host has an AAAA DNS record and no A record, the bind does not work if the host name is specified. This may be an upstream problem in the go net library. This could be solved by doing a DNS lookup and seeing the AAAA record (and A record if used) and listenning with tcp6 (and tcp4 if A used). This would be needed anyway if you wanted to be like apache and support binding to more than one address with one instance of the server. It would be a lot cleaner. Maybe later I'll refile the patches. Curtis --- galene.go.orig 2025-08-09 10:26:35.000000000 -0400 +++ galene.go 2026-03-19 09:42:32.995605000 -0400 @@ -53,6 +53,13 @@ "built-in TURN server `address` (\"\" to disable)") flag.Parse() + log.Printf("httpAddr = %s", httpAddr) + if strings.HasPrefix(httpAddr, "[") { + group.UseMDNS = false + turnserver.Address = "" + log.Printf("Using IPv6, disable mDNS and TURN") + } + if udpRange != "" { if strings.ContainsRune(udpRange, '-') { var min, max uint16 @@ -145,7 +152,9 @@ terminate := make(chan os.Signal, 1) signal.Notify(terminate, syscall.SIGINT, syscall.SIGTERM) - go relayTest() + if ! strings.HasPrefix(httpAddr, "[") { + go relayTest() + } ticker := time.NewTicker(15 * time.Minute) defer ticker.Stop() --- webserver/webserver.go.orig 2025-08-09 10:26:35.000000000 -0400 +++ webserver/webserver.go 2026-03-19 08:54:40.982460000 -0400 @@ -72,6 +72,10 @@ proto := "tcp" if strings.HasPrefix(address, "/") { proto = "unix" + } + if strings.HasPrefix(address, "[") { + proto = "tcp6" + log.Printf("Using IPv6, set proto to tcp6") } listener, err := net.Listen(proto, address)