Subject: status of AFS support?

From: Stephen Joyce <[email-masked]>
Date: Mon, 5 Jun 2000 14:26:54 -0400 (EDT)

Anyone know the current status of AFS support in asun's netatalk?

I played around a bit and finally got netatalk 1.4b2+asun2.1.4-37b to
compile on Solaris 7 with AFS support, but I'm getting an error when trying
to load the uam's:

Jun  5 11:38:37 titan afpd[8720]: uam_load(uams_guest.so): failed to load

If I do an ldd on the uams_guest.so, I get lots of "symbol not found"
errors.  Is this specific to the AFS environment, or do uams not work on
Solaris 7?

#ldd -r uams_guest.so
        symbol not found: syslog                (./uams_guest.so)
        symbol not found: uam_afpserver_option          (./uams_guest.so)
        symbol not found: strcpy                (./uams_guest.so)
        symbol not found: getpwnam              (./uams_guest.so)
        symbol not found: setpag                (./uams_guest.so)
        symbol not found: uam_register          (./uams_guest.so)
        symbol not found: uam_unregister                (./uams_guest.so)

The other uams show similar errors.

Cheers,
Stephen
--
Stephen Joyce

UNIX System Administrator / Network Administrator
P A N I C                         Physics & Astronomy Department
Physics & Astronomy               University of North Carolina at Chapel Hill
Network Infrastructure            voice: (919) 962-6494
and Computing                     fax: (919) 962-0480

---

From: Wes Hardaker <[email-masked]>
Date: 08 Jun 2000 14:29:24 -0700

>>>>> On Mon, 5 Jun 2000 14:26:54 -0400 (EDT), Stephen Joyce <[email-masked]> said:

Stephen> Anyone know the current status of AFS support in asun's
Stephen> netatalk?

Yes, but its severely broken as is in many ways.  Plus, I ended up
using DHX encrypted passwords to a afs pam module.

Here's the README file I've built for myself on the subject:

Problems:

1) netatalk doesn't build shared objects on solaris properly.
  a) remove CFLAGS from link lines in etc/{afpd,atalkd,papd}/Makefile
  b) fix sys/solaris/Makefile adding appropriate -fPIC --shared, etc.
  Patch file: patch.makefiles

2) new openssl versions require you to either have /dev/urandom
   (linux) or to have called RAND_seed(STRING, LENGTH) first.
   etc/uams/uams_dhx_pam.c doesn't do this before calling
   DH_generate_key().  Patch forth coming
   (RAND_seed("1234123412341234",16); works but is so very very wrong).

