pub struct NodeCalls { /* private fields */ }Expand description
Shared by the door and the node-mail wake; the restream bridge signals presence here.
Implementations§
Source§impl NodeCalls
impl NodeCalls
pub fn new( node_id: String, keys: Option<UpstreamKeys>, legacy: Option<(SocketAddr, Arc<NodeIdentity>)>, config_http: Option<(SocketAddr, Arc<NodeIdentity>)>, ) -> Self
Sourcepub async fn set_uplink(&self, uplink: Option<Arc<NodeUplink>>)
pub async fn set_uplink(&self, uplink: Option<Arc<NodeUplink>>)
Bridge (re)connect: refresh product URL. Mail TCP is maintained separately
by Self::spawn_mail_uplink so PTY and mail do not share fate.
Sourcepub fn spawn_mail_uplink(
&self,
addr: SocketAddr,
keys: UpstreamKeys,
journal: Option<Arc<UplinkJournal>>,
shutdown: Receiver<bool>,
)
pub fn spawn_mail_uplink( &self, addr: SocketAddr, keys: UpstreamKeys, journal: Option<Arc<UplinkJournal>>, shutdown: Receiver<bool>, )
Keep a dedicated TCP + ch2 Noise session open for node-calls. Reconnects with exponential backoff (5s → 30s) independently of the g4a bridge.
Sourcepub async fn refresh_product_url(&self) -> bool
pub async fn refresh_product_url(&self) -> bool
Ask C2 for its public config over enroll HTTP and stash m4a_product_url.
Sourcepub async fn refresh_product_url_retrying(&self)
pub async fn refresh_product_url_retrying(&self)
Self::refresh_product_url with retries (5s doubling to 5 min) until C2 answers.
pub async fn call(&self, op: &str, payload: &Value) -> Result<Value, CallError>
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for NodeCalls
impl !UnwindSafe for NodeCalls
impl Freeze for NodeCalls
impl Send for NodeCalls
impl Sync for NodeCalls
impl Unpin for NodeCalls
impl UnsafeUnpin for NodeCalls
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> ⓘ
Converts
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> ⓘ
Converts
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