>>>>> On Mon, 5 Jun 2000 14:26:54 -0400 (EDT), Stephen Joyce <[EMAIL PROTECTED]>
>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