# File lib/Dnsruby/SingleResolver.rb, line 56
    def initialize(*args)
      arg=args[0]
      @single_res_mutex = Mutex.new
      @packet_timeout = Resolver::DefaultPacketTimeout
      @query_timeout = @packet_timeout
      @port = Resolver::DefaultPort
      @udp_size = Resolver::DefaultUDPSize
      @dnssec = Resolver::DefaultDnssec
      @use_tcp = false
      @no_tcp = false
      @tsig = nil
      @ignore_truncation = false
      @src_address        = nil
      @src_port        = [0]
      @recurse = true
      @persistent_udp = false
      @persistent_tcp = false
      @retry_times = 1
      @retry_delay = 0
      @single_resolvers = []
      @configured = false
      @do_caching = true
      @config = Config.new

      if (arg==nil)
        # Get default config
        @config = Config.new
        @config.get_ready
        @server = @config.nameserver[0]
      elsif (arg.kind_of?String)
        @config.get_ready
        @configured= true
        @config.nameserver=[arg]
        @server = @config.nameserver[0]
        #        @server=arg
      elsif (arg.kind_of?Name)
        @config.get_ready
        @configured= true
        @config.nameserver=arg
        @server = @config.nameserver[0]
        #        @server=arg
      elsif (arg.kind_of?Hash)
        arg.keys.each do |attr|
          if (attr == :server)
            @config.get_ready
            @configured= true
            @config.nameserver=[arg[attr]]
            @server = @config.nameserver[0]

          else
            begin
              send(attr.to_s+"=", arg[attr])
            rescue Exception
              Dnsruby.log.error{"Argument #{attr} not valid\n"}
            end
          end
        end
      end

      isr = PacketSender.new({:server=>@server, :dnssec=>@dnssec,
          :use_tcp=>@use_tcp, :no_tcp=>@no_tcp, :packet_timeout=>@packet_timeout,
          :tsig => @tsig, :ignore_truncation=>@ignore_truncation,
          :src_address=>@src_address, :src_port=>@src_port,
          :do_caching=>@do_caching,
          :recurse=>@recurse, :udp_size=>@udp_size})

      @single_resolvers = [isr]

      #      ResolverRegister::register_single_resolver(self)
    end