class TurboRex::MSRPC::RPCFinder::Collection

Attributes

client_interfaces[R]
server_interfaces[R]

Public Class Methods

new() click to toggle source
# File lib/turborex/msrpc/rpcfinder.rb, line 72
def initialize
  @server_interfaces = []
  @client_interfaces = []
end

Public Instance Methods

draw_xrefs() click to toggle source
# File lib/turborex/msrpc/rpcfinder.rb, line 85
def draw_xrefs
  @server_interfaces.each do |si|
    ci = find_client_by_server(si)
    next if ci.empty?

    si.xrefs_to << ci
    ci.xrefs_from << si

    si.uniq!
    ci.uniq!
  end

  true
end
find_by_interface_id(id, filter = nil) click to toggle source
# File lib/turborex/msrpc/rpcfinder.rb, line 108
def find_by_interface_id(id, filter = nil)
  case filter
  when nil
    @server_interfaces.select { |i| i.interface_id == id } + \
      @client_interfaces.select { |i| i.interface_id == id }
  when :server
    @server_interfaces.select { |i| i.interface_id == id }
  when :client
    @client_interfaces.select { |i| i.interface_id == id }
  end
end
find_by_midl_switches(*switches) click to toggle source
# File lib/turborex/msrpc/rpcfinder.rb, line 125
def find_by_midl_switches(*switches)
  @server_interfaces.select { |i| i.midl_switches.has_one_of_switches?(switches) } + \
    @client_interfaces.select { |i| i.midl_switches.has_one_of_switches?(switches) }
end
find_by_routine(routine) click to toggle source
# File lib/turborex/msrpc/rpcfinder.rb, line 120
def find_by_routine(routine)
  @server_interfaces.select { |i| i.routines.include?(routine) } + \
    @client_interfaces.select { |i| i.routines.include?(routine) }
end
find_client_by_server(server) click to toggle source
# File lib/turborex/msrpc/rpcfinder.rb, line 104
def find_client_by_server(server)
  @client_interfaces.select { |i| i.interface_id == server.interface_id }
end
find_server_by_client(client) click to toggle source
# File lib/turborex/msrpc/rpcfinder.rb, line 100
def find_server_by_client(client)
  @server_interfaces.select { |i| i.interface_id == client.interface_id }
end
push_client(i) click to toggle source
# File lib/turborex/msrpc/rpcfinder.rb, line 81
def push_client(i)
  @client_interfaces << i
end
push_server(i) click to toggle source
# File lib/turborex/msrpc/rpcfinder.rb, line 77
def push_server(i)
  @server_interfaces << i
end