3) etc/afpd/*.c isn't compiled with -DAFS, etc.  I'm not sure why as
   this completely [swear word dropped for mailling to this list] up
   build process isn't easy to follow who's calling what and with
   where the make arguments come from.  In the mean time, I've added:
   -DAFS -I/usr/afsws/include to CFLAGS in etc/afpd/Makefile.

   Furthermore, -lucb is needed since a afs library needs sigvec() and 
   -lc needs to be linked first, since readdir() is screwed up too in
   libucb. (symptoms: files returned by readdir() are missing first 2
   characters if -lc is linked second).

4) sigh...  "make kinstall" doesn't build a driver properly anymore,
   so I installed one using "make kinstall" before applying any of the 
   above patches and it works.

   Patch file: patch.afpd

Stephen> I played around a bit and finally got netatalk
Stephen> 1.4b2+asun2.1.4-37b to compile on Solaris 7 with AFS support,
Stephen> but I'm getting an error when trying to load the uam's:

Solaris plugin support is broken as well, as indicated above.

The patch files described above are included below (though not all of
the above problems are fixed in the following two patches).  I've
mailed one of them to this list before but no one ever did anything
with it to get it included is the source so I never mailed the rest of
the above descriptions.

diff -u -r ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/Makefile ./Makefile
--- ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/Makefile	Wed Apr 19 10:16:31 2000
+++ ./Makefile	Thu Apr 20 13:37:13 2000
@@ -12,7 +12,7 @@
 	nfsquota.o codepage.o quota.o uam.o afs.o
 
 INCPATH=	-I../../include ${AFSINCPATH}
-CFLAGS=	${DEFS} ${AFSDEFS} ${OPTOPTS} ${INCPATH} -DAPPLCNAME -DSHADOWPW
+CFLAGS= ${DEFS} ${AFSDEFS} ${OPTOPTS} ${INCPATH} -DAPPLCNAME -DSHADOWPW
 LIBS =	-latalk ${AFSLIBS} ${ADDLIBS} ${TCPWRAPLIBS} ${DB2LIBS} \
 	${RPCSVCLIB} ${AFPLIBS} ${PAMLIBS} ${LIBSHARED} 
 LIBDIRS=	-L../../libatalk ${AFSLIBDIRS} ${TCPWRAPLIBDIRS} \
@@ -24,6 +24,13 @@
 SUBDIRS = nls
 
 all : ${SUBDIRS}
+	if [ x"${AFSDIR}" != x ]; then \
+	    AFSLIBS="-lkauth -lprot -lubik -lauth -lsys -lrxkad -lrx -laudit \
+		-llwp -lcmd -lcom_err ${AFSDIR}/lib/afs/util.a -ldes -L/usr/ucblib -Wl,-rpath -Wl,/usr/ucblib -lc -lucb"; \
+	    AFSLIBDIRS="-L${AFSDIR}/lib -L${AFSDIR}/lib/afs"; \
+	    AFSINCPATH="-I${AFSDIR}/include -I/usr/ucblib -D_POSIX_PTHREAD_SEMANTICS"; \
+	    AFSDEFS="-DAFS"; \
+	fi; \
 	if [ x"${TCPWRAPDIR}" != x ]; then \
 	    TCPWRAPLIBS="-lwrap -lnsl"; \
 	    if [ "${TCPWRAPDIR}" != "/usr" ]; then \
@@ -37,6 +44,14 @@
 	      DB2INCPATH="-I${DB2DIR}/include"; \
 	    fi; \
 	fi; \
+	if [ x"${CRYPTODIR}" != x ]; then \
+	    CRYPTOLIBS="-lcrypto"; \
+	    if [ "${CRYPTODIR}" != "/usr" ]; then \
+	      CRYPTOLIBDIRS="-L${CRYPTODIR}/lib"; \
+	      CRYPTOINCPATH="-I${CRYPTODIR}/include -I${CRYPTODIR}/include/openssl"; \
+	    fi; \
+	    CRYPTODEFS="-DUAM_RNDNUM -DUAM_DHX"; \
+	fi; \
 	if [ x"${PAMDIR}" != x ]; then \
 	    PAMLIBS="-lpam"; \
 	    if [ "${PAMDIR}" != "/usr" ]; then \
@@ -44,6 +59,14 @@
 	      PAMINCPATH="-I${PAMDIR}/include"; \
 	    fi; \
 	    PAMDEFS="-DUSE_PAM"; \
+	fi; \
+	if [ -f /lib/libcrypt.a -o -f /usr/lib/libcrypt.a ] ; then \
+	   if [ x"${USE_CRYPTLIB}" != x"no" ]; then \
+	    CRYPTLIB="-lcrypt"; \
+	   fi; \
+        fi; \
+	if [ ! -f /usr/include/crypt.h -a ! -f /usr/local/include/crypt.h ]; then \
+	    CRYPTDEFS="-DNO_CRYPT_H"; \
 	fi; \
 	if [ -f /usr/lib/librpcsvc.a -o -f /lib/librpcsvc.a ]; then \
 	    RPCSVCLIB=-lrpcsvc; \
Only in .: Makefile.~2~
Only in .: Makefile.~3~
diff -u -r ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/afp_asp.c ./afp_asp.c
--- ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/afp_asp.c	Mon Jul  5 23:11:17 1999
+++ ./afp_asp.c	Thu Apr 20 11:18:10 2000
@@ -146,7 +146,7 @@
 #endif AFS
 	func = (u_char) asp->commands[0];
 	if ( obj->options.flags & OPTION_DEBUG ) {
-	  printf( "command: %d\n", func );
+	  printf( "command: %d: %s\n", func, afp_switch_names[func] );
 	  bprint( asp->commands, asp->cmdlen );
 	}
 	if ( afp_switch[ func ] != NULL ) {
Only in .: afp_asp.c.~1~
Binary files ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/afp_asp.o and ./afp_asp.o differ
diff -u -r ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/afp_dsi.c ./afp_dsi.c
--- ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/afp_dsi.c	Mon Dec 13 22:29:26 1999
+++ ./afp_dsi.c	Thu Apr 20 11:19:46 2000
@@ -186,7 +186,7 @@
 
       function = (u_char) dsi->commands[0];
       if (obj->options.flags & OPTION_DEBUG ) {
-	printf("command: %d\n", function);
+	printf("command: %d: %s\n", function, afp_switch_names[function] );
 	bprint(dsi->commands, dsi->cmdlen);
       }
 
Only in .: afp_dsi.c.~1~
Binary files ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/afp_dsi.o and ./afp_dsi.o differ
Binary files ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/afpd and ./afpd differ
diff -u -r ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/afs.c ./afs.c
--- ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/afs.c	Fri Jun  4 17:38:00 1999
+++ ./afs.c	Thu Apr 20 10:50:55 2000
@@ -14,6 +14,7 @@
 #include <afs/afsint.h>
 #include <atalk/afp.h>
 #include <unistd.h>
+#include <sys/stat.h>
 
 #include "globals.h"
 #include "directory.h"
@@ -30,6 +31,7 @@
     char		venuspace[ sizeof( struct VolumeStatus ) + 3 ];
     int			total, free;
 
+    syslog( LOG_INFO, "getvolspace");
     vi.in_size = 0;
     vi.out_size = sizeof( venuspace );
     vi.out = venuspace;
@@ -75,6 +77,7 @@
     u_int32_t		did;
     u_int16_t		vid;
 
+    syslog( LOG_INFO, "getdiracl");
     ibuf += 2;
     memcpy( &vid, ibuf, sizeof( vid ));
     ibuf += sizeof( short );
@@ -124,6 +127,7 @@
     struct ViceIoctl	vi;
     char		buf[ 1024 ];
 
+    syslog( LOG_INFO, "start afsmode()");
     if (( dir->d_flags & DIRF_FSMASK ) == DIRF_NOFS ) {
 	vi.in_size = 0;
 	vi.out_size = sizeof( buf );
@@ -132,6 +136,7 @@
 	    dir->d_flags |= DIRF_UFS;
 	} else {
 	    dir->d_flags |= DIRF_AFS;
+            syslog( LOG_INFO, "checked dir (VIOCGETAL) and it is afs");
 	}
     }
 
@@ -139,23 +144,29 @@
 	return;
     }
 
+    syslog( LOG_INFO, "dir is afs: %s", path);
     if ( access( path, R_OK|W_OK|X_OK ) == 0 ) {
+        syslog( LOG_INFO, "dir is user RWX");
 	ma->ma_user = AR_UREAD|AR_UWRITE|AR_USEARCH|AR_UOWN;
 	ma->ma_owner = AR_UREAD|AR_UWRITE|AR_USEARCH;
     } else if ( access( path, R_OK|X_OK ) == 0 ) {
+        syslog( LOG_INFO, "dir is user R-X");
 	ma->ma_user = AR_UREAD|AR_USEARCH;
 	ma->ma_owner = AR_UREAD|AR_USEARCH;
     } else {
 	ma->ma_user = ma->ma_owner = 0;
 	if ( access( path, R_OK ) == 0 ) {
+            syslog( LOG_INFO, "dir is user read");
 	    ma->ma_user |= AR_UREAD;
 	    ma->ma_owner |= AR_UREAD;
 	}
 	if ( access( path, X_OK ) == 0 ) {
+            syslog( LOG_INFO, "dir is user search");
 	    ma->ma_user |= AR_USEARCH;
 	    ma->ma_owner |= AR_USEARCH;
 	}
 	if ( access( path, W_OK ) == 0 ) {
+            syslog( LOG_INFO, "dir is user write");
 	    ma->ma_user |= AR_UWRITE|AR_UOWN;
 	    ma->ma_owner |= AR_UWRITE;
 	}
@@ -180,6 +191,7 @@
     u_int32_t		did;
     u_int16_t		vid;
 
+    syslog( LOG_INFO, "setdiracl");
     *rbuflen = 0;
     iend = ibuf + ibuflen;
     ibuf += 2;
Only in .: afs.c.~1~
Only in .: afs.c.~2~
Binary files ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/afs.o and ./afs.o differ
Only in .: directory.c.~1~
Only in .: directory.c.~2~
diff -u -r ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/directory.h ./directory.h
--- ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/directory.h	Mon Feb 28 14:03:09 2000
+++ ./directory.h	Wed Apr 19 16:28:56 2000
@@ -116,7 +116,7 @@
 
 /* file/directory ids. what a mess. we scramble things in a vain attempt
  * to get something meaningful */
