additional packet formats supported

This commit is contained in:
blackhedd 2006-12-15 16:15:06 +00:00
parent 3f14b54014
commit 0bf35f8d3e

View file

@ -44,7 +44,9 @@ module Net
:primitive => { :primitive => {
}, },
:constructed => { :constructed => {
0 => :array # GetRequest PDU (RFC1157 pgh 4.1.2) 0 => :array, # GetRequest PDU (RFC1157 pgh 4.1.2)
1 => :array, # GetNextRequest PDU (RFC1157 pgh 4.1.3)
2 => :array # GetResponse PDU (RFC1157 pgh 4.1.4)
} }
} }
}) })
@ -115,6 +117,10 @@ module Net
when 0 when 0
send :pdu_type=, :get_request send :pdu_type=, :get_request
parse_get_request data parse_get_request data
when 1
send :pdu_type=, :get_next_request
# This PDU is identical to get-request except for the type.
parse_get_request data
else else
raise Error.new( "unknown snmp-pdu type: #{app_tag}" ) raise Error.new( "unknown snmp-pdu type: #{app_tag}" )
end end
@ -139,6 +145,7 @@ module Net
end end
private :parse_get_request private :parse_get_request
def version= ver def version= ver
unless [0,2].include?(ver) unless [0,2].include?(ver)
raise Error.new("unknown snmp-version: #{ver}") raise Error.new("unknown snmp-version: #{ver}")
@ -165,7 +172,7 @@ module Net
#-- #--
# Syntactic sugar # Syntactic sugar
def add_variable_binding name, value def add_variable_binding name, value=nil
@variables ||= [] @variables ||= []
@variables << [name, value] @variables << [name, value]
end end
@ -194,6 +201,17 @@ module Net
} }
].to_ber_sequence ].to_ber_sequence
].to_ber_contextspecific(0) ].to_ber_contextspecific(0)
when :get_next_request
[
request_id.to_ber,
error_status.to_ber,
error_index.to_ber,
[
@variables.map {|n,v|
[n.to_ber_oid, Net::BER::BerIdentifiedNull.new.to_ber].to_ber_sequence
}
].to_ber_sequence
].to_ber_contextspecific(1)
when :get_response when :get_response
[ [
request_id.to_ber, request_id.to_ber,