[GH-ISSUE #1884] Update catalog after server started manually #803

Open
opened 2026-03-16 00:18:41 +03:00 by kerem · 1 comment
Owner

Originally created by @haasal on GitHub (Jan 17, 2023).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/1884

I know there is SIG0 to update entries on the server using the client. But I would really like to keep it simple.
Is there a way to update the trust_dns_server::authority::Catalog programmatically after it has been passed to the server and the server has been started?

My goal is to build a very simple DynDNS server with a simple REST endpoint for the entry updates.
If this is a bad idea, please let me know.

Originally created by @haasal on GitHub (Jan 17, 2023). Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/1884 I know there is SIG0 to update entries on the server using the client. But I would really like to keep it simple. Is there a way to update the `trust_dns_server::authority::Catalog` programmatically _after_ it has been passed to the server and the server has been started? My goal is to build a very simple DynDNS server with a simple REST endpoint for the entry updates. If this is a bad idea, please let me know.
Author
Owner

@mladedav commented on GitHub (Mar 8, 2023):

I had a similar issue but only for testing purposes so you might want to use a bit different solution.

I simply created a newtype MyCatalog(Arc<RwLock<Catalog>>); and then implemented RequestHandler by read-locking the catalog and passing the request inside. I have my own copy outside which allows me to change the catalog with a write-lock. This of course blocks the DNS server for the duration of the lock which probably would be an issue for you.

In any case you might want to try creating a custom struct implementing RequestHandler to solve your issue if you have any specific needs for it.

<!-- gh-comment-id:1460392073 --> @mladedav commented on GitHub (Mar 8, 2023): I had a similar issue but only for testing purposes so you might want to use a bit different solution. I simply created a newtype `MyCatalog(Arc<RwLock<Catalog>>);` and then implemented `RequestHandler` by read-locking the catalog and passing the request inside. I have my own copy outside which allows me to change the catalog with a write-lock. This of course blocks the DNS server for the duration of the lock which probably would be an issue for you. In any case you might want to try creating a custom struct implementing `RequestHandler` to solve your issue if you have any specific needs for it.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hickory-dns#803
No description provided.