On Tue, Jan 27, 2004 at 12:31:05AM -0800, Wayne Davison wrote: > Some of the debug messages that rsync outputs (when verbose >= 2) can > occur on both sides of the connection. This makes it hard to know which > program is saying what. Some debug messages deal with this by > outputting a "[PID]" string at the start of the message. Unfortunately, > the startup message that tells us which pid is which is only output when > verbose >= 3, so there's a bit of a problem if we use this idiom for > messages such as "expanding file_list ..." and "excluding file ..." > (which get output at verbose >= 2 and can occur on both sides). > > I'd like to propose a change that prefixes dual-sided messages with [s], > [r], or [g] for the sender, receiver, and generator, respectively. This > makes them easier to read, and it works at any verbose level. Here's a > patch. Let me know what you think.
Good idea. I think i was contemplating such a thing a year or so ago but you've actually done something about it. The only thing i'm not sure about is using three characters to present a one character abreviation. > > ..wayne.. > --- exclude.c 20 Jan 2004 04:53:59 -0000 1.58 > +++ exclude.c 27 Jan 2004 07:36:35 -0000 > @@ -27,6 +27,7 @@ > #include "rsync.h" > > extern int verbose; > +extern char *who_am_i; > > struct exclude_struct **exclude_list; > struct exclude_struct **local_exclude_list; > @@ -102,7 +103,7 @@ void free_exclude_list(struct exclude_st > struct exclude_struct **list = *listp; > > if (verbose > 2) > - rprintf(FINFO,"clearing exclude list\n"); > + rprintf(FINFO, "[%c] clearing exclude list\n", *who_am_i); > > if (!list) > return; > @@ -203,12 +204,14 @@ static void report_exclude_result(char c > * then it is stripped out by make_exclude. So as a special > * case we add it back in here. */ > > - if (verbose >= 2) > - rprintf(FINFO, "%s %s %s because of pattern %s%s\n", > + if (verbose >= 2) { > + rprintf(FINFO, "[%c] %s %s %s because of pattern %s%s\n", > + *who_am_i, > ent->include ? "including" : "excluding", > name_is_dir ? "directory" : "file", > name, ent->pattern, > ent->directory ? "/" : ""); > + } > } > > > @@ -250,7 +253,8 @@ void add_exclude(struct exclude_struct * > out_of_memory("add_exclude"); > > if (verbose > 2) { > - rprintf(FINFO,"add_exclude(%s,%s)\n",pattern, > + rprintf(FINFO, "[%c] add_exclude(%s,%s)\n", > + *who_am_i, pattern, > include ? "include" : "exclude"); > } > > --- flist.c 27 Jan 2004 01:47:41 -0000 1.174 > +++ flist.c 27 Jan 2004 07:36:30 -0000 > @@ -46,6 +46,7 @@ extern int recurse; > extern char curr_dir[MAXPATHLEN]; > extern char *files_from; > extern int filesfrom_fd; > +extern char *who_am_i; > > extern int one_file_system; > extern int make_backups; > @@ -342,7 +343,8 @@ static void flist_expand(struct file_lis > } > > if (verbose >= 2) { > - rprintf(FINFO, "expand file_list to %.0f bytes, did%s move\n", > + rprintf(FINFO, "[%c] expand file_list to %.0f bytes, did%s > move\n", > + *who_am_i, > (double)sizeof(flist->files[0]) > * flist->malloced, > (new_ptr == flist->files) ? " not" : ""); > @@ -781,8 +783,10 @@ struct file_struct *make_file(char *fnam > > skip_excludes: > > - if (verbose > 2) > - rprintf(FINFO, "make_file(%s,*,%d)\n", fname, exclude_level); > + if (verbose > 2) { > + rprintf(FINFO, "[%c] make_file(%s,*,%d)\n", > + *who_am_i, fname, exclude_level); > + } > > file = new(struct file_struct); > if (!file) > @@ -1416,8 +1420,8 @@ static void clean_flist(struct file_list > return; > > for (i = 0; i < flist->count; i++) { > - rprintf(FINFO, "[%ld] i=%d %s %s mode=0%o len=%.0f\n", > - (long) getpid(), i, > + rprintf(FINFO, "[%c] i=%d %s %s mode=0%o len=%.0f\n", > + *who_am_i, i, > NS(flist->files[i]->dirname), > NS(flist->files[i]->basename), > (int) flist->files[i]->mode, > --- main.c 27 Jan 2004 08:05:10 -0000 1.185 > +++ main.c 27 Jan 2004 07:59:07 -0000 > @@ -56,6 +56,8 @@ extern char *remote_filesfrom_file; > extern char *rsync_path; > extern char *shell_cmd; > extern struct file_list *batch_flist; > +extern char *who_am_i; > + > > /* there's probably never more than at most 2 outstanding child processes, > * but set it higher just in case. > @@ -198,7 +200,7 @@ static void show_malloc_stats(void) > getpid(), > am_server ? "server " : "", > am_daemon ? "daemon " : "", > - am_sender ? "sender" : "receiver"); > + who_am_i); > rprintf(FINFO, " arena: %10d (bytes from sbrk)\n", mi.arena); > rprintf(FINFO, " ordblks: %10d (chunks not in use)\n", mi.ordblks); > rprintf(FINFO, " smblks: %10d\n", mi.smblks); > @@ -455,6 +457,8 @@ static int do_recv(int f_in,int f_out,st > msleep(20); > } > > + who_am_i = "generator"; > + > close(error_pipe[1]); > if (f_in != f_out) close(f_in); > > @@ -754,6 +758,7 @@ static int start_client(int argc, char * > argc--; > argv++; > } else { > + who_am_i = "sender"; > am_sender = 1; > > /* rsync:// destination uses rsync server over direct socket */ > @@ -817,6 +822,7 @@ static int start_client(int argc, char * > argc--; > } > } else { > + who_am_i = "sender"; > am_sender = 1; > local_server = 1; > shell_path = argv[argc-1]; > --- options.c 23 Jan 2004 09:32:50 -0000 1.127 > +++ options.c 27 Jan 2004 08:00:54 -0000 > @@ -66,6 +66,7 @@ int read_only = 0; > int module_id = -1; > int am_server = 0; > int am_sender = 0; > +char *who_am_i = "receiver"; > char *files_from = NULL; > int filesfrom_fd = -1; > char *remote_filesfrom_file = NULL; > @@ -554,6 +555,7 @@ int parse_arguments(int *argc, const cha > usage(FERROR); > exit_cleanup(RERR_SYNTAX); > } > + who_am_i = "sender"; > am_sender = 1; > break; > > -- > To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync > Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html -- ________________________________________________________________ J.W. Schultz Pegasystems Technologies email address: [EMAIL PROTECTED] Remember Cernan and Schmitt -- To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html