Module: RubySMB::Dcerpc::Ndr::TopLevelPlugin
- Defined in:
- lib/ruby_smb/dcerpc/ndr.rb
Defined Under Namespace
Modules: TopLevelClassMethods
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.extended(target) ⇒ Object
876
877
878
879
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 876
def self.extended(target)
target.class.extend(TopLevelClassMethods)
target.class.reset_pos
end
|
Instance Method Details
#do_write(io, is_deferred: false) ⇒ Object
886
887
888
889
890
891
892
893
894
895
896
897
898
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 886
def do_write(io, is_deferred: false)
self.class.reset_pos if is_top_level_ptr || @standalone_ptr
if is_deferred
super(io, is_deferred: is_deferred)
else
super(io)
end
self.class.reset_pos if is_top_level_ptr || @standalone_ptr
end
|
#initialize_instance ⇒ Object
881
882
883
884
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 881
def initialize_instance
super
@standalone_ptr = false
end
|
#is_top_level_ptr ⇒ Object
916
917
918
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 916
def is_top_level_ptr
!!@top_level_ptr
end
|
#num_bytes ⇒ Object
920
921
922
923
924
925
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 920
def num_bytes
@standalone_ptr = true
res = super
@standalone_ptr = false
res
end
|
#set_top_level_ptr ⇒ Object
907
908
909
910
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 907
def set_top_level_ptr
@top_level_ptr = true
end
|
#to_binary_s ⇒ Object
900
901
902
903
904
905
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 900
def to_binary_s
@standalone_ptr = true
res = super
@standalone_ptr = false
res
end
|
#unset_top_level_ptr ⇒ Object
912
913
914
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 912
def unset_top_level_ptr
@top_level_ptr = false
end
|