Parent

Included Modules

Class/Module Index [+]

Quicksearch

Rex::Struct2::SString

Attributes

default[RW]
pad[RW]
size[R]

Public Class Methods

new(size=nil, default=nil, pad=nil) click to toggle source
# File lib/rex/struct2/s_string.rb, line 15
def initialize(size=nil, default=nil, pad=nil)
        self.size = size
        @default  = default
        @pad      = pad
        reset()
end

Public Instance Methods

from_s(bytes) click to toggle source
# File lib/rex/struct2/s_string.rb, line 52
def from_s(bytes)
        # we don't have enough bytes to satisfy our minimum
        if restraint && restraint.min && bytes.length < restraint.min
                return
        end

        if restraint && restraint.max
                self.value = bytes.slice(0, restraint.max)
        else
                self.value = bytes.dup
        end


        return(self.slength)
end
reset() click to toggle source
# File lib/rex/struct2/s_string.rb, line 31
def reset
        self.value = @default
end
size=(newsize) click to toggle source
# File lib/rex/struct2/s_string.rb, line 22
def size=(newsize)
        if !newsize
                self.restraint = nil
        else
                res = Rex::Struct2::Constant.new(newsize)
                self.restraint = Rex::Struct2::Restraint.new(res, res, false)
        end
end
to_s() click to toggle source
# File lib/rex/struct2/s_string.rb, line 35
def to_s
        string = self.value

        return if !string

        # pad if short
        if restraint && restraint.min && self.pad && restraint.min > string.length
                string += self.pad * (restraint.min - string.length)
        end
        # truncate if long
        if restraint && restraint.max
                string = string.slice(0, restraint.max)
        end

        return string
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.