def login
      raise SocketError, "Socket must be opened before logging in" if !@socket or @socket.closed?
      
      xml = new_epp_request
      
      xml.root << command = Node.new("command")
      command << login = Node.new("login")
      
      login << Node.new("clID", tag)
      login << Node.new("pw", password)
      
      login << options = Node.new("options")
      
      options << Node.new("version", version)
      options << Node.new("lang", lang)
      
      login << services = Node.new("svcs")
      
      services << Node.new("objURI", "urn:ietf:params:xml:ns:domain-1.0")
      services << Node.new("objURI", "urn:ietf:params:xml:ns:contact-1.0")
      services << Node.new("objURI", "urn:ietf:params:xml:ns:host-1.0")
      
      services << extensions_container = Node.new("svcExtension") unless extensions.empty?
      
      for uri in extensions
        extensions_container << Node.new("extURI", uri)
      end
      
      command << Node.new("clTRID", UUIDTools::UUID.timestamp_create.to_s)

      response = Hpricot::XML(send_request(xml.to_s))

      handle_response(response)
    end
def login
      raise SocketError, "Socket must be opened before logging in" if !@socket or @socket.closed?
      
      xml = new_epp_request
      
      xml.root << command = Node.new("command")
      command << login = Node.new("login")
      
      login << Node.new("clID", tag)
      login << Node.new("pw", password)
      
      login << options = Node.new("options")
      
      options << Node.new("version", version)
      options << Node.new("lang", lang)
      
      login << services = Node.new("svcs")
      
      services << Node.new("objURI", "urn:ietf:params:xml:ns:domain-1.0")
      services << Node.new("objURI", "urn:ietf:params:xml:ns:contact-1.0")
      services << Node.new("objURI", "urn:ietf:params:xml:ns:host-1.0")
      
      services << extensions_container = Node.new("svcExtension") unless extensions.empty?
      
      for uri in extensions
        extensions_container << Node.new("extURI", uri)
      end
      
      command << Node.new("clTRID", UUIDTools::UUID.timestamp_create.to_s)

      response = Hpricot::XML(send_request(xml.to_s))

      handle_response(response)
    end
Sends a standard login request to the EPP server.