-#ifndef AFS
+#ifndef AFSn
 #define CNID_XOR(a)  (((a) >> 16) ^ (a))
 #define CNID_DEV(a)   ((((CNID_XOR(major((a)->st_dev)) & 0xf) << 3) | \
 	(CNID_XOR(minor((a)->st_dev)) & 0x7)) << 24)
@@ -125,6 +125,7 @@
 #define CNID_FILE(a)  (((a) & 0x1) << 31)
 #define CNID(a,b)     (CNID_DEV(a) | CNID_INODE(a) | CNID_FILE(b))
 #else
+#define CNID_FILE(a)  (((a) & 0x1) << 31)
 #define CNID(a,b)     (((a)->st_ino & 0x7fffffff) | CNID_FILE(b))
 #endif
 
Only in .: directory.h.~1~
Binary files ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/directory.o and ./directory.o differ
diff -u -r ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/enumerate.c ./enumerate.c
--- ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/enumerate.c	Mon Feb 28 23:24:11 2000
+++ ./enumerate.c	Thu Apr 20 13:11:59 2000
@@ -201,9 +201,11 @@
      *		len <name> \0
      * The end is indicated by a len of 0.
      */
+    syslog( LOG_INFO, "afp_enumerate, starting");
     if ( sindex == 1 || curdir->d_did != sd.sd_did || vid != sd.sd_vid ) {
 	sd.sd_last = sd.sd_buf;
 
+        syslog( LOG_INFO, "afp_enumerate, opening %s", path);
 	if (( dp = opendir( mtoupath(vol, path ))) == NULL ) {
 	    *rbuflen = 0;
 	    return (errno == ENOTDIR) ? AFPERR_BADTYPE : AFPERR_NODIR;
@@ -211,6 +213,7 @@
 
 	end = sd.sd_buf + sd.sd_buflen;
 	for ( de = readdir( dp ); de != NULL; de = readdir( dp )) {
+            syslog( LOG_INFO, "afp_enumerate, reading %s", de->d_name);
 	    if (!strcmp(de->d_name, "..") || !strcmp(de->d_name, "."))
 	      continue;
 
@@ -243,6 +246,7 @@
 
 	    memcpy( sd.sd_last, de->d_name, len + 1 );
 	    sd.sd_last += len + 1;
+            syslog( LOG_INFO, "read %s", de->d_name);
 	}
 	*sd.sd_last = 0;
 
@@ -266,6 +270,7 @@
 	if ( len == 0 ) {
 	    sd.sd_did = -1;	/* invalidate sd struct to force re-read */
 	    *rbuflen = 0;
+            syslog( LOG_INFO, "not found 1");
 	    return( AFPERR_NOOBJ );
 	}
 	sd.sd_last += len + 1;
@@ -373,6 +378,7 @@
     if ( actcnt == 0 ) {
 	*rbuflen = 0;
 	sd.sd_did = -1;		/* invalidate sd struct to force re-read */
+        syslog( LOG_INFO, "not found 2");
 	return( AFPERR_NOOBJ );
     }
     sd.sd_sindex = sindex + actcnt;
Only in .: enumerate.c.~1~
Binary files ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/enumerate.o and ./enumerate.o differ
diff -u -r ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/file.c ./file.c
--- ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/file.c	Mon Feb 28 23:31:36 2000
+++ ./file.c	Thu Apr 20 11:26:13 2000
@@ -77,6 +77,7 @@
     u_int16_t		ashort;
     u_char              achar, fdType[4];
 
+    syslog( LOG_INFO, "getfilparams");
     upath = mtoupath(vol, path);
     if ((of = of_findname(vol, curdir, path))) {
       adp = of->of_ad;
Only in .: file.c.~1~
Binary files ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/file.o and ./file.o differ
diff -u -r ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/filedir.c ./filedir.c
--- ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/filedir.c	Fri Aug 13 09:50:28 1999
+++ ./filedir.c	Thu Apr 20 12:57:33 2000
@@ -43,9 +43,11 @@
     *rbuflen = 0;
     ibuf += 2;
 
+    syslog( LOG_INFO, "entering afp_getfildirparams");
     memcpy( &vid, ibuf, sizeof( vid ));
     ibuf += sizeof( vid );
     if (( vol = getvolbyvid( vid )) == NULL ) {
+        syslog( LOG_INFO, "getvolbyvid failed");
 	return( AFPERR_PARAM );
     }
 
@@ -53,6 +55,7 @@
     ibuf += sizeof( did );
 
     if (( dir = dirsearch( vol, did )) == NULL ) {
+        syslog( LOG_INFO, "dirsearch failed");
 	return( AFPERR_NOOBJ );
     }
 
@@ -64,10 +67,12 @@
     ibuf += sizeof( dbitmap );
 
     if (( path = cname( vol, dir, &ibuf )) == NULL) {
+        syslog( LOG_INFO, "cname failed");
 	return( AFPERR_NOOBJ );
     }
 
     if ( stat( mtoupath(vol, path ), &st ) < 0 ) {
+        syslog( LOG_INFO, "mtoupath failed");
 	return( AFPERR_NOOBJ );
     }
 
@@ -75,16 +80,20 @@
     if (S_ISDIR(st.st_mode)) {
 	if (dbitmap && ( ret = getdirparams(vol, dbitmap, ".", curdir,
 		&st, rbuf + 3 * sizeof( u_int16_t ), &buflen )) != AFP_OK ) {
+            syslog( LOG_INFO, "getdirparams failed");
 	    return( ret );
 	}
+        syslog( LOG_INFO, "directory found");
         /* this is a directory */
 	*(rbuf + 2 * sizeof( u_int16_t )) = FILDIRBIT_ISDIR; 
     } else {
 	if (fbitmap && ( ret = getfilparams(vol, fbitmap, path, curdir, &st,
 		rbuf + 3 * sizeof( u_int16_t ), &buflen )) != AFP_OK ) {
+            syslog( LOG_INFO, "getfilparams failed");
 	    return( ret );
 	}
         /* this is a file */
+        syslog( LOG_INFO, "file found");
 	*(rbuf + 2 * sizeof( u_int16_t )) = FILDIRBIT_ISFILE;
     }
     *rbuflen = buflen + 3 * sizeof( u_int16_t );
@@ -95,6 +104,7 @@
     memcpy( rbuf, &dbitmap, sizeof( dbitmap ));
     rbuf += sizeof( dbitmap ) + sizeof( u_char );
     *rbuf = 0;
+    syslog( LOG_INFO, "leaving afp_getfildirparams");
 
     return( AFP_OK );
 }
Only in .: filedir.c.~1~
Binary files ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/filedir.o and ./filedir.o differ
Binary files ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/fork.o and ./fork.o differ
Binary files ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/status.o and ./status.o differ
diff -u -r ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/switch.c ./switch.c
--- ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/switch.c	Fri Jun  4 20:00:02 1999
+++ ./switch.c	Thu Apr 20 11:16:16 2000
@@ -193,6 +193,75 @@
     NULL, NULL, NULL, NULL,					/* 248 - 255 */
 };
 
+char *postauth_switch_names[256] = {
+    "NULL", "afp_bytelock", "afp_closevol", "afp_closedir",
+    "afp_closefork", "afp_copyfile", "afp_createdir", "afp_createfile",	/*   0 -   7 */
+    "afp_delete", "afp_enumerate", "afp_flush", "afp_flushfork",
+    "afp_null", "afp_null", "afp_getforkparams", "afp_getsrvrinfo",	/*   8 -  15 */
+    "afp_getsrvrparms", "afp_getvolparams", "afp_login", "afp_logincont",
+    "afp_logout", "afp_mapid", "afp_mapname", "afp_moveandrename",	/*  16 -  23 */
+    "afp_openvol", "afp_opendir", "afp_openfork", "afp_read",
+    "afp_rename", "afp_setdirparams", "afp_setfilparams", "afp_setforkparams",
+								/*  24 -  31 */
+    "afp_setvolparams", "afp_write", "afp_getfildirparams", "afp_setfildirparams",
+    "afp_changepw", "afp_getuserinfo", "afp_getsrvrmesg", "afp_createid", /*  32 -  39 */
+    "afp_deleteid", "afp_resolveid", "afp_exchangefiles", "afp_null", /*afp_catsearch*/
+    "afp_null", "afp_null", "afp_null", "afp_null",			/*  40 -  47 */
+    "afp_opendt", "afp_closedt", "afp_null", "afp_geticon",
+    "afp_geticoninfo", "afp_addappl", "afp_rmvappl", "afp_getappl",	/*  48 -  55 */
+    "afp_addcomment", "afp_rmvcomment", "afp_getcomment", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/*  56 -  63 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/*  64 -  71 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/*  72 -  79 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/*  80 -  87 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/*  88 -  95 */
+    "NULL", "NULL", "NULL", "NULL",
+    "afp_getdiracl", "afp_setdiracl", "afp_afschangepw", "NULL",	/*  96 - 103 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 104 - 111 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 112 - 119 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 120 - 127 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 128 - 135 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 136 - 143 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 144 - 151 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 152 - 159 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 160 - 167 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 168 - 175 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 176 - 183 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 184 - 191 */
+    "afp_addicon", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 192 - 199 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 200 - 207 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 208 - 215 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 216 - 223 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 224 - 231 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 232 - 239 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 240 - 247 */
+    "NULL", "NULL", "NULL", "NULL",
+    "NULL", "NULL", "NULL", "NULL",					/* 248 - 255 */
+};
+
+char **afp_switch_names = postauth_switch_names;
 
 /* add a new function if it's specified. return the old function in
  * "old" if there's a pointer there. */
Only in .: switch.c.~1~
diff -u -r ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/switch.h ./switch.h
--- ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/switch.h	Fri Jun  4 17:23:30 1999
+++ ./switch.h	Thu Apr 20 11:17:06 2000
@@ -26,4 +26,5 @@
 
 extern int	(**afp_switch)();
 extern int	(*postauth_switch[])();
+extern char **afp_switch_names;
 #endif
Only in .: switch.h.~1~
Binary files ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/switch.o and ./switch.o differ
diff -u -r ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/volume.c ./volume.c
--- ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/volume.c	Wed Feb 23 16:06:03 2000
+++ ./volume.c	Wed Apr 19 16:28:18 2000
@@ -742,8 +742,11 @@
     if ( spaceflag == AFPVOL_NONE || spaceflag == AFPVOL_AFSGVS ) {
 	if ( afs_getvolspace( vol, xbfree, xbtotal, bsize ) == AFP_OK ) {
 	    vol->v_flags = ( ~AFPVOL_GVSMASK & vol->v_flags ) | AFPVOL_AFSGVS;
+            syslog( LOG_INFO, "afs_getvolspace: ok");
 	    goto getvolspace_done;
-	}
+	} else {
+            syslog( LOG_INFO, "afs_getvolspace: not ok");
+        }
     }
 #endif AFS
 
