Parent

Class/Module Index [+]

Quicksearch

Rex::MIME::Header

Attributes

headers[RW]

Public Class Methods

new(data='') click to toggle source
# File lib/rex/mime/header.rb, line 9
def initialize(data='')
        self.headers = []
        parse(data)
end

Public Instance Methods

add(var, val) click to toggle source
# File lib/rex/mime/header.rb, line 56
def add(var, val)
        self.headers << [var, val]
        self.headers[-1]
end
find(idx) click to toggle source
# File lib/rex/mime/header.rb, line 38
def find(idx)
        if (idx.class == ::Fixnum)
                return self.headers[idx]
        else
                self.headers.each do |pair|
                        if (pair[0] == idx.to_s)
                                return pair
                        end
                end
        end
        nil
end
parse(data) click to toggle source
# File lib/rex/mime/header.rb, line 14
def parse(data)
        prev = nil
        data.gsub("\r", '').split("\n").each do |line|

                # Handle header folding
                if (line =~ /^\s+/)
                        # Ignore if there is no previous header
                        next if not prev
                        next if not self.headers[prev]
                        self.headers[prev][1] << line.strip
                        next
                end

                var,val = line.split(':')
                next if not val
                self.headers << [ var.to_s.strip, val.to_s.strip ]
                prev = self.headers.length - 1
        end
end
remove(idx) click to toggle source
# File lib/rex/mime/header.rb, line 61
def remove(idx)
        if (idx.class == ::Fixnum)
                self.headers.delete_at(idx)
        else
                self.headers.each_index do |i|
                        pair = self.headers[i]
                        if (pair[0] == idx.to_s)
                                self.headers.delete_at(i)
                        end
                end
        end
end
set(var, val) click to toggle source
# File lib/rex/mime/header.rb, line 51
def set(var, val)
        hdr = self.find(var) || self.add(var, '')
        hdr[1] = val
end
to_s() click to toggle source
# File lib/rex/mime/header.rb, line 34
def to_s
        self.headers.map{ |pair| "#{pair[0]}: #{pair[1]}\r\n" }.join
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.