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

Add custom control plane for third-party device vendors #2438

Draft
wants to merge 4 commits into
base: dev
Choose a base branch
from

Conversation

joseph-henry
Copy link
Contributor

This change provides third-party device vendors the ability to manage ZeroTier without exposing the typical HTTPS control plane on localhost. It can be enabled at compile-time via ZT_EXTOSDEP=1.

There are minor changes to our dependencies which is not ideal but since the changes are so minor and it is so unlikely that they will change again I feel it is acceptable.

Comment on lines +28 to +39

#include <stdint.h>

#if UINTPTR_MAX == 0xffFFffFF
// 32-bit platform
template <typename Value_ = uint32_t>
#elif UINTPTR_MAX == 0xffFFffFFffFFffFF
// 64-bit platform
template <typename Value_ = uint64_t>
#else
#error Unknown platform - does not look either like 32-bit or 64-bit
#endif
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So I've seen these changes in a couple of places in the prometheus imports. Nothing too horrible, for sure, but I wonder if it might be better to have these in a wrapper header just so that we don't have to modify the external stuff.

For instance, we create a <ztcounter.h> that includes this block of code, and then #include's the prometheus counter.h.

Just a thought

@laduke
Copy link
Contributor

laduke commented Feb 26, 2025

httpcpplib might need updating to fix this issue:
#2342

only mentioning it because the change will get reverted if when copy in a new version of the lib

@glimberg
Copy link
Contributor

Should probably add an Action that at the very least builds this configuration for PRs just to make sure it's in a state that compiles.

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

Successfully merging this pull request may close these issues.

3 participants