Only in .: volume.c.~1~
Binary files ../../../solaris-1.4b2+asun2.1.4-39_test_works_no_afs_acls/etc/afpd/volume.o and ./volume.o differ
diff -r -c ../patches/netatalk-1.4b2+asun2.1.4/Makefile ./Makefile
*** ../patches/netatalk-1.4b2+asun2.1.4/Makefile	Mon Dec 13 22:29:26 1999
--- ./Makefile	Fri Mar 10 14:48:51 2000
***************
*** 1,6 ****
  # Root of installation. Subdirectories will be ${DESTDIR}/etc,
  # ${DESTDIR}/bin, and ${DESTDIR}/lib.
! DESTDIR=/usr/local/atalk
  
  # for system-level binaries
  SBINDIR=$(DESTDIR)/sbin
--- 1,6 ----
  # Root of installation. Subdirectories will be ${DESTDIR}/etc,
  # ${DESTDIR}/bin, and ${DESTDIR}/lib.
! DESTDIR=/afs/dcas.ucdavis.edu/pkg/solaris2.6/contrib
  
  # for system-level binaries
  SBINDIR=$(DESTDIR)/sbin
***************
*** 40,46 ****
  # dh.h, and bn.h in $CRYPTODIR/include with -lcrypto in
  # $CRYPTODIR/lib. NOTE: os x server will complain if you use both
  # randnum exchange and DHX.
