はじめまして。有馬と申します。

poppassd という パスワード変更用デーモンと会話するものを ruby で書いてみました。
Win95 で作成しているのですが、getc が改行まで待ちになっているようでパスワードが
丸見えというなさけない状態です。これはどのあたりが問題なのでしょうか?
使用している ruby は 1.1b8 です。

ちなみに以下のものは、gets で書いたものです。

#!/usr/local/bin/ruby
#
# ex.1) ruby passwd.rb 
# ex.2) ruby passwd.rb hostname
# ex.3) ruby passwd.rb hostname servicename
#

require "socket"

enter_username = "Enter User Name      :"
enter_old      = "Enter Old Password   :"
enter_new      = "Enter New Password   :"
reenter_new    = "Reenter New Password :"
wrong_password = "New Password is wrong."
success        = "Password is changed."

host    = if ARGV.length >= 1; ARGV.shift; else "poppassd"; end
service = if ARGV.length >= 1; ARGV.shift; else 106; end
print "Trying ", host,":", service, " ... ", "\n"
STDOUT.flush

s = TCPsocket.open(host, service)
begin
	print enter_username
	username = gets
	print enter_old
	oldpass = gets
	print enter_new
	newpass = gets
	raise(wrong_password) if newpass == oldpass
	print reenter_new
	raise(wrong_password) if newpass != gets

	u = "user " + username
	p = "pass " + oldpass
	n = "newpass " + newpass
	{u, p, n, ""}.each do |t|
		s.write(t)
		st = s.readline
		break if not st =~ /.*200.*/
	end

	print success, "\n"
rescue
	print $!, "\n"
ensure
	s.close
	print("bye.")
end

--
 有馬 康弘 <fit0298 / fitec.co.jp>