# File lib/mechanize/http/agent.rb, line 1093
  def set_proxy addr, port, user = nil, pass = nil
    unless addr and port then
      @http.proxy = nil

      return
    end

    unless Integer === port then
      begin
        port = Socket.getservbyname port
      rescue SocketError
        begin
          port = Integer port
        rescue ArgumentError
          raise ArgumentError, "invalid value for port: #{port.inspect}"
        end
      end
    end

    proxy_uri = URI "http://#{addr}"
    proxy_uri.port = port
    proxy_uri.user     = user if user
    proxy_uri.password = pass if pass

    @http.proxy = proxy_uri
  end