Antonin Kral wrote: > Hello Joey, > > thank you. Could you send me the patch? Attachment, which I have > received has zero length.
Hu? Next try. Regards, Joey -- It's time to close the windows. Please always Cc to me when replying to me on the lists.
diff -u fmirror-0.8.4/fmirror.c fmirror-0.8.4/fmirror.c --- fmirror-0.8.4/fmirror.c +++ fmirror-0.8.4/fmirror.c @@ -1119,7 +1119,7 @@ } dirdone: if (gotodir) { - cmd("CWD %s", ".."); + cmd("CWD %s", gotodir); if (!success()) { LOG(0, failure, ("Could not CWD to '..', aborting")); exit(EXIT_FAILURE); @@ -1622,6 +1622,10 @@ { int err; char dname[2048]; + + if (!strlen(name)) + return 0; + strncpy(dname, name, sizeof(dname)); dname[sizeof(dname) - 1] = 0; if (verbosity < 2) { @@ -2335,7 +2339,7 @@ free(p.linkname); free(p.filename); } else { - if (line[len] == ':' && strcmp("./:", line) && strcmp(".:", line)) { + if (line[len] == ':' && strcmp("./:", line) && strcmp(".:", line) && strcmp(":", line)) { /* entering new directory, delete all files that are still * in the hash-table */ int n; @@ -2400,6 +2404,7 @@ struct sockaddr_in sad; FILE *stream; char line[PATH_MAX + 80]; + char *lineptr; char prefix[PATH_MAX] = "."; int fd; @@ -2479,7 +2484,10 @@ } break; } - parse_ls_entry(prefix, line); /* sometimes changes prefix */ + lineptr = line; + if (*lineptr == '/') + lineptr++; + parse_ls_entry(prefix, lineptr); /* sometimes changes prefix */ } parse_ls_entry(prefix, 0); /* finish up */ @@ -3085,8 +3093,12 @@ if (strcmp(".", pre) == 0) { sprintf(buffer, "%s", buf); } else { + if (pre[0] == '\0') + sprintf(buffer, "%s", buf); + else { sprintf(buffer, "%s/%s", pre, buf); fonly_pos = strlen(pre) + 1; + } } if (S_ISLNK(p->perm)) { /* There doesn't seem to be a sane way to do this if the diff -u fmirror-0.8.4/debian/changelog fmirror-0.8.4/debian/changelog --- fmirror-0.8.4/debian/changelog +++ fmirror-0.8.4/debian/changelog @@ -1,3 +1,12 @@ +fmirror (2:0.8.4-13.0.1) unstable; urgency=low + + * Added a special treatment for mirroring the / directory so that + fmirror (a) is able to guess the time difference and (b) does not try + to overwrite the local / directory instead of the specified local + mirror directory. [fmirror.c] + + -- Martin Schulze <[EMAIL PROTECTED]> Tue, 10 Jul 2007 20:12:43 +0200 + fmirror (2:0.8.4-13) unstable; urgency=low * convert from debmake to debhelper