On 6/27/05, Wayne Davison <[EMAIL PROTECTED]> wrote: > On Mon, Jun 27, 2005 at 09:22:25AM -0700, Wayne Davison wrote: > > so you need to be sure to check for this and print some other > > value ("N/A") for entries with a NULL pointer. > > Actually, the proper fix is to check the mode using S_ISREG() and only > ever dereference "u.sum" for a regular file (since other item types use > that union for other purposes).
Okay, I've got it now. Thanks for your help. Here's what I ended up with in case anyone's interested. --- rsync-2.6.5-orig/log.c 2005-04-14 10:08:10.000000000 -0600 +++ rsync-2.6.5/log.c 2005-06-27 10:35:51.511736804 -0600 @@ -371,7 +371,7 @@ char buf[MAXPATHLEN+1024], buf2[MAXPATHLEN], fmt[32]; char *p, *s, *n; size_t len, total; - int64 b; + int64 b, j; *fmt = '%'; @@ -483,6 +483,17 @@ snprintf(buf2, sizeof buf2, fmt, (double)b); n = buf2; break; + case 's': + if (S_ISREG(file->mode)) { + strlcat(fmt, "02x", sizeof fmt); + for (j = 0; j < SUM_LENGTH; j++ ) + snprintf(buf2 + j * 2, sizeof buf2 - j * 2, fmt, (uchar) file->u.sum[j]); + } else { + strlcat(fmt, "s", sizeof fmt); + snprintf(buf2, sizeof buf2, fmt, "N/A"); + } + n = buf2; + break; case 'i': if (iflags & ITEM_DELETED) { n = "*deleting"; --- rsync-2.6.5-orig/rsyncd.conf.yo 2005-06-01 21:54:45.000000000 -0600 +++ rsync-2.6.5/rsyncd.conf.yo 2005-06-27 10:52:51.754131476 -0600 @@ -406,6 +406,7 @@ it() %b for the number of bytes actually transferred it() %c when sending files this gives the number of checksum bytes received for this file + it() %s for the checksum of a file it() %i an itemized list of what is being updated )) -- Andrew Shewmaker -- To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html