Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

on Windows hnsd does not respond to dns questions during synchronization #128

Open
randomlogin opened this issue Jul 31, 2024 · 1 comment

Comments

@randomlogin
Copy link
Contributor

randomlogin commented Jul 31, 2024

On the contrary to the behaviour on Linux/macOs, on windows hnsd does not respond to DNS questions (at least to HS hesiod questions) during the syncronization. HS questions are used to retrieve internal hnsd status (for example whether hnsd is synced or not), effectively making it unusable.

Tested on:
Edition Windows 11 Home
Version 23H2
Operating system build 22631.3880
Experience Windows Feature Experience Pack 1000.22700.1020.0

Compiled hnsd with msys2.

@AndreiChyrych
Copy link

SANE (more precisely) uses hnsd to get the last tree roots which contain information about Handshake domains. It has to run hnsd once a day for several seconds and then shuts its down once hnsd has synced.

To understand whether hnsd has synced all data, the DNS messages are used (hnsd is a DNS server). On macOs and linux the processes responsible for syncing and responding to dns messages run simultaneously and pose no problems. However on windows the server does not respond to messages until it's synced (and initial sync might require several minutes).

Therefore it's impossible to understand when hnsd is synced and to kill it or at least to show the user accurate data.

Rewriting (and even just understanding hnsd) code is quite complex. So I'm thinking about workarounds.

  1. The first workaround is to give up the windows version. The problem is that even if this sync problem is solved, running hnsd on windows requires manually installing (and maybe building) libraries it uses. Which is difficult for a non-tech-savy user.
    I'm exploring how to distribute executables for windows along with the libraries, but I'm afraid that even in case it's possible to do it, it will require distinct packages for different versions/architetcures (say windows 10, arm??), which I definitely not able to maintain.
    Seems to be the easiest solution.

  2. To explore hnsd and to make its behaviour for windows same as that of linux.
    Seems to be quite difficult, and the rest of the problems with windows (building) remains relevant.

  3. Change SANE (fingertip) behaviour, find some workaround to support windows the current hnsd behaviour. Probably it will have a bit wors user experience, and it will require me some additional work.
    The rest of platforms (macOs, linux) work fine, but require some additiobal work for packaging for the sake of the user ease.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants