if (local_server) {
if (read_batch)
create_flist_from_batch(); /* sets batch_flist */
- ret = local_child(argc, args, f_in, f_out);
+ ret = local_child(argc, args, f_in, f_out, child_main);
} else {
ret = piped_child(args,f_in,f_out);
}
}
+void child_main(int argc, char *argv[])
+{
+ start_server(STDIN_FILENO, STDOUT_FILENO, argc, argv);
+}
+
+
void start_server(int f_in, int f_out, int argc, char *argv[])
{
extern int cvs_exclude;
return pid;
}
-pid_t local_child(int argc, char **argv,int *f_in,int *f_out)
+pid_t local_child(int argc, char **argv,int *f_in,int *f_out,
+ int (*child_main)(int, char **))
{
pid_t pid;
int to_child_pipe[2];
}
if (to_child_pipe[0] != STDIN_FILENO) close(to_child_pipe[0]);
if (from_child_pipe[1] != STDOUT_FILENO) close(from_child_pipe[1]);
- start_server(STDIN_FILENO, STDOUT_FILENO, argc, argv);
+ child_main(argc, argv);
}
if (close(from_child_pipe[1]) < 0 ||
*
* @param dest Target of the symlink in question.
*
- * @src src Top source directory currently applicable. Basically this
+ * @param src Top source directory currently applicable. Basically this
* is the first parameter to rsync in a simple invocation, but it's
- * modified as topsrcname in slightly complex ways.
+ * modified by flist.c in slightly complex ways.
*
* @retval True if unsafe
* @retval False is unsafe