0

私は pure-ftpd-1.0.42 ソースコードを調べてきました:

https://github.com/jedisct1/pure-ftpd

いつトリガーされるかを見つけようとしています:

https://github.com/jedisct1/pure-ftpd/blob/master/src/pure-uploadscript.c

つまり、ファイルがアップロードされた後、いつアップロードスクリプトを実行しますか。

メソッドを見ると、ファイルがアップロードの旅を開始src/ftp_parser.cするdostor方法です。ul_sendそれからその時まで行くのul_handle_dataですが、ここで迷ってしまいます。「わかりました、このファイルは現在アップロードされています。電話する時間uploadscriptです。誰かラインを見せてくれませんか?

4

1 に答える 1

1

pureftpd_start()関数でsrc/ftpd.cpure-ftpdが起動し、すべてのコマンドライン オプションが解析されます。設定されている場合は、 へのパイプ開きpure-uploadscriptます。ここに。アップロードごとにアップロード スクリプトを呼び出す (およびアップロードごとのオーバーヘッドが発生する) のではなくfork()アップロードexec()スクリプトプロセスを個別に実行し続け、アップロードされたファイル パスをパイプ経由で送信します。pure-ftpd

これを知っているので、関数を使用して、そのパイプが書き込まれている場所を探しupload_pipe_push()ます。興味深いことに、その関数は、とファイル内の両方で呼び出される関数によって呼び出されますdisplayrate()dostor()doretr()src/ftpd.c

お役に立てれば!

于 2016-04-04T17:52:37.673 に答える