Class: SNMP::PDU
- Inherits:
-
Object
- Object
- SNMP::PDU
- Extended by:
- BER::Decode
- Includes:
- BER::Encode
- Defined in:
- lib/snmp/pdu.rb
Direct Known Subclasses
GetBulkRequest, GetNextRequest, GetRequest, Response, SNMPv2_Trap, SetRequest
Constant Summary collapse
- ERROR_STATUS_NAME =
{ 0 => :noError, 1 => :tooBig, 2 => :noSuchName, 3 => :badValue, 4 => :readOnly, 5 => :genErr, 6 => :noAccess, 7 => :wrongType, 8 => :wrongLength, 9 => :wrongEncoding, 10 => :wrongValue, 11 => :noCreation, 12 => :inconsistentValue, 13 => :resourceUnavailable, 14 => :commitFailed, 15 => :undoFailed, 16 => :authorizationError, 17 => :notWritable, 18 => :inconsistentName }
- ERROR_STATUS_CODE =
ERROR_STATUS_NAME.invert
Instance Attribute Summary collapse
-
#error_index ⇒ Object
Returns the value of attribute error_index.
-
#request_id ⇒ Object
Returns the value of attribute request_id.
-
#varbind_list ⇒ Object
(also: #vb_list)
Returns the value of attribute varbind_list.
Class Method Summary collapse
Instance Method Summary collapse
- #each_varbind(&block) ⇒ Object
- #encode_pdu(pdu_tag) ⇒ Object
- #error_status ⇒ Object
- #error_status=(status) ⇒ Object
-
#initialize(request_id, varbind_list, error_status = 0, error_index = 0) ⇒ PDU
constructor
A new instance of PDU.
Methods included from BER::Decode
assert_no_remainder, build_integer, decode_integer, decode_integer_value, decode_ip_address, decode_object_id, decode_object_id_value, decode_octet_string, decode_sequence, decode_timeticks, decode_tlv, decode_uinteger_value
Methods included from BER::Encode
#encode_exception, #encode_integer, #encode_length, #encode_null, #encode_object_id, #encode_octet_string, #encode_sequence, #encode_tagged_integer, #encode_tlv, #integer_to_octets
Constructor Details
#initialize(request_id, varbind_list, error_status = 0, error_index = 0) ⇒ PDU
Returns a new instance of PDU.
173 174 175 176 177 178 |
# File 'lib/snmp/pdu.rb', line 173 def initialize(request_id, varbind_list, error_status=0, error_index=0) @request_id = request_id self.error_status = error_status @error_index = error_index.to_int @varbind_list = varbind_list end |
Instance Attribute Details
#error_index ⇒ Object
Returns the value of attribute error_index.
135 136 137 |
# File 'lib/snmp/pdu.rb', line 135 def error_index @error_index end |
#request_id ⇒ Object
Returns the value of attribute request_id.
134 135 136 |
# File 'lib/snmp/pdu.rb', line 134 def request_id @request_id end |
#varbind_list ⇒ Object Also known as: vb_list
Returns the value of attribute varbind_list.
136 137 138 |
# File 'lib/snmp/pdu.rb', line 136 def varbind_list @varbind_list end |
Class Method Details
.decode(pdu_class, pdu_data, mib = nil) ⇒ Object
140 141 142 143 144 145 146 147 |
# File 'lib/snmp/pdu.rb', line 140 def self.decode(pdu_class, pdu_data, mib=nil) request_id, remainder = decode_integer(pdu_data) error_status, remainder = decode_integer(remainder) error_index, remainder = decode_integer(remainder) varbind_list, remainder = VarBindList.decode(remainder, mib) assert_no_remainder(remainder) pdu_class.new(request_id, varbind_list, error_status, error_index) end |
Instance Method Details
#each_varbind(&block) ⇒ Object
203 204 205 |
# File 'lib/snmp/pdu.rb', line 203 def each_varbind(&block) @varbind_list.each(&block) end |
#encode_pdu(pdu_tag) ⇒ Object
195 196 197 198 199 200 201 |
# File 'lib/snmp/pdu.rb', line 195 def encode_pdu(pdu_tag) pdu_data = encode_integer(@request_id) pdu_data << encode_integer(@error_status) pdu_data << encode_integer(@error_index) pdu_data << @varbind_list.encode encode_tlv(pdu_tag, pdu_data) end |
#error_status ⇒ Object
191 192 193 |
# File 'lib/snmp/pdu.rb', line 191 def error_status ERROR_STATUS_NAME[@error_status] || @error_status end |
#error_status=(status) ⇒ Object
180 181 182 183 184 185 186 187 188 189 |
# File 'lib/snmp/pdu.rb', line 180 def error_status=(status) @error_status = ERROR_STATUS_CODE[status] unless @error_status if status.respond_to?(:to_int) @error_status = status.to_int else raise InvalidErrorStatus, status.to_s end end end |