Skip to content

Commit b4e8716

Browse files
author
James Mills
committed
Add support for GCore DNS
1 parent 21485e9 commit b4e8716

File tree

4 files changed

+45
-1
lines changed

4 files changed

+45
-1
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ _testmain.go
1616
*.exe~
1717
*.test
1818
*.prof
19+
**/.envrc
20+
**/.DS_Store
1921

2022
# Tests coverage
2123
*.out

go.mod

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
module github.com/foxcpp/maddy
22

3-
go 1.23
3+
go 1.23.1
4+
5+
toolchain go1.23.5
46

57
require (
68
blitiri.com.ar/go/spf v1.5.1
@@ -34,6 +36,7 @@ require (
3436
github.com/libdns/cloudflare v0.1.1
3537
github.com/libdns/digitalocean v0.0.0-20230728223659-4f9064657aea
3638
github.com/libdns/gandi v1.0.3
39+
github.com/libdns/gcore v0.0.0-20250127070537-4a9d185c9d20
3740
github.com/libdns/googleclouddns v1.1.0
3841
github.com/libdns/hetzner v0.0.1
3942
github.com/libdns/leaseweb v0.4.0
@@ -64,6 +67,7 @@ require (
6467
cloud.google.com/go/compute/metadata v0.6.0 // indirect
6568
filippo.io/edwards25519 v1.1.0 // indirect
6669
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect
70+
github.com/G-Core/gcore-dns-sdk-go v0.2.9 // indirect
6771
github.com/aws/aws-sdk-go v1.44.40 // indirect
6872
github.com/aws/aws-sdk-go-v2 v1.33.0 // indirect
6973
github.com/aws/aws-sdk-go-v2/config v1.29.1 // indirect

go.sum

+4
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,8 @@ github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358/go.mod h1:chxPXzS
190190
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
191191
github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
192192
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
193+
github.com/G-Core/gcore-dns-sdk-go v0.2.9 h1:LMMZIRX8y3aJJuAviNSpFmLbovZUw+6Om+8VElp1F90=
194+
github.com/G-Core/gcore-dns-sdk-go v0.2.9/go.mod h1:35t795gOfzfVanhzkFyUXEzaBuMXwETmJldPpP28MN4=
193195
github.com/GehirnInc/crypt v0.0.0-20230320061759-8cc1b52080c5 h1:IEjq88XO4PuBDcvmjQJcQGg+w+UaafSy8G5Kcb5tBhI=
194196
github.com/GehirnInc/crypt v0.0.0-20230320061759-8cc1b52080c5/go.mod h1:exZ0C/1emQJAw5tHOaUDyY1ycttqBAPcxuzf7QbY6ec=
195197
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
@@ -521,6 +523,8 @@ github.com/libdns/cloudflare v0.1.1 h1:FVPfWwP8zZCqj268LZjmkDleXlHPlFU9KC4OJ3yn0
521523
github.com/libdns/cloudflare v0.1.1/go.mod h1:9VK91idpOjg6v7/WbjkEW49bSCxj00ALesIFDhJ8PBU=
522524
github.com/libdns/digitalocean v0.0.0-20230728223659-4f9064657aea h1:IGlMNZCUp8Ho7NYYorpP5ZJgg2mFXARs6eHs/pSqFkA=
523525
github.com/libdns/digitalocean v0.0.0-20230728223659-4f9064657aea/go.mod h1:B2TChhOTxvBflpRTHlguXWtwa1Ha5WI6JkB6aCViM+0=
526+
github.com/libdns/gcore v0.0.0-20250127070537-4a9d185c9d20 h1:bQwFw+C9sX/zYZlV53ey0KnNkxrfWYIFpvptuAVhJ1Y=
527+
github.com/libdns/gcore v0.0.0-20250127070537-4a9d185c9d20/go.mod h1:JGoT1mbmqQwtYQqN5F/vGc9j4TTTMKw/hDm5vXADHUI=
524528
github.com/libdns/googleclouddns v1.1.0 h1:murPR1LfTZZObLV2OLxUVmymWH25glkMFKpDjkk2m0E=
525529
github.com/libdns/googleclouddns v1.1.0/go.mod h1:3tzd056dfqKlf71V8Oy19En4WjJ3ybyuWx6P9bQSCIw=
526530
github.com/libdns/hetzner v0.0.1 h1:WsmcsOKnfpKmzwhfyqhGQEIlEeEaEUvb7ezoJgBKaqU=

internal/libdns/gcore.go

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
//go:build libdns_gcore || !libdns_separate
2+
// +build libdns_gcore !libdns_separate
3+
4+
package libdns
5+
6+
import (
7+
"fmt"
8+
9+
"github.com/foxcpp/maddy/framework/config"
10+
"github.com/foxcpp/maddy/framework/module"
11+
"github.com/libdns/gcore"
12+
)
13+
14+
func init() {
15+
module.Register("libdns.gcore", func(modName, instName string, _, _ []string) (module.Module, error) {
16+
p := gcore.Provider{}
17+
return &ProviderModule{
18+
RecordDeleter: &p,
19+
RecordAppender: &p,
20+
setConfig: func(c *config.Map) {
21+
c.String("api_key", false, false, "", &p.APIKey)
22+
},
23+
afterConfig: func() error {
24+
if p.APIKey == "" {
25+
return fmt.Errorf("libdns.gcore: api_key should be specified")
26+
}
27+
return nil
28+
},
29+
30+
instName: instName,
31+
modName: modName,
32+
}, nil
33+
})
34+
}

0 commit comments

Comments
 (0)