! CRYPTODIR=/usr/local/ssl
  
  # Location of the DES library and include files. Uncomment this out if
  # you want Randnum Exchange and 2-Way Randnum Exchange as allowable
--- 40,46 ----
  # dh.h, and bn.h in $CRYPTODIR/include with -lcrypto in
  # $CRYPTODIR/lib. NOTE: os x server will complain if you use both
  # randnum exchange and DHX.
! CRYPTODIR=/afs/dcas.ucdavis.edu/pkg/solaris2.6/contrib
  
  # Location of the DES library and include files. Uncomment this out if
  # you want Randnum Exchange and 2-Way Randnum Exchange as allowable
***************
*** 51,57 ****
  # Location of the tcp wrapper library and include files. Comment this out
  # if you don't want tcp wrapper support. having tcp wrapper support is
  # highly recommended.
! TCPWRAPDIR=/usr
  
  # Location of PAM support library and include files. Uncomment this if
  # you want to enable PAM support.
--- 51,57 ----
  # Location of the tcp wrapper library and include files. Comment this out
  # if you don't want tcp wrapper support. having tcp wrapper support is
  # highly recommended.
! #TCPWRAPDIR=/usr
  
  # Location of PAM support library and include files. Uncomment this if
  # you want to enable PAM support.
***************
*** 60,72 ****
  # Location of cracklib support library and include files. This is used
  # in the password changing routines. Uncomment this out if you want to
  # enable support.
! CRACKDIR=/usr

  # Location of the AFS and Kerberos libraries and include files.  Uncomment
  # and edit these if you want to include AFS or Kerberos support in afpd
  # or Kerberos support in papd.
! #AFSDIR=/usr/local/afs
  #KRBDIR=/usr/local/kerberos
  
  ##########################################################################
--- 60,72 ----
  # Location of cracklib support library and include files. This is used
  # in the password changing routines. Uncomment this out if you want to
  # enable support.
! #CRACKDIR=/usr

  # Location of the AFS and Kerberos libraries and include files.  Uncomment
  # and edit these if you want to include AFS or Kerberos support in afpd
  # or Kerberos support in papd.
! AFSDIR=/usr/afsws
  #KRBDIR=/usr/local/kerberos
  
  ##########################################################################
