Add Linode Provider, Cache DNS Entries, and Fix 2 Open Issues#22
Add Linode Provider, Cache DNS Entries, and Fix 2 Open Issues#22anonyco wants to merge 17 commits intostalwartlabs:mainfrom
Conversation
The commit d5b3b69 fixed the behavior of desec for Stalwart but broke the test and the example. Desec requires an additional level of JSON quoting for items in arrays of TXT records: https://desec.readthedocs.io/en/latest/dns/rrsets.html#caveats Also, add copyright to desec and lib tests and add flexibility for future continuous Desec tests via secret environment variables Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
…iders For hygienic history and time-traveling rebasers Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
This is a necessary change for the next commit, implementing a cache and I thought it'd make the history nicer/cleaner to separate this change into its own commit. Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
This is a very simple, very basic, yet extraordinarily effective way to reduce the numer of API requests to DNS update API servers. Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
Continuation of the previous commit. These commits were split into two commits for better history hygiene and organization. Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
This script doesn't do anything you can't do youself; really the main reason I wrote it is the non-obvious (undocumented?) argument of --all-targets required to get `cargo clippy` to actually work. I expect ./tool to be very useful for other things as well, whatever quick shortcuts people find useful. Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
These conversion methods will be used in the next commit to massively debloat and deduplicate the project's providers codes Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
Bump version 0.1.6 Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
|
Hi, Thanks for the PR! A few comments:
|
For upstream users of the dns-update crate Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
Actual consolidation coming up in the next commit Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
Emphasize non-breaking. Great effort went into ensuring this is a non-breaking change Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
…oviders Emphasize non-breaking. Great effort went into ensuring this is a non-breaking change Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
Includes an integration test on a live real domain Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
Bump version 0.1.6 Signed-off-by: Jack Giffin <jack.giffin.dev@gmail.com>
|
Hi, Thank you for all the work you do on Stalwart. I removed the
I'll remove the cache if that's what you want, it's not my intention to obstruct. I just thought you didn't have the full info on the feature 👍 |
|
Hi, yes, please remove all caching code. This PR should only add Linode support. Other changes or improvements to the API can be discussed separately. However, caching is beyond the scope of this library even if it has zero cost. |
Yes, atomic commits for the win! |
I put significant effort into ensuring this is a deceptively small change guaranteed to break nothing and cause you no issues:
stalwartand stalwart builds and tests with no additional errors. (Baseline stalwart is currently failing with 20 or 21 errors prior to these changes.)git bisectaway!dns_update::Errordoes not implementstd::error::Error#8. I checked thiserror's source code and, if I were to fixdns_update::Errordoes not implementstd::error::Error#8 without adding thiserror, I'd end up duplicating half of the code inthiserror(and greatly increasing maintenance efforts of dns-update). Also, thiserror pulls in 0 subdependencies. I think it's a pretty unobjectionable decision to add the thiserror crate.Three issues were not addressed by these changes:
hickory_proto::rr::record_data::RDatainstead of ownDnsRecordtype #9 as WontFix because the Hickory Rust library is horrible at frequent massively breaking changes. Attempting to use Hickory's DNS entries would only lead to this project getting into a mess of trouble within a matter of months or weeks.I hope this isn't too big of a change, and I hope you see the effort I put in to ensure my changes are as little hassle for you as possible 👍