5
私は素晴らしいツイスト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()
、私はセッションのコンストラクタやプロトコルのいずれにも追加の引数を渡すことができる に見えることはできません。 私は既にオプション名をglobalにしようとしましたが、プロトコルコンテキスト/スコープでは表示されません。
Btw。私はプロトコルクラスを自分のファイルに移してメインファイルにインポートしました。
サンプルとポインタのおかげで、それは良い出発点でした。残念ながら、プロトコルはExampleSessionで作成されますが、これはprotocol.session.conn.transport.factory.quoteでアクセスできます。 – Fabian
openShellコールでは、次に、serverProtocol = ServerProtocol(CommandRecvLine、self、quote)を介してCommandRecvLineに引用を転送することができます。 – Fabian