telnetlib.read_until() を呼び出すアプリケーションがあります。ほとんどの場合、問題なく動作します。ただし、アプリの telnet 接続が失敗した場合、正確な原因をデバッグするのは困難です。それは私のスクリプトですか、それともサーバー接続が危険ですか? (これは開発ラボなので、危険なサーバーがたくさんあります)。
私がやりたいことは、アプリが telnetlib.read_until() を呼び出す前に、クックされたキューに配置されたデータを簡単にスヌープできるようにすることです (それにより、アプリの操作への影響を回避できることを願っています)。
telnetlib.py をいじってみると、'buf[0]' がちょうど私が欲しいデータであることがわかりました: スヌーピング 'cookedq' によって引き起こされる繰り返しのない新しく追加されたデータです。telnetlib.process_rawq() の終わりの直前に行を挿入して、サーバーから受信した処理済みデータを出力できます。
telnetlib.process_rawq ...
...
self.cookedq = self.cookedq + buf[0]
print("Dbg: Cooked Queue contents = %r" % buf[0] <= my added debug line
self.sbdataq = self.sbdataq + buf[1]
これはうまくいきます。アプリの操作にまったく影響を与えることなく、アプリが受け取ったデータをほぼ正確に見ることができます。
質問は次のとおりです。これを達成するためのより洗練された方法はありますか? このアプローチは基本的で機能しますが、Python のライブラリをアップグレードするたびに、この変更を忘れずにやり直す必要があります。
buf は telnet.process_rawq() の内部にあるため、単純に telnet.process_rawq() を拡張する試みは失敗しました。
telnetlib.py を変更せずに、この telnetlib.process_rawq() 内部値をスヌープする (より Pythonic な) 方法はありますか?
ありがとう。