pub struct ServeState {
pub name: String,
pub ports: BTreeMap<u16, ServeTarget>,
}Expand description
A complete multi-port Serve configuration for one node (mirrors upstream ipn.ServeConfig’s
per-port TCP map). Stored on the device and reconciled into one accept loop per port by the
Serve runtime; set_serve_config REPLACES the whole config (Go semantics).
All TLS-terminating ports share the node’s single MagicDNS name
certificate (obtained via the ACME path). TcpForward ports need no cert.
Fields§
§name: StringThe node’s MagicDNS name the TLS-terminating ports’ certificate is for (e.g.
host.tailnet.ts.net). Must be a tailnet name when any TLS-terminating port is configured.
ports: BTreeMap<u16, ServeTarget>Map of tailnet (overlay) port → what to serve on it.
Implementations§
Source§impl ServeState
impl ServeState
Sourcepub fn validate(&self) -> Result<(), CertError>
pub fn validate(&self) -> Result<(), CertError>
Validate the whole config. Fail-closed: rejects port 0, empty proxy/forward targets, and —
when any TLS-terminating port is present — a non-tailnet name (anti-leak: we never mint a
cert for an off-tailnet name). An empty config (no ports) is valid (serves nothing).
Trait Implementations§
Source§impl Clone for ServeState
impl Clone for ServeState
Source§fn clone(&self) -> ServeState
fn clone(&self) -> ServeState
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ServeState
impl Debug for ServeState
Source§impl Default for ServeState
impl Default for ServeState
Source§fn default() -> ServeState
fn default() -> ServeState
Source§impl<'de> Deserialize<'de> for ServeState
impl<'de> Deserialize<'de> for ServeState
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ServeState, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ServeState, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for ServeState
Source§impl PartialEq for ServeState
impl PartialEq for ServeState
Source§fn eq(&self, other: &ServeState) -> bool
fn eq(&self, other: &ServeState) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for ServeState
impl Serialize for ServeState
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for ServeState
Auto Trait Implementations§
impl Freeze for ServeState
impl RefUnwindSafe for ServeState
impl Send for ServeState
impl Sync for ServeState
impl Unpin for ServeState
impl UnsafeUnpin for ServeState
impl UnwindSafe for ServeState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<A, T> DynMessage<A> for T
impl<A, T> DynMessage<A> for T
Source§fn handle_dyn<'a>(
self: Box<T>,
state: &'a mut A,
actor_ref: ActorRef<A>,
tx: Option<Sender<Result<Box<dyn Any + Send>, SendError<Box<dyn Any + Send>, Box<dyn Any + Send>>>>>,
stop: &'a mut bool,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn ReplyError>>> + Send + 'a>>
fn handle_dyn<'a>( self: Box<T>, state: &'a mut A, actor_ref: ActorRef<A>, tx: Option<Sender<Result<Box<dyn Any + Send>, SendError<Box<dyn Any + Send>, Box<dyn Any + Send>>>>>, stop: &'a mut bool, ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn ReplyError>>> + Send + 'a>>
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more