58d9b89 Parse target strings with IPv6 support and strict validation
📊 Changes
2 files changed (+262 additions, -16 deletions)
View changed files
📝common.go (+50 -16) ➕common_test.go (+212 -0)
📄 Description
Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
Add parseTargetString() for listenPort:host:targetPort using net.SplitHostPort/JoinHostPort. Replace manual split in updateTargets; fix err shadowing on remove. Validate listen port 1–65535 and reject empty host/port; use %w for errors. Add tests for IPv4, IPv6, hostnames, and invalid cases.
How to test?
Adding a ipv6 bracketed address in pangolin should result in a valid target added.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/fosrl/newt/pull/253
**Author:** [@LaurenceJJones](https://github.com/LaurenceJJones)
**Created:** 3/5/2026
**Status:** ✅ Merged
**Merged:** 3/8/2026
**Merged by:** [@oschwartz10612](https://github.com/oschwartz10612)
**Base:** `dev` ← **Head:** `investigate-ipv6-support`
---
### 📝 Commits (1)
- [`58d9b89`](https://github.com/fosrl/newt/commit/58d9b89de5d8f6f5053d94045da902bf6c98d8dd) Parse target strings with IPv6 support and strict validation
### 📊 Changes
**2 files changed** (+262 additions, -16 deletions)
<details>
<summary>View changed files</summary>
📝 `common.go` (+50 -16)
➕ `common_test.go` (+212 -0)
</details>
### 📄 Description
## Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
## Description
Add parseTargetString() for listenPort:host:targetPort using net.SplitHostPort/JoinHostPort. Replace manual split in updateTargets; fix err shadowing on remove. Validate listen port 1–65535 and reject empty host/port; use %w for errors. Add tests for IPv4, IPv6, hostnames, and invalid cases.
## How to test?
Adding a ipv6 bracketed address in pangolin should result in a valid target added.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/fosrl/newt/pull/253
Author: @LaurenceJJones
Created: 3/5/2026
Status: ✅ Merged
Merged: 3/8/2026
Merged by: @oschwartz10612
Base:
dev← Head:investigate-ipv6-support📝 Commits (1)
58d9b89Parse target strings with IPv6 support and strict validation📊 Changes
2 files changed (+262 additions, -16 deletions)
View changed files
📝
common.go(+50 -16)➕
common_test.go(+212 -0)📄 Description
Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
Add parseTargetString() for listenPort:host:targetPort using net.SplitHostPort/JoinHostPort. Replace manual split in updateTargets; fix err shadowing on remove. Validate listen port 1–65535 and reject empty host/port; use %w for errors. Add tests for IPv4, IPv6, hostnames, and invalid cases.
How to test?
Adding a ipv6 bracketed address in pangolin should result in a valid target added.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.