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
882
883
884
885
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 882
def self.extended(target)
target.class.extend(TopLevelClassMethods)
target.class.reset_pos
end
|
Instance Method Details
#do_write(io, is_deferred: false) ⇒ Object
892
893
894
895
896
897
898
899
900
901
902
903
904
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 892
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
887
888
889
890
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 887
def initialize_instance
super
@standalone_ptr = false
end
|
#is_top_level_ptr ⇒ Object
922
923
924
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 922
def is_top_level_ptr
!!@top_level_ptr
end
|
#num_bytes ⇒ Object
926
927
928
929
930
931
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 926
def num_bytes
@standalone_ptr = true
res = super
@standalone_ptr = false
res
end
|
#set_top_level_ptr ⇒ Object
913
914
915
916
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 913
def set_top_level_ptr
@top_level_ptr = true
end
|
#to_binary_s ⇒ Object
906
907
908
909
910
911
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 906
def to_binary_s
@standalone_ptr = true
res = super
@standalone_ptr = false
res
end
|
#unset_top_level_ptr ⇒ Object
918
919
920
|
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 918
def unset_top_level_ptr
@top_level_ptr = false
end
|