Only in ./bin/adv1tov2: adv1tov2
Only in ./bin/adv1tov2: adv1tov2.o
Only in ./bin/aecho: aecho
Only in ./bin/aecho: aecho.o
Only in ./bin/afppasswd: afppasswd
Only in ./bin/afppasswd: afppasswd.o
Only in ./bin/getzones: getzones
Only in ./bin/getzones: getzones.o
Only in ./bin/megatron: asingle.o
Only in ./bin/megatron: hqx.o
Only in ./bin/megatron: macbin.o
Only in ./bin/megatron: megatron
Only in ./bin/megatron: megatron.o
Only in ./bin/megatron: nad.o
Only in ./bin/megatron: updcrc.o
Only in ./bin/nbp: nbplkup
Only in ./bin/nbp: nbplkup.o
Only in ./bin/nbp: nbprgstr
Only in ./bin/nbp: nbprgstr.o
Only in ./bin/nbp: nbpunrgstr
Only in ./bin/nbp: nbpunrgstr.o
Only in ./bin/pap: pap
Only in ./bin/pap: pap.o
Only in ./bin/pap: papstatus
Only in ./bin/pap: papstatus.o
Only in ./bin/psorder: pa.o
Only in ./bin/psorder: psorder
Only in ./bin/psorder: psorder.o
Only in .: core
diff -r -c ../patches/netatalk-1.4b2+asun2.1.4/etc/afpd/Makefile ./etc/afpd/Makefile
*** ../patches/netatalk-1.4b2+asun2.1.4/etc/afpd/Makefile	Mon Dec 13 22:29:26 1999
--- ./etc/afpd/Makefile	Fri Mar 10 14:10:27 2000
***************
*** 74,80 ****
  FRC:
  
  afpd : ${OBJ} ../../libatalk/libatalk.a
! 	${CC} ${CFLAGS} ${LDFLAGS_EXPORT} -o afpd ${OBJ} ${LIBDIRS} ${LIBS}
  
  afp_options.o : afp_options.c
  	${CC} ${CFLAGS} \
--- 74,80 ----
  FRC:
  
  afpd : ${OBJ} ../../libatalk/libatalk.a
! 	${CC} ${LDFLAGS_EXPORT} -o afpd ${OBJ} ${LIBDIRS} ${LIBS}
  
  afp_options.o : afp_options.c
  	${CC} ${CFLAGS} \
Only in ./etc/afpd: Makefile.~1~
Only in ./etc/afpd: afp_asp.o
Only in ./etc/afpd: afp_dsi.o
Only in ./etc/afpd: afp_options.o
Only in ./etc/afpd: afpd
Only in ./etc/afpd: afs.o
Only in ./etc/afpd: appl.o
Only in ./etc/afpd: auth.o
Only in ./etc/afpd: codepage.o
Only in ./etc/afpd: config.o
Only in ./etc/afpd: desktop.o
Only in ./etc/afpd: directory.o
Only in ./etc/afpd: enumerate.o
Only in ./etc/afpd: file.o
Only in ./etc/afpd: filedir.o
Only in ./etc/afpd: fork.o
Only in ./etc/afpd: gettok.o
Only in ./etc/afpd: main.o
Only in ./etc/afpd: messages.o
Only in ./etc/afpd: nfsquota.o
Only in ./etc/afpd/nls: codepage.h
Only in ./etc/afpd/nls: makecode
Only in ./etc/afpd/nls: makecode.o
Only in ./etc/afpd/nls: parsecode
Only in ./etc/afpd/nls: parsecode.o
Only in ./etc/afpd: ofork.o
Only in ./etc/afpd: quota.o
Only in ./etc/afpd: status.o
Only in ./etc/afpd: switch.o
Only in ./etc/afpd: uam.o
Only in ./etc/afpd: unix.o
Only in ./etc/afpd: volume.o
diff -r -c ../patches/netatalk-1.4b2+asun2.1.4/etc/atalkd/Makefile ./etc/atalkd/Makefile
*** ../patches/netatalk-1.4b2+asun2.1.4/etc/atalkd/Makefile	Fri Jun  4 15:05:45 1999
--- ./etc/atalkd/Makefile	Fri Mar 10 14:11:07 2000
***************
*** 12,18 ****
  all : atalkd
  
  atalkd : ${OBJ} ../../libatalk/libatalk.a
! 	${CC} ${CFLAGS} -o atalkd ${OBJ} ${LIBDIRS} ${LIBS}
  
  main.o : main.c
  	${CC} ${CFLAGS} -DVERSION=\"`cat ../../VERSION`\" \
--- 12,18 ----
  all : atalkd
  
  atalkd : ${OBJ} ../../libatalk/libatalk.a
! 	${CC} -o atalkd ${OBJ} ${LIBDIRS} ${LIBS}
  
  main.o : main.c
  	${CC} ${CFLAGS} -DVERSION=\"`cat ../../VERSION`\" \
Only in ./etc/atalkd: Makefile.~1~
Only in ./etc/atalkd: aep.o
Only in ./etc/atalkd: atalkd
Only in ./etc/atalkd: config.o
Only in ./etc/atalkd: main.o
Only in ./etc/atalkd: multicast.o
Only in ./etc/atalkd: nbp.o
Only in ./etc/atalkd: route.o
Only in ./etc/atalkd: rtmp.o
Only in ./etc/atalkd: zip.o
diff -r -c ../patches/netatalk-1.4b2+asun2.1.4/etc/papd/Makefile ./etc/papd/Makefile
*** ../patches/netatalk-1.4b2+asun2.1.4/etc/papd/Makefile	Fri Jun  4 15:05:22 1999
--- ./etc/papd/Makefile	Fri Mar 10 14:11:38 2000
***************
*** 48,54 ****
  FRC:
  
  papd : ${OBJ} ../../libatalk/libatalk.a
! 	${CC} ${CFLAGS} ${LDFLAGS} -o papd ${OBJ} ${LIBDIRS} ${LIBS}
  
  main.o : main.c
  	${CC} ${CFLAGS} -D_PATH_PAPDCONF=\"${ETCDIR}/papd.conf\" \
--- 48,54 ----
  FRC:
  
  papd : ${OBJ} ../../libatalk/libatalk.a
