Hi I want to use pre-xfer exec function in rsync for permition checking. In my Linux boxes, it successed. But today, I tried to put them in my FreeBSD box, it failed. I've checked the log, but found the pre-xfer exec returns always be -1, which means waitpid failed to get the return status. After doing a little ugly patch for the wait_process function as follow, pre-xfer works again.
--- main.c Thu Feb 1 22:42:23 2007 +++ main.c.orig Sat Oct 14 07:46:32 2006 @@ -103,10 +103,7 @@ * remember_children(), we succeed instead of returning an error. */ pid_t wait_process(pid_t pid, int *status_ptr, int flags) { - pid_t waited_pid; - do { - waited_pid = waitpid(pid, status_ptr, flags); - } while (errno == EINTR); + pid_t waited_pid = waitpid(pid, status_ptr, flags); if (waited_pid == -1 && errno == ECHILD) { /* Status of requested child no longer available: check to Another method that fixes the problem is to set SA_RESTART to all the signal handle functions. But I'm not sure if the above methods will bring other problems to the program. So I'm asking help here. Does anybody has a better solution ? -- forgetful tan <[EMAIL PROTECTED]> -- To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html