うまく機能するねじれた sshsimpleserver.py に基づいて sshdaemon を作成しました。
http://twistedmatrix.com/documents/current/conch/examples/
しかし、コマンドライン引数を EchoProtocol に渡し、引数に応じて動作を変更したいと考えています。これどうやってするの?この場合、「options.test」パラメーターをプロトコルに渡したいと思います。
[...]
if __name__ == '__main__':
parser = optparse.OptionParser()
parser.add_option('-p', '--port', action = 'store', type = 'int',
dest = 'port', default = 1235, help = 'server port')
parser.add_option('-t', '--test', action = 'store', type =
'string', dest = 'test', default = '123')
(options, args) = parser.parse_args()
components.registerAdapter(ExampleSession, ExampleAvatar,
session.ISession)
[...]
reactor.listenTCP(options.port, ExampleFactory())
reactor.run()
セッション インスタンスはファクトリによって作成されるため、追加の引数をセッション コンストラクターにもプロトコルにも渡すことができないようです。オプション名をグローバルにしようとしましたが、プロトコル コンテキスト/スコープでは表示されません。
ところで。プロトコル クラスを独自のファイルに移動し、メイン ファイルにインポートしました。