c - pure-ftpd 在哪里调用它的上传脚本?

标签 c ftp ftp-server pureftpd

我一直在查看 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.cdostor方法就是文件开始上传过程的方式。然后它转到ul_send,然后ul_handle_data,但我在这一点上迷路了。我从来没有看到它说,好的,该文件现已上传,是时候调用 uploadscript 了。有人可以告诉我这条线吗?

最佳答案

pureftpd_start() 中的 src/ftpd.c 函数中,pure-ftpd 启动并解析其所有命令行选项。如果配置的话,它还会打开一条通往 pure-uploadscript 的管道; herefork() 不是在每次上传时调用上传脚本(并且每次上传都会产生 exec()pure-ftpd 开销),而是让上传脚本进程单独运行,并通过管道向其发送上传的文件路径。

了解了这一点,然后,我们使用 upload_pipe_push() 函数查找该管道的写入位置。有趣的是,该函数被 displayrate() 函数调用 here ,该函数由 dostor() 文件中的 doretr()src/ftpd.c 调用。

希望这有帮助!

关于c - pure-ftpd 在哪里调用它的上传脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36367131/

相关文章:

c# - 解析 FtpWebRequest ListDirectoryDe​​tails 行

ftp - FTP 错误(503 错误的命令序列)是客户端问题还是服务器问题的结果

我们可以在其他头文件中执行线程吗?

c - 在C中为数组动态分配内存

java - Akka + Camel + FTP2 + localWorkingDirectory 无法可靠工作

java - 如何使用 Java URLConnection 进行 FTP 删除?

macports - 500 OOPS : vsftpd: not configured for standalone, 必须从 inetd 启动

c - 两点之间的最短距离。蛮力算法

c - 需要 C 中指针和取消引用运算符的描述