From 85c93d7e8e31c6050df1e395a6cd87fd5f93133c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Sun, 30 Mar 2025 00:17:00 +0800 Subject: [PATCH 1/4] fix: setRecord not set TTL --- client.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client.go b/client.go index dbac922..7fdc80d 100644 --- a/client.go +++ b/client.go @@ -67,6 +67,9 @@ func (p *Provider) setDomainRecord(ctx context.Context, rc aliDomaRecord) (recID p.client.mutex.Lock() defer p.client.mutex.Unlock() p.getClientWithZone(rc.DName) + if rc.TTL <= 0 { + rc.TTL = 600 + } p.client.aClient.addReqBody("Action", "UpdateDomainRecord") p.client.aClient.addReqBody("RecordId", rc.RecID) p.client.aClient.addReqBody("RR", rc.Rr) From 6497b3450b2e67122e172f0a6211c049fd901bce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Sun, 30 Mar 2025 05:00:40 +0800 Subject: [PATCH 2/4] fix: SetRecords doesn't need to automatically get RecID --- provider.go | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/provider.go b/provider.go index a2ea5e4..ec90a35 100644 --- a/provider.go +++ b/provider.go @@ -40,10 +40,10 @@ func (p *Provider) DeleteRecords(ctx context.Context, zone string, recs []libdns ar := alidnsRecordWithZone(rec, zone) if len(ar.RecID) == 0 { r0, err := p.queryDomainRecord(ctx, ar.Rr, ar.DName, ar.DTyp) - ar.RecID = r0.RecID if err != nil { return nil, err } + ar.RecID = r0.RecID } _, err := p.delDomainRecord(ctx, ar) if err != nil { @@ -71,23 +71,20 @@ func (p *Provider) GetRecords(ctx context.Context, zone string) ([]libdns.Record // or creating new ones. It returns the updated records. func (p *Provider) SetRecords(ctx context.Context, zone string, recs []libdns.Record) ([]libdns.Record, error) { var rls []libdns.Record + var err error for _, rec := range recs { ar := alidnsRecordWithZone(rec, zone) - if len(ar.RecID) == 0 { - r0, err := p.queryDomainRecord(ctx, ar.Rr, ar.DName, ar.DTyp) + if ar.RecID == "" { + ar.RecID, err = p.addDomainRecord(ctx, ar) if err != nil { - ar.RecID, err = p.addDomainRecord(ctx, ar) - } else { - ar.RecID = r0.RecID + return nil, err } + } else { + _, err = p.setDomainRecord(ctx, ar) if err != nil { return nil, err } } - _, err := p.setDomainRecord(ctx, ar) - if err != nil { - return nil, err - } rls = append(rls, ar.LibdnsRecord()) } return rls, nil From 05637d1994b2347face6439636c34a7139c4e4cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Sun, 30 Mar 2025 15:03:26 +0800 Subject: [PATCH 3/4] fix: DeleteRecords doesn't need to automatically get RecID --- provider.go | 7 ------- 1 file changed, 7 deletions(-) diff --git a/provider.go b/provider.go index ec90a35..99beb38 100644 --- a/provider.go +++ b/provider.go @@ -38,13 +38,6 @@ func (p *Provider) DeleteRecords(ctx context.Context, zone string, recs []libdns var rls []libdns.Record for _, rec := range recs { ar := alidnsRecordWithZone(rec, zone) - if len(ar.RecID) == 0 { - r0, err := p.queryDomainRecord(ctx, ar.Rr, ar.DName, ar.DTyp) - if err != nil { - return nil, err - } - ar.RecID = r0.RecID - } _, err := p.delDomainRecord(ctx, ar) if err != nil { return nil, err From 5c0067dc1fbb3ed2117384f7de91beac42c3b860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Sun, 30 Mar 2025 15:33:15 +0800 Subject: [PATCH 4/4] fix: remove debug message --- aliSimple.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/aliSimple.go b/aliSimple.go index fdb652b..a326177 100644 --- a/aliSimple.go +++ b/aliSimple.go @@ -21,7 +21,6 @@ import ( const defRegID string = "cn-hangzhou" const addrOfAPI string = "%s://alidns.aliyuncs.com/" -const dbgTAG string = "DEBUG:>\t" // CredInfo implements param of the crediential type CredInfo struct { @@ -89,7 +88,7 @@ func (c *mClient) applyReq(cxt context.Context, method string, body io.Reader) ( func (c *aliClient) getAliClientSche(cred *CredInfo, scheme string) (*aliClient, error) { if cred == nil { - return &aliClient{}, errors.New("alicloud: credentials missing") + return &aliClient{}, errors.New("alidns: credentials missing") } if scheme == "" { scheme = "http" @@ -115,13 +114,11 @@ func (c *aliClient) getAliClientSche(cred *CredInfo, scheme string) (*aliClient, func (c *aliClient) signReq(method string) error { if c.sigPwd == "" || len(c.reqMap) == 0 { - return errors.New("alicloud: AccessKeySecret or Request(includes AccessKeyId) is Misssing") + return errors.New("alidns: AccessKeySecret or Request(includes AccessKeyId) is Misssing") } sort.Sort(byKey(c.reqMap)) str := c.reqMapToStr() - fmt.Println(dbgTAG+"Request map to str:", str) str = c.reqStrToSign(str, method) - fmt.Println(dbgTAG+"URL to sign:", str) c.sigStr = signStr(str, c.sigPwd) return nil }