async_snmp/handler/context.rs
1//! Request context for MIB handlers.
2
3use std::net::SocketAddr;
4
5use bytes::Bytes;
6
7use crate::message::SecurityLevel;
8use crate::pdu::PduType;
9use crate::version::Version;
10
11use super::SecurityModel;
12
13/// Request context passed to MIB handlers.
14///
15/// Contains information about the incoming request for authorization decisions,
16/// including VACM-resolved access control information when VACM is enabled.
17#[derive(Debug, Clone)]
18pub struct RequestContext {
19 /// Source address of the request.
20 pub source: SocketAddr,
21 /// SNMP version.
22 pub version: Version,
23 /// Security model used.
24 pub security_model: SecurityModel,
25 /// Security name (community string or username).
26 pub security_name: Bytes,
27 /// Security level (v3 only, NoAuthNoPriv for v1/v2c).
28 pub security_level: SecurityLevel,
29 /// Context name (v3 only, empty for v1/v2c).
30 pub context_name: Bytes,
31 /// Request ID from the PDU.
32 pub request_id: i32,
33 /// PDU type (GetRequest, GetNextRequest, etc.).
34 pub pdu_type: PduType,
35 /// Resolved group name (if VACM enabled).
36 pub group_name: Option<Bytes>,
37 /// Read view name (if VACM enabled).
38 pub read_view: Option<Bytes>,
39 /// Write view name (if VACM enabled).
40 pub write_view: Option<Bytes>,
41}