青山です。

Wed, Mar 17, 1999 at 04:16:10PM +0900 において
WATANABE Hirofumi さん曰く:

> telnet.rb って便利なんだけど firewall があったりすると悲しい
> ですよね.
略
> ひょっとして telnet.rb に options['Proxy'] かなにかを追加し
> たほうがいいのかな?

ああ、なるほど。HD が飛んでしまった後で Net::Telnet を見ていなかったの
で不確かですが、ファイルハンドルを渡せたというのがそれの対応策かもしれ
ませんね。Ruby でいくと Socket を渡せるようにして、こんな感じでしょうか。

def fw_telnet(host)
  ENV['TELNET_GATEWAY'] or raise "please setenv TELNET_GATEWAY."
  fw = Telnet.new('Host'=>ENV['TELNET_GATEWAY'])
  fw.waitfor(/>\Z/){|c| print c }
  fw.print "connect #{host}"
  fw
end

nif = Telnet.new('Proxy'=>fw_telnet('r2.nifty.ne.jp'))

で、nif.rb のような telnet.rb を利用するライブラリも 'Proxy' を受け付
けるようにすれば、

nif = Nifty.new({'id'       => 'ID',
                 'password' => 'PASSWORD',
                 'log'      => Time.now.strftime("%Y%m%d.log"),
                 'Proxy'    => fw_telnet('r2.nifty.ne.jp')})

という感じですか。

'Proxy' は結構イメージしやすくていいように思いますが、'Socket' とかで
もいいような感じもしますけど、どちらが良さそうでしょう?  あるいは
'IO' とか?


-- 
青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>