From 2b2f9d901eb0aef086e96932cfd1b673b464516a Mon Sep 17 00:00:00 2001 From: PJEilers Date: Wed, 13 Aug 2025 15:10:23 +0200 Subject: [PATCH] REALTIMEREGISTER: Allow 0 prio for MX records (#3724) Co-authored-by: pieterjan.eilers --- providers/realtimeregister/api.go | 2 +- providers/realtimeregister/realtimeregisterProvider.go | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/providers/realtimeregister/api.go b/providers/realtimeregister/api.go index 8477ee828..4b3805599 100644 --- a/providers/realtimeregister/api.go +++ b/providers/realtimeregister/api.go @@ -205,7 +205,7 @@ func (api *realtimeregisterAPI) createOrUpdateZone(body *Zone, url string) error return err } - // Ugly hack for MX records with null target + // Workaround for 0 prio and 'omitempty' restrictions on json marshalling requestBody := strings.Replace(string(bodyBytes), "\"prio\":-1", "\"prio\":0", -1) _, err = api.request("POST", url, strings.NewReader(requestBody)) diff --git a/providers/realtimeregister/realtimeregisterProvider.go b/providers/realtimeregister/realtimeregisterProvider.go index 76ff76003..2d33be859 100644 --- a/providers/realtimeregister/realtimeregisterProvider.go +++ b/providers/realtimeregister/realtimeregisterProvider.go @@ -279,10 +279,14 @@ func toRecord(recordConfig *models.RecordConfig) Record { case "MX": if record.Content == "" { record.Content = "." - record.Priority = -1 + record.Priority = 0 } else { record.Priority = int(recordConfig.MxPreference) } + // Workaround for 0 prio and 'omitempty' restrictions on json marshalling + if record.Priority == 0 { + record.Priority = -1 + } case "LOC": parts := strings.Fields(recordConfig.GetTargetCombined()) degrees1, _ := strconv.ParseUint(parts[0], 10, 32)