! 	${CC} ${LDFLAGS} -o papd ${OBJ} ${LIBDIRS} ${LIBS}
  
  main.o : main.c
  	${CC} ${CFLAGS} -D_PATH_PAPDCONF=\"${ETCDIR}/papd.conf\" \
Only in ./etc/papd: Makefile.~1~
Only in ./etc/papd: comment.o
Only in ./etc/papd: file.o
Only in ./etc/papd: headers.o
Only in ./etc/papd: lp.o
Only in ./etc/papd: magics.o
Only in ./etc/papd: main.o
Only in ./etc/papd: papd
Only in ./etc/papd: ppd.o
Only in ./etc/papd: printcap.o
Only in ./etc/papd: queries.o
Only in ./etc/papd: session.o
Only in ./etc/psf: ifmpap
Only in ./etc/psf: ifmpaprev
Only in ./etc/psf: ifpap
Only in ./etc/psf: ifpaprev
Only in ./etc/psf: ifwmpap
Only in ./etc/psf: ifwmpaprev
Only in ./etc/psf: ifwpap
Only in ./etc/psf: ifwpaprev
Only in ./etc/psf: ofmpap
Only in ./etc/psf: ofpap
Only in ./etc/psf: ofwmpap
Only in ./etc/psf: ofwpap
Only in ./etc/psf: psa
Only in ./etc/psf: psa.o
Only in ./etc/psf: psf
Only in ./etc/psf: psf.o
Only in ./etc/psf: tfmpap
Only in ./etc/psf: tfmpaprev
Only in ./etc/psf: tfpap
Only in ./etc/psf: tfpaprev
Only in ./etc/psf: tfwmpap
Only in ./etc/psf: tfwmpaprev
Only in ./etc/psf: tfwpap
Only in ./etc/psf: tfwpaprev
Only in ./etc/uams: uams_dhx_pam.o
Only in ./etc/uams: uams_dhx_pam.so
Only in ./etc/uams: uams_dhx_passwd.o
Only in ./etc/uams: uams_dhx_passwd.so
Only in ./etc/uams: uams_guest.o
Only in ./etc/uams: uams_guest.so
Only in ./etc/uams: uams_pam.o
Only in ./etc/uams: uams_pam.so
Only in ./etc/uams: uams_passwd.o
Only in ./etc/uams: uams_passwd.so
Only in ./etc/uams: uams_randnum.o
Only in ./etc/uams: uams_randnum.so
Only in ./include: netatalk
Only in ./libatalk/adouble: ad_attr.o
Only in ./libatalk/adouble: ad_date.o
Only in ./libatalk/adouble: ad_flush.o
Only in ./libatalk/adouble: ad_lock.o
Only in ./libatalk/adouble: ad_mmap.o
Only in ./libatalk/adouble: ad_open.o
Only in ./libatalk/adouble: ad_read.o
Only in ./libatalk/adouble: ad_sendfile.o
Only in ./libatalk/adouble: ad_size.o
Only in ./libatalk/adouble: ad_write.o
Only in ./libatalk/adouble: adoublelib
Only in ./libatalk/adouble: adoublelib_p
Only in ./libatalk/adouble: profiled
Only in ./libatalk/asp: asp_attn.o
Only in ./libatalk/asp: asp_close.o
Only in ./libatalk/asp: asp_cmdreply.o
Only in ./libatalk/asp: asp_getreq.o
Only in ./libatalk/asp: asp_getsess.o
Only in ./libatalk/asp: asp_init.o
Only in ./libatalk/asp: asp_shutdown.o
Only in ./libatalk/asp: asp_tickle.o
Only in ./libatalk/asp: asp_write.o
Only in ./libatalk/asp: asplib
Only in ./libatalk/asp: asplib_p
Only in ./libatalk/asp: profiled
Only in ./libatalk/atp: atp_bufs.o
Only in ./libatalk/atp: atp_close.o
Only in ./libatalk/atp: atp_open.o
Only in ./libatalk/atp: atp_packet.o
Only in ./libatalk/atp: atp_rreq.o
Only in ./libatalk/atp: atp_rresp.o
Only in ./libatalk/atp: atp_rsel.o
Only in ./libatalk/atp: atp_sreq.o
Only in ./libatalk/atp: atp_sresp.o
Only in ./libatalk/atp: atplib
Only in ./libatalk/atp: atplib_p
Only in ./libatalk/atp: profiled
Only in ./libatalk/compat: compatlib
Only in ./libatalk/compat: compatlib_p
Only in ./libatalk/compat: flock.o
Only in ./libatalk/compat: getusershell.o
Only in ./libatalk/compat: inet_aton.o
Only in ./libatalk/compat: mktemp.o
Only in ./libatalk/compat: profiled
Only in ./libatalk/compat: rquota_xdr.o
Only in ./libatalk/compat: strcasecmp.o
Only in ./libatalk/compat: strdup.o
Only in ./libatalk/compat: strstr.o
Only in ./libatalk/dsi: dsi_attn.o
Only in ./libatalk/dsi: dsi_close.o
Only in ./libatalk/dsi: dsi_cmdreply.o
Only in ./libatalk/dsi: dsi_getsess.o
Only in ./libatalk/dsi: dsi_getstat.o
Only in ./libatalk/dsi: dsi_init.o
Only in ./libatalk/dsi: dsi_opensess.o
Only in ./libatalk/dsi: dsi_read.o
Only in ./libatalk/dsi: dsi_stream.o
Only in ./libatalk/dsi: dsi_tcp.o
Only in ./libatalk/dsi: dsi_tickle.o
Only in ./libatalk/dsi: dsi_write.o
Only in ./libatalk/dsi: dsilib
Only in ./libatalk/dsi: dsilib_p
Only in ./libatalk/dsi: profiled
Only in ./libatalk: libatalk.a
Only in ./libatalk: libatalk_p.a
Only in ./libatalk/nbp: nbp_lkup.o
Only in ./libatalk/nbp: nbp_rgstr.o
Only in ./libatalk/nbp: nbp_unrgstr.o
Only in ./libatalk/nbp: nbp_util.o
Only in ./libatalk/nbp: nbplib
Only in ./libatalk/nbp: nbplib_p
Only in ./libatalk/nbp: profiled
Only in ./libatalk/netddp: netddp_open.o
Only in ./libatalk/netddp: netddp_recvfrom.o
Only in ./libatalk/netddp: netddp_sendto.o
Only in ./libatalk/netddp: netddplib
Only in ./libatalk/netddp: netddplib_p
Only in ./libatalk/netddp: profiled
Only in ./libatalk/util: atalk_addr.o
Only in ./libatalk/util: bprint.o
Only in ./libatalk/util: getiface.o
Only in ./libatalk/util: module.o
Only in ./libatalk/util: profiled
Only in ./libatalk/util: server_child.o
Only in ./libatalk/util: server_lock.o
Only in ./libatalk/util: strdicasecmp.o
Only in ./libatalk/util: utillib
Only in ./libatalk/util: utillib_p
Only in .: make.out
Only in ./man/man1: aecho.1.tmp
Only in ./man/man1: getzones.1.tmp
Only in ./man/man1: hqx2bin.1.tmp
Only in ./man/man1: macbinary.1.tmp
Only in ./man/man1: megatron.1.tmp
Only in ./man/man1: nbp.1.tmp
Only in ./man/man1: nbplkup.1.tmp
Only in ./man/man1: nbprgstr.1.tmp
Only in ./man/man1: pap.1.tmp
Only in ./man/man1: papstatus.1.tmp
Only in ./man/man1: psorder.1.tmp
Only in ./man/man1: single2bin.1.tmp
Only in ./man/man1: unbin.1.tmp
Only in ./man/man1: unhex.1.tmp
Only in ./man/man1: unsingle.1.tmp
Only in ./man/man3: atalk_aton.3.tmp
Only in ./man/man3: nbp_name.3.tmp
Only in ./man/man4: atalk.4.tmp
Only in ./man/man8: afpd.8.tmp
Only in ./man/man8: atalkd.8.tmp
Only in ./man/man8: papd.8.tmp
Only in ./man/man8: psf.8.tmp
Only in .: patch
Only in .: patch2
diff -r -c ../patches/netatalk-1.4b2+asun2.1.4/sys/solaris/Makefile ./sys/solaris/Makefile
*** ../patches/netatalk-1.4b2+asun2.1.4/sys/solaris/Makefile	Mon Jan  3 18:07:01 2000
--- ./sys/solaris/Makefile	Fri Mar 10 13:53:30 2000
***************
*** 11,20 ****
  # use gcc (gcc-2.95 on 64-bit sparc)
  CC=		gcc
  KCFLAGS=	-D_KERNEL -Wall -Wstrict-prototypes ${KGCCFLAGS} # -mcpu=ultrasparc
