pub struct HsDescEvent {
pub action: HsDescAction,
pub address: String,
pub authentication: Option<HsAuth>,
pub directory: Option<String>,
pub directory_fingerprint: Option<String>,
pub directory_nickname: Option<String>,
pub descriptor_id: Option<String>,
pub reason: Option<HsDescReason>,
/* private fields */
}Expand description
Event triggered when fetching or uploading hidden service descriptors.
This event tracks the lifecycle of hidden service descriptor operations, including requests, uploads, and failures. It’s essential for monitoring hidden service connectivity.
§Actions
The action field indicates the operation:
HsDescAction::Requested- Descriptor fetch requestedHsDescAction::Received- Descriptor successfully receivedHsDescAction::Uploaded- Descriptor successfully uploadedHsDescAction::Failed- Operation failed (checkreason)HsDescAction::Created- New descriptor createdHsDescAction::Ignore- Descriptor ignored
§Directory Information
The directory field contains the HSDir relay handling the request.
The fingerprint and nickname are extracted into separate fields for
convenience.
§Example
use stem_rs::events::HsDescEvent;
use stem_rs::HsDescAction;
fn handle_hsdesc(event: &HsDescEvent) {
match event.action {
HsDescAction::Received => {
println!("Got descriptor for {} from {:?}",
event.address, event.directory_nickname);
}
HsDescAction::Failed => {
println!("Failed to get descriptor for {}: {:?}",
event.address, event.reason);
}
_ => {}
}
}§See Also
HsDescAction- Descriptor actionsHsDescReason- Failure reasonsHsAuth- Authentication types
Fields§
§action: HsDescActionAction being performed on the descriptor.
address: StringHidden service address (onion address).
authentication: Option<HsAuth>Authentication type for the hidden service.
directory: Option<String>Full directory relay string.
directory_fingerprint: Option<String>Directory relay fingerprint.
directory_nickname: Option<String>Directory relay nickname.
descriptor_id: Option<String>Descriptor identifier.
reason: Option<HsDescReason>Reason for failure (if action is Failed).
Implementations§
Source§impl HsDescEvent
impl HsDescEvent
Sourcepub fn parse(content: &str) -> Result<Self, Error>
pub fn parse(content: &str) -> Result<Self, Error>
Parses a hidden service descriptor event from raw control protocol content.
§Arguments
content- The event content after the event type
§Event Format
Action Address AuthType [Directory] [DescriptorID] [REASON=...]§Errors
Returns Error::Protocol if:
- Required fields are missing
- The action is unrecognized
Trait Implementations§
Source§impl Clone for HsDescEvent
impl Clone for HsDescEvent
Source§fn clone(&self) -> HsDescEvent
fn clone(&self) -> HsDescEvent
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more