This is a much bigger patch implementing a key feature of hidden service. Loading and configuring a service from the torrc file.
A new object is added which is hs_service_t representing a v3 service. The hs_config.[ch] files are introduced which loads the options and create an hs_service_t object out of it.
Like the legacy code, it goes in two steps. First, load the options and validate. Then, load/generate the keys if not in validate mode.
Some refactoring of the legacy code was needed in order to have a central entry point for the configuration of the HS options for both v2 and v3.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items
0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items
0
Link issues together to show that they're related.
Learn more.
Ready for review. This is pretty big but should be kind of easy to follow (I hope!). I've extracted 11 commits from #20657 (moved). Unit tests coverage is 100% I believe.
Hey David, I submitted the first round of review on gitlab. I'm still not done with the branch but that's a start. The branch seems to work pretty well here.
BTW, it would be nice if I had some more service-side code to review/test because just loading HSes does not give me much testing surface. If I had some code that also uses the generated HS that would be more useful for review/testing. Do you think that's a good time to prepare for me the second batch of service-side code for review? Or should I keep reviewing this codebase more?