X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=netatalk.git;a=blobdiff_plain;f=etc%2Fafpd%2Fvolume.c;h=7bdff75dff53ecf87007a9b001a45c87bae944de;hp=4efa659f02ee02eccb4f4f4fe53216ca606e5852;hb=5eb3b5ac51c8221009041928a5a08c101d2be743;hpb=22a32e7449133013789f3fc7ff6b32772b0c76cc diff --git a/etc/afpd/volume.c b/etc/afpd/volume.c index 4efa659f..7bdff75d 100644 --- a/etc/afpd/volume.c +++ b/etc/afpd/volume.c @@ -369,7 +369,7 @@ static int getvolparams(const AFPObj *obj, uint16_t bitmap, struct vol *vol, str } /* prior 2.1 only VOLPBIT_ATTR_RO is defined */ if (obj->afp_version > 20) { - if (vol->v_cdb != NULL && (vol->v_cdb->flags & CNID_FLAG_PERSISTENT)) + if (vol->v_cdb != NULL && (vol->v_cdb->cnid_db_flags & CNID_FLAG_PERSISTENT)) ashort |= VOLPBIT_ATTR_FILEID; ashort |= VOLPBIT_ATTR_CATSEARCH; @@ -532,7 +532,7 @@ int afp_getsrvrparms(AFPObj *obj, char *ibuf _U_, size_t ibuflen _U_, char *rbuf size_t len; uint32_t aint; - load_volumes(obj); + load_volumes(obj, lv_none); data = rbuf + 5; for ( vcnt = 0, volume = getvolumes(); volume && vcnt < 255; volume = volume->v_next ) { @@ -639,14 +639,7 @@ static int volume_openDB(const AFPObj *obj, struct vol *volume) flags |= CNID_FLAG_NODEV; } - LOG(log_debug, logtype_afpd, "CNID server: %s:%s", volume->v_cnidserver, volume->v_cnidport); - - volume->v_cdb = cnid_open(volume->v_path, - volume->v_umask, - volume->v_cnidscheme, - flags, - volume->v_cnidserver, - volume->v_cnidport); + volume->v_cdb = cnid_open(volume, volume->v_cnidscheme, flags); if ( ! volume->v_cdb && ! (flags & CNID_FLAG_MEMORY)) { /* The first attempt failed and it wasn't yet an attempt to open in-memory */ @@ -655,7 +648,7 @@ static int volume_openDB(const AFPObj *obj, struct vol *volume) LOG(log_error, logtype_afpd, "Reopen volume %s using in memory temporary CNID DB.", volume->v_path); flags |= CNID_FLAG_MEMORY; - volume->v_cdb = cnid_open (volume->v_path, volume->v_umask, "tdb", flags, NULL, NULL); + volume->v_cdb = cnid_open(volume, "tdb", flags); #ifdef SERVERTEXT /* kill ourself with SIGUSR2 aka msg pending */ if (volume->v_cdb) { @@ -742,7 +735,7 @@ int afp_openvol(AFPObj *obj, char *ibuf, size_t ibuflen _U_, char *rbuf, size_t if ((len + 1) & 1) /* pad to an even boundary */ ibuf++; - load_volumes(obj); + load_volumes(obj, lv_none); for ( volume = getvolumes(); volume; volume = volume->v_next ) { if ( strcasecmp_w( (ucs2_t*) volname, volume->v_name ) == 0 ) { @@ -853,7 +846,7 @@ int afp_openvol(AFPObj *obj, char *ibuf, size_t ibuflen _U_, char *rbuf, size_t * fixing the trash at DID 17. * FIXME (RL): should it be done inside a CNID backend ? (always returning Trash DID when asked) ? */ - if ((volume->v_cdb->flags & CNID_FLAG_PERSISTENT)) { + if ((volume->v_cdb->cnid_db_flags & CNID_FLAG_PERSISTENT)) { /* FIXME find db time stamp */ if (cnid_getstamp(volume->v_cdb, volume->v_stamp, sizeof(volume->v_stamp)) < 0) {