X-Git-Url: https://arthur.barton.de/gitweb/?a=blobdiff_plain;f=etc%2Fcnid_dbd%2Fcmd_dbd_scanvol.c;fp=etc%2Fcnid_dbd%2Fcmd_dbd_scanvol.c;h=8fb09624bd1850564f6eb3384efbad6d79c6e65c;hb=6d60f95c388da5f8f901d67e0018cf4896e6c6dc;hp=daa13e413e441622191606f31ae6085f8ce0ed19;hpb=af898e14ed8928adb6a5bedcd21d4e2731860eaa;p=netatalk.git diff --git a/etc/cnid_dbd/cmd_dbd_scanvol.c b/etc/cnid_dbd/cmd_dbd_scanvol.c index daa13e41..8fb09624 100644 --- a/etc/cnid_dbd/cmd_dbd_scanvol.c +++ b/etc/cnid_dbd/cmd_dbd_scanvol.c @@ -34,6 +34,7 @@ #include #include #include +#include #include "cmd_dbd.h" #include "dbif.h" @@ -292,17 +293,16 @@ static const char *check_special_dirs(const char *name) */ static int check_adfile(const char *fname, const struct stat *st) { - int ret, adflags; + int ret; + int adflags = ADFLAGS_HF; struct adouble ad; - char *adname; + const char *adname; if (dbd_flags & DBD_FLAGS_CLEANUP) return 0; if (S_ISREG(st->st_mode)) - adflags = 0; - else - adflags = ADFLAGS_DIR; + adflags |= ADFLAGS_DIR; adname = myvolinfo->ad_path(fname, adflags); @@ -322,7 +322,7 @@ static int check_adfile(const char *fname, const struct stat *st) /* Create ad file */ ad_init(&ad, myvolinfo->v_adouble, myvolinfo->v_ad_options); - if ((ret = ad_open_metadata( fname, adflags, O_CREAT, &ad)) != 0) { + if ((ret = ad_open(&ad, fname, adflags, O_CREAT | O_RDWR, 0666)) != 0) { dbd_log( LOGSTD, "Error creating AppleDouble file '%s/%s': %s", cwdbuf, adname, strerror(errno)); @@ -341,7 +341,7 @@ static int check_adfile(const char *fname, const struct stat *st) #endif } else { ad_init(&ad, myvolinfo->v_adouble, myvolinfo->v_ad_options); - if (ad_open_metadata( fname, adflags, O_RDONLY, &ad) != 0) { + if (ad_open(&ad, fname, adflags, O_RDONLY) != 0) { dbd_log( LOGSTD, "Error opening AppleDouble file for '%s/%s'", cwdbuf, fname); return -1; } @@ -494,7 +494,7 @@ static int check_addir(int volroot) /* Create ad dir and set name */ ad_init(&ad, myvolinfo->v_adouble, myvolinfo->v_ad_options); - if (ad_open_metadata( ".", ADFLAGS_DIR, O_CREAT, &ad) != 0) { + if (ad_open(&ad, ".", ADFLAGS_HF | ADFLAGS_DIR, O_CREAT | O_RDWR, 0777) != 0) { dbd_log( LOGSTD, "Error creating AppleDouble dir in %s: %s", cwdbuf, strerror(errno)); return -1; } @@ -690,7 +690,7 @@ static cnid_t check_cnid(const char *name, cnid_t did, struct stat *st, int adfi ad_cnid = 0; if ( (myvolinfo->v_flags & AFPVOL_CACHE) && ADFILE_OK) { ad_init(&ad, myvolinfo->v_adouble, myvolinfo->v_ad_options); - if (ad_open_metadata( name, adflags, O_RDWR, &ad) != 0) { + if (ad_open(&ad, name, adflags, O_RDWR) != 0) { if (dbd_flags & DBD_FLAGS_CLEANUP) return CNID_INVALID; @@ -791,7 +791,7 @@ static cnid_t check_cnid(const char *name, cnid_t did, struct stat *st, int adfi dbd_log(LOGSTD, "Writing CNID data for '%s/%s' to AppleDouble file", cwdbuf, name, ntohl(db_cnid)); ad_init(&ad, myvolinfo->v_adouble, myvolinfo->v_ad_options); - if (ad_open_metadata( name, adflags, O_RDWR, &ad) != 0) { + if (ad_open(&ad, name, adflags, O_RDWR) != 0) { dbd_log(LOGSTD, "Error opening AppleDouble file for '%s/%s': %s", cwdbuf, name, strerror(errno)); return CNID_INVALID; @@ -831,7 +831,7 @@ static cnid_t check_cnid(const char *name, cnid_t did, struct stat *st, int adfi dbd_log(LOGSTD, "Writing CNID data for '%s/%s' to AppleDouble file", cwdbuf, name, ntohl(db_cnid)); ad_init(&ad, myvolinfo->v_adouble, myvolinfo->v_ad_options); - if (ad_open_metadata( name, adflags, O_RDWR, &ad) != 0) { + if (ad_open(&ad, name, adflags, O_RDWR) != 0) { dbd_log(LOGSTD, "Error opening AppleDouble file for '%s/%s': %s", cwdbuf, name, strerror(errno)); return CNID_INVALID;