Repository navigation
Conversation
- porkbun.py: Implement Porkbun account handler using API v3 endpoints (editByNameType and fallback create). Features HTTP 429 retry backoff via urllib3 and 30s request timeouts. - porkbun.py: Add _get_zone and _get_label helpers to isolate root zones from subdomain labels, including fallback heuristics for standard single-level subdomains. - dialogAccount.xml: Expose the Zone field for Porkbun (service_porkbun) in the account configuration UI.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Important notices
Before you submit a pull request, we ask you kindly to acknowledge the following:
If AI was used, please disclose:
logic. Used to review for correctness.
Describe the problem
Following the recent merge of the initial Porkbun native DDNS client module
(#5599), this pull request introduces several functional enhancements and
network hardening improvements.
While the baseline module works great for simple setups, it currently lacks
automatic record creation and explicit zone boundary handling, which are
critical for users utilizing multi-level subdomains.
I have been running this version on my router for several weeks to update IPv4
and IPv6 wildcard records.
Describe the proposed solution
This PR adds full lifecycle record management (automatic creation if a record
does not exist), explicit zone support in the Web UI, and robust network
exception handling.
Details
record using the
editByNameTypeAPI endpoint (which simplifies the previousretrieveByNameType+editflow). If the edit fails because the record doesnot exist, it automatically falls back to the
createendpoint. Users nolonger need to manually pre-create records on the Porkbun website.
_get_zoneand_get_labelhelpers.service_porkbunto theaccount.zonefield stylesin
dialogAccount.xmlso the Web UI exposes the "Zone" field. This allowsusers to explicitly declare zone boundaries for multi-level subdomains (e.g.,
app.router.example.com), while retaining the fallback heuristic for simpledomains.
hanging.
urllib3.util.Retry.requests.post()and.json()calls inRequestExceptionandJSONDecodeErrorblocks to prevent network drops from dumping tracebacksinto syslog.