0

我一直在查看 pure-ftpd-1.0.42 源代码:

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

试图找到它何时触发:

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

即文件上传后何时运行uploadscript。

如果您查看方法是文件如何开始上传旅程src/ftp_parser.cdostor然后到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 回答