time_t starttime = 0;
-struct stats stats;
-
+extern struct stats stats;
extern int verbose;
static void show_malloc_stats(void);
}
-void child_main(int argc, char *argv[])
+int child_main(int argc, char *argv[])
{
start_server(STDIN_FILENO, STDOUT_FILENO, argc, argv);
+ return 0;
}
extern int am_sender;
extern char *shell_cmd;
extern int rsync_port;
- extern int whole_file;
- extern int write_batch;
extern int read_batch;
int rc;
* Solaris?) Can we be more portable?
**/
#ifdef MAINTAINER_MODE
+const char *get_panic_action(void)
+{
+ const char *cmd_fmt = getenv("RSYNC_PANIC_ACTION");
+
+ if (cmd_fmt)
+ return cmd_fmt;
+ else
+ return "xterm -display :0 -T Panic -n Panic "
+ "-e gdb /proc/%d/exe %d";
+}
+
+
static RETSIGTYPE rsync_panic_handler(int UNUSED(whatsig))
{
char cmd_buf[300];
int ret;
- sprintf(cmd_buf,
- "xterm -display :0 -T Panic -n Panic "
- "-e gdb /proc/%d/exe %d",
+
+ sprintf(cmd_buf, get_panic_action(),
getpid(), getpid());
/* Unless we failed to execute gdb, we allow the process to