Commit graph

38 commits

Author SHA1 Message Date
Tom Limoncelli
4e8fb894ef
CSCGLOBAL: Be less noisy about rate limit delays (#2686) 2023-12-05 10:02:55 -05:00
Tom Limoncelli
76d93acaf5
CHORE: Remove dead code: txtutil.SplitSingleLongTxt() and txtutil.Segment() (#2685) 2023-12-05 09:47:52 -05:00
Tom Limoncelli
cbccbbeb8d
REFACTOR: Opinion: TXT records are one long string (#2631)
Co-authored-by: Costas Drogos <costas.drogos@gmail.com>
Co-authored-by: imlonghao <git@imlonghao.com>
Co-authored-by: Jeffrey Cafferata <jeffrey@jcid.nl>
Co-authored-by: Vincent Hagen <blackshadev@users.noreply.github.com>
2023-12-04 17:45:25 -05:00
Tom Limoncelli
159fdf07ad
REFACTOR: providers should not directly access .TxtStrings (#2629) 2023-11-18 15:06:20 -05:00
Tom Limoncelli
c91fe6c1c8
CHORE: Remove diff1 from codebase (#2575) 2023-10-22 13:56:13 -04:00
Tom Limoncelli
e7f1872fd5
CSCGLOBAL: Be silent about backoffs less than 10s (#2588) 2023-10-08 11:33:42 -04:00
Atma Rutledge
449e2a77e5
FOUND-1643: FEATURE: Adding rate limit to CSCGlobal (#2490) 2023-08-01 09:40:59 -04:00
nemunaire
5ae231030e
Update version in go.mod (#2382) 2023-05-20 13:21:45 -04:00
Daniil Lemenkov
36e3595612
CHORE: Satisfy Staticcheck and remove unused code (#2331) 2023-05-08 16:49:26 -04:00
Tom Limoncelli
489be2e3dc
ROUTE53: fix R53_ZONE() handling for domains (#2306)
Co-authored-by: Tom Limoncelli <tal@whatexit.org>
2023-05-02 13:04:59 -04:00
Tom Limoncelli
60470a3886
BUG: Some DNS zones are downloaded twice (#2120)
Signed-off-by: Amelia Aronsohn <squirrel@wearing.black>
Co-authored-by: Tom Limoncelli <tal@whatexit.org>
Co-authored-by: Grégoire Henry <hnrgrgr@users.noreply.github.com>
Co-authored-by: Amelia Aronsohn <squirrel@wearing.black>
Co-authored-by: Kai Schwarz <kschwarz@hexonet.net>
Co-authored-by: Asif Nawaz <asif.nawaz@centralnic.com>
Co-authored-by: imlonghao <git@imlonghao.com>
Co-authored-by: Will Power <1619102+willpower232@users.noreply.github.com>
2023-04-14 15:22:23 -04:00
Tom Limoncelli
2586e2b611
CORE: Clean up diff2 code in prep for production (#2104) 2023-02-28 01:25:09 -05:00
Paul Dee
35c0386a3d
CSCGLOBAL: Fix comment typo (#2100) 2023-02-27 20:46:55 -05:00
Tom Limoncelli
48f642cd54
CSCGLOBAL: Adopt diff2 in compatibility mode (#1875) 2023-01-12 16:32:29 -05:00
Tom Limoncelli
54fc2e9ce3
NEW FEATURE: diff2: A better "diff" mechanism (#1852) 2022-12-11 17:28:58 -05:00
Tom Limoncelli
b0f2945510
REFACTOR: Add diff2 enable flag to all DNS providers (#1851)
This should enable the diff2 code to be inserted with good "git blame" results for new code.  I'm adding this early to catch any problems early.
2022-12-11 15:02:58 -05:00
Tom Limoncelli
61e500b7dc
DEV: Optimize integration tests (#1742) 2022-09-07 14:08:06 -04:00
Tom Limoncelli
ccb582b278
CHORE: Linting (#1704)
* Remove deprecated io/ioutil
* fixup!
* staticcheck and linting
* revert models/provider.go
* Fix imports to new style
* linting
2022-08-14 20:46:56 -04:00
Tom Limoncelli
cd61c2c766
CHORE: Remove deprecated io/ioutil (#1699)
* Remove deprecated io/ioutil

* fixup!

* fixup!
2022-08-14 12:50:15 -04:00
Tom Limoncelli
31723ad146
PERFORMANCE: Refactor auditrecords.go to loop only once #1570 (#1658)
* stash

* Use rejectif idea

* rename

* wip!

* Convert old systems to new

* fixup!

* fix typo
2022-08-11 17:24:47 -04:00
Tom Limoncelli
d6f1575ae5
BUG: MSDNS and CSCGLOBAL get records twice (#1688) 2022-08-11 15:40:13 -04:00
Tom Limoncelli
eba4155cb9
CSCGLOBAL: Improve performance by waiting less (#1669)
* Fix broken test
* Revert to the slow+safe CSC algorithm
* Instead of waiting for COMPLETED, wait for PROPAGATING to begin.
* improve error messages
* cleanup
2022-08-09 10:00:03 -04:00
Tom Limoncelli
ec8bfe4b6d
CSCGLOBAL: Use slow and safe algorithm (#1663)
* Fix broken test

* CLOUDFLARE: Fix missing nameserver bug

* CSCGLOBAL: Catch more status states

* wip!

* remove extra print

* Revert to the slow+safe CSC algorithm
2022-08-08 13:23:47 -04:00
Tom Limoncelli
dd3416674f
CLOUDFLARE: Fix domain list cache error (#1662)
* Fix broken test

* CLOUDFLARE: Fix missing nameserver bug

* CSCGLOBAL: Catch more status states

* wip!

* remove extra print
2022-08-08 13:00:58 -04:00
Tom Limoncelli
15e6c95042
CSCGLOBAL: Lazy-check API results, saving 5-7 minutes per domain (#1638) 2022-07-21 14:35:37 -04:00
Tom Limoncelli
4d768afc3d
CSCGLOBAL: Support TXT records that are long or include double-quotes (#1631)
* Remove TXT restrictions around length

* Improve get-zones "js" format.

New:

```
$ dnscontrol get-zone --format js providercredkey - stackoverflow.co.il
var DSP_PROVIDERCREDKEY = NewDnsProvider("providercredkey");
var REG_CHANGEME = NewRegistrar("none");
D("stackoverflow.co.il", REG_CHANGEME,
	DnsProvider(DSP_PROVIDERCREDKEY),
	DefaultTTL(14400),
	A('www', '165.160.15.20'),
	...
	...
	...
	...
	//NAMESERVER('dns1.cscdns.net.'),
	//NAMESERVER('dns2.cscdns.net.')
)
```

* Update test data
2022-07-19 17:48:15 -04:00
Tom Limoncelli
959f721c04
MAINT: Update TXT docs, suggest not using TxtNoLen255 (#1548)
* suggest not using TxtNoLen255

* Rename functions

* wip!

* fixing!
2022-06-20 11:34:05 -04:00
Jan-Philipp Benecke
bcb968411a
MAINT: Unify provider outputs to pkg/printer (#1546)
* Unify provider outputs to pkg/printer

Signed-off-by: Jan-Philipp Benecke <jan-philipp@bnck.me>

* No need for custom Errorf

Signed-off-by: Jan-Philipp Benecke <jan-philipp@bnck.me>

* Add missing import for activedir

Signed-off-by: Jan-Philipp Benecke <jan-philipp@bnck.me>

* Add missing fmt import for activedir

Signed-off-by: Jan-Philipp Benecke <jan-philipp@bnck.me>
2022-06-18 09:01:02 -04:00
Tom Limoncelli
7826c23cfa
CSCGLOBAL: Enable CAA records (#1536)
* Enable CAA

* Another API oddity

* Disable debug output
2022-06-14 07:16:01 -04:00
Tom Limoncelli
752e25471d
NEW PROVIDER: CSCGLOBAL as DNS Service Provider (#1516)
* Move the registrar features to a separate file

* Prepare the testing framework

* Roughed out functions

* Fix up structs

* WIP!

* First tests pass

* wip!

* Flesh out remaining rTypes, get nameservers, etc

* Fix TXT records

* Clean up code

* More cleanups. Fix CAA/SRV

* Linting

* Cleanups/linting

* Fix CAA [more] and more cleanups

* CSC does not like very long txt records

* Use timer only when interactive

* Disable CAA for now

* Update docs

* Remove debug printf

* add go-isatty

* cleanups
2022-06-12 16:01:08 -04:00
Tom Limoncelli
dcb0e58b99
MAINT: Linting (#1380)
* MAINT: Linting

* Unsort for a smaller diff

* fix hexonet error checking
2022-01-27 15:58:56 -05:00
Tom Limoncelli
360a6266c5 Revert "CLEANUP: Fix many golint/staticcheck issues"
This reverts commit de64f90c51.
2022-01-25 10:35:21 -05:00
Tom Limoncelli
de64f90c51 CLEANUP: Fix many golint/staticcheck issues 2022-01-25 10:33:48 -05:00
Tom Limoncelli
8dea9edc34
Re-engineer TXT records for simplicity and better compliance (#1063)
TXT records are now handled different.

1. The raw input from dnsconfig.js is passed all the way to the provider. The provider can determine if it can or can't handle such records (auditrecords.go) and processes them internally as such.
2. The CanUseTXTMulti capability is no longer needed.

* DSPs now register a table of functions
* Use audits for txt record variations
* unit tests pass. integration fails.
* fix deepcopy problem
* rename to AuditRecordSupport
* Reduce use of TXTMulti
* Remove CanUseTXTMulti
* fix Test Skip
* fix DO
* fix vultr
* fix NDC
* msdns fixes
* Fix powerdns and cloudflare
* HEDNS: Fix usage of target field to resolve TXT handling (#1067)
* Fix HEXONET

Co-authored-by: Robert Blenkinsopp <robert@blenkinsopp.net>
Co-authored-by: Jakob Ackermann <das7pad@outlook.com>
2021-03-07 13:19:22 -05:00
Tom Limoncelli
7db3741bc7
MAINTENANCE: Unknown rtypes should return errors, not a panic (#945)
* Eliminate panics related to unknown rtypes
2020-11-13 16:32:40 -05:00
Tom Limoncelli
ca30c9c34f
Rename provider handles to *Provider (#914) 2020-10-26 09:25:30 -04:00
Tom Limoncelli
b275286dae
Add D_EXTEND (#885) (thanks to @ad8-bdl!)
* fix get-zones code block indentation

* extend D_EXTEND to handle subdomains

* fix targets: make absolute incl. subdomain where necessary

* clarify subdomain target test (not IP && not fqdn)

* Add parse_tests for D and D_EXTEND

* _getDomainObject: examine all domains

* human readable form

* consistent test IP addresses

* Improve docs and formatting

* propagate subdomain to canonicalisation

* en-US spelling

* rm extraneous console.log

* ignore subdomain for CF_REDIRECT

* clarify D_EXTEND doc re. CF_REDIRECT

* rm extraneous linebreak

* _getDomainObject: examine all domains

* human readable form

* consistent test IP addresses

* propagate subdomain to canonicalisation

* en-US spelling

* rm extraneous console.log

* ignore subdomain for CF_REDIRECT

* clarify D_EXTEND doc re. CF_REDIRECT

* rm extraneous linebreak

* GANDI_V5: Use github.com/go-gandi/go-gandi, not github.com/tiramiseb/go-gandi (#883)

* DOCUMENTATION: Fix error in CNAME.md (#877)

The current example `CNAME("def", "test.subdomain"), // def.example.com -> test.subdomain.example.com` is invalid (correctly raises a validation error, "ERROR: in CNAME def.example.com: target (test.subdomain) must end with a (.)")

* typos, fmt; example syntax fixes and real output

* formatting; re-add lost comment

* RecordConfig subdomain should be nullable

* providers/cscglobal/api.go: Fix fmt string

* More tests and docs

* go generate

Co-authored-by: Ben L <47653825+ad8-bdl@users.noreply.github.com>
2020-10-07 14:27:33 -04:00
Mike Cochrane
9818eb1fca
New Registrar: CSC Global (#827)
* CSC Global Registrar provider

* better error handling. Coding standards.

* Just return the error
2020-09-07 12:00:21 -04:00