Subject: [netatalk-admins] os8, finder info yuckiness, and a fix
From: a sun (asun@zoology.washington.edu)
Date: Fri Aug 08 1997 - 02:48:42 EDT
well, i'm pretty sure i've fixed the problem w/ finder
updates. os8 uses bits that it didn't before. netatalk, of
course, does the wrong thing and touches those bits. here's what
happens:
mac gets a directory list.
mac realizes that the finder info is wrong for files which
weren't copied to the server (e.g., the .??? files).
mac sends back a correction for that info.
netatalk disregards that correction
repeat until thoroughly confused.
anyways, i've made available a patch to a14 to fix this. it's at the
standard place of ftp.u.washington.edu:/public/asun as
asun2.0a13-a14.diff.gz. it also fixes a couple other small things. you
might need to delete the "diff -u3" references from the patch file if
your version of patch doesn't ignore those.
after applying the patch, your mac will happily correct your incorrect
resource forks so things should just start working.
here's the fix for 1.4b2:
--- file.c.save Thu Aug 7 23:22:55 1997
+++ file.c Thu Aug 7 23:47:43 1997
@@ -124,8 +124,7 @@
break;
case FILPBIT_FINFO :
- if ( !isad ||
- bcmp( ad_entry( &ad, ADEID_FINDERI ), ufinderi, 8 ) == 0 ) {
+ if ( !isad ) {
bcopy( ufinderi, data, 32 );
if (( em = getextmap( path )) != NULL ) {
bcopy( em->em_type, data, sizeof( em->em_type ));
@@ -333,7 +332,6 @@
u_short bitmap;
{
struct adouble ad;
- struct extmap *em;
int bit = 0;
u_short ashort, bshort;
u_long along;
@@ -397,16 +395,6 @@
break;
case FILPBIT_FINFO :
- if (( ad_getoflags( &ad, ADFLAGS_HF ) & O_CREAT ) ||
- bcmp( ad_entry( &ad, ADEID_FINDERI ), ufinderi, 8 ) == 0 ) {
- if (( em = getextmap( path )) != NULL ) {
- if ( bcmp( buf, em->em_type, sizeof( em->em_type )) == 0 &&
- bcmp( buf + 4, em->em_creator,
- sizeof( em->em_creator )) == 0 ) {
- bcopy( ufinderi, buf, 8 );
- }
- }
- }
bcopy( buf, ad_entry( &ad, ADEID_FINDERI ), 32 );
buf += 32;
break;
This archive was generated by hypermail 2b28 : Sat Dec 18 1999 - 16:26:03 EST