of_stat() need be called before calling ad_convert() in order to
have a valid struct stat of the element to be converted.
Fixes bug #486.
Setting the option to true causes afpd to follow symlinks on the
server. symlinks may point outside of the AFP volume, currently
afpd doesn't do any checks for "wide symlinks".
Setting the option to true causes afpd to follow symlinks on the
server. symlinks may point outside of the AFP volume, currently
afpd doesn't do any checks for "wide symlinks".
+* FIX: Automatic AppleDouble conversion to EAs failing for directories.
+ Fixes bug #486.
Changes in 3.0.1
================
Changes in 3.0.1
================
sd.sd_last += len + 1;
continue;
}
sd.sd_last += len + 1;
continue;
}
- memset(&s_path, 0, sizeof(s_path));
- /* conversions on the fly */
- const char *convname;
+ memset(&s_path, 0, sizeof(s_path));
s_path.u_name = sd.sd_last;
s_path.u_name = sd.sd_last;
- if (ad_convert(sd.sd_last, &s_path.st, vol, &convname) == 0 && convname) {
- s_path.u_name = (char *)convname;
- }
-
if (of_stat(vol, &s_path) < 0 ) {
/* so the next time it won't try to stat it again
* another solution would be to invalidate the cache with
if (of_stat(vol, &s_path) < 0 ) {
/* so the next time it won't try to stat it again
* another solution would be to invalidate the cache with
+ /* conversions on the fly */
+ const char *convname;
+ if (ad_convert(sd.sd_last, &s_path.st, vol, &convname) == 0 && convname) {
+ s_path.u_name = (char *)convname;
+ }
+
/* Fixup CNID db if ad_convert resulted in a rename (then convname != NULL) */
if (convname) {
s_path.id = cnid_lookup(vol->v_cdb, &s_path.st, curdir->d_did, sd.sd_last, strlen(sd.sd_last));
/* Fixup CNID db if ad_convert resulted in a rename (then convname != NULL) */
if (convname) {
s_path.id = cnid_lookup(vol->v_cdb, &s_path.st, curdir->d_did, sd.sd_last, strlen(sd.sd_last));