From 793b2e87956a04eb639fa202c7478f0dccde03c9 Mon Sep 17 00:00:00 2001 From: akira Date: Thu, 13 May 2004 07:02:18 +0000 Subject: * lib/net/telnet.rb (Net::Telnet::login): "options" can specify regexps for login prompt and/or password prompt. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/net/telnet.rb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'lib/net/telnet.rb') diff --git a/lib/net/telnet.rb b/lib/net/telnet.rb index afdfc33df8..05691de0f7 100644 --- a/lib/net/telnet.rb +++ b/lib/net/telnet.rb @@ -704,27 +704,31 @@ module Net # the host should not echo). If a block is passed in, this received # data is also yielded to the block as it is received. def login(options, password = nil) # :yield: recvdata + login_prompt = /[Ll]ogin[: ]*\z/n + password_prompt = /Password[: ]*\z/n if options.kind_of?(Hash) username = options["Name"] password = options["Password"] + login_prompt = options["LoginPrompt"] if options["LoginPrompt"] + password_prompt = options["PasswordPrompt"] if options["PasswordPrompt"] else username = options end if block_given? - line = waitfor(/[Ll]ogin[: ]*\z/n){|c| yield c } + line = waitfor(login_prompt){|c| yield c } if password line += cmd({"String" => username, - "Match" => /Password[: ]*\z/n}){|c| yield c } + "Match" => password_prompt}){|c| yield c } line += cmd(password){|c| yield c } else line += cmd(username){|c| yield c } end else - line = waitfor(/[Ll]ogin[: ]*\z/n) + line = waitfor(login_prompt) if password line += cmd({"String" => username, - "Match" => /Password[: ]*\z/n}) + "Match" => password_prompt}) line += cmd(password) else line += cmd(username) -- cgit v1.2.3