From 3c103830d71d539f730fdcfbf71f13e5c876a0c2 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/branches/ruby_1_8@6305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ lib/net/telnet.rb | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index f77c08c646..79b76e5f83 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu May 13 15:47:30 2004 akira yamada + + * lib/net/telnet.rb (Net::Telnet::login): "options" can specify + regexps for login prompt and/or password prompt. + Thu May 13 14:23:45 2004 WATANABE Hirofumi * hash.c (delete_if_i): use st_delete_safe() (via diff --git a/lib/net/telnet.rb b/lib/net/telnet.rb index 1df488ca0b..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(/login[: ]*\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(/login[: ]*\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