X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=bin%2Fad%2Fad_mv.c;h=7dab6c6fc35102cb7118414e0e13a352deb61b7a;hb=7da5be70fe636491c5cb45a7d1cd9d2ada48ef1e;hp=342f22211d04e662ef9022601ef6df101a3bf764;hpb=55c0d6d753dc022689616dedf38523e8388d4fd2;p=netatalk.git diff --git a/bin/ad/ad_mv.c b/bin/ad/ad_mv.c index 342f2221..7dab6c6f 100644 --- a/bin/ad/ad_mv.c +++ b/bin/ad/ad_mv.c @@ -186,7 +186,7 @@ int ad_mv(int argc, char *argv[]) set_signal(); cnid_init(); if (openvol(argv[argc - 1], &dvolume) != 0) { - SLOG("Error opening CNID database for %s: ", argv[argc - 1]); + SLOG("Error opening CNID database for source \"%s\": ", argv[argc - 1]); return 1; } @@ -198,7 +198,7 @@ int ad_mv(int argc, char *argv[]) if (argc > 2) usage_mv(); if (openvol(argv[0], &svolume) != 0) { - SLOG("Error opening CNID database for %s: ", argv[0]); + SLOG("Error opening CNID database for destination \"%s\": ", argv[0]); return 1; } rval = do_move(argv[0], argv[1]); @@ -235,11 +235,8 @@ int ad_mv(int argc, char *argv[]) rval = 1; } else { memmove(endp, p, (size_t)len + 1); - if (openvol(*argv, &svolume) != 0) { - SLOG("Error opening CNID database for %s: ", argv[0]); - rval = 1; - goto exit; - } + openvol(*argv, &svolume); + if (do_move(*argv, path)) rval = 1; closevol(&svolume); @@ -376,14 +373,14 @@ static int do_move(const char *from, const char *to) free(p); struct adouble ad; - ad_init(&ad, dvolume.volinfo.v_adouble, dvolume.volinfo.v_ad_options); - if (ad_open_metadata(to, S_ISDIR(sb.st_mode) ? ADFLAGS_DIR : 0, O_RDWR, &ad) != 0) { + ad_init_old(&ad, dvolume.volinfo.v_adouble, dvolume.volinfo.v_ad_options); + if (ad_open(&ad, to, S_ISDIR(sb.st_mode) ? (ADFLAGS_DIR | ADFLAGS_HF | ADFLAGS_RDWR) : ADFLAGS_HF | ADFLAGS_RDWR) != 0) { SLOG("Error opening adouble for: %s", to); return 1; } ad_setid(&ad, sb.st_dev, sb.st_ino, cnid, newdid, dvolume.db_stamp); ad_flush(&ad); - ad_close_metadata(&ad); + ad_close(&ad, ADFLAGS_HF); if (vflg) printf("%s -> %s\n", from, to);