! OPTOPTS=	-O
! CSHAREDFLAGS=   -fPIC
  LDSHARED=	gcc
  LDSHAREDFLAGS=  -shared
  
  # use Sun CC (for a 64-bit kernel, uncomment " -xarch=v9 -xregs=no%appl ") 
  #CC=		cc
--- 11,21 ----
  # use gcc (gcc-2.95 on 64-bit sparc)
  CC=		gcc
  KCFLAGS=	-D_KERNEL -Wall -Wstrict-prototypes ${KGCCFLAGS} # -mcpu=ultrasparc
! OPTOPTS=	-O2 -g -fPIC -shared
! CSHAREDFLAGS=   -fPIC -shared
  LDSHARED=	gcc
  LDSHAREDFLAGS=  -shared
+ LDFLAGS_EXPORT= -export-dynamic
  
  # use Sun CC (for a 64-bit kernel, uncomment " -xarch=v9 -xregs=no%appl ") 
  #CC=		cc
***************
*** 30,36 ****
  # -D_ISOC9X_SOURCE is handled by OSVERSION. basically, it's not needed
  # with 2.5.1.
  # add -DHAVE_IFNAMEINDEX if you're using solaris 8.
! DEFS=	-DNO_STRUCT_TM_GMTOFF -D__svr4__ -DSOLARIS -I../../sys/generic \
  	${OSDEFS} ${MACHINEDEFS}
  INSTALL=	/usr/ucb/install
  AFPLIBS=
--- 31,37 ----
  # -D_ISOC9X_SOURCE is handled by OSVERSION. basically, it's not needed
  # with 2.5.1.
  # add -DHAVE_IFNAMEINDEX if you're using solaris 8.
! DEFS=	-fPIC -DNO_STRUCT_TM_GMTOFF -D__svr4__ -DSOLARIS -I../../sys/generic \
  	${OSDEFS} ${MACHINEDEFS}
  INSTALL=	/usr/ucb/install
  AFPLIBS=
Only in ./sys/solaris: Makefile.~1~
Only in ./sys/solaris: aarp.o
Only in ./sys/solaris: ddp
Only in ./sys/solaris: ddp.o
Only in ./sys/solaris: dlpi.o
Only in ./sys/solaris: if.o
Only in ./sys/solaris: ioc.o
Only in ./sys/solaris: linkage.o
Only in ./sys/solaris: rt.o
Only in ./sys/solaris: sock.o
Only in ./sys/solaris: tpi.o

The nice thing is that once you actually do get the thing compiled,
it's fairly stable and I'm using the very latest test sources...
-- 
Wes Hardaker
Distributed Computing Analysis and Support
University of California at Davis