diff -urN samba-3.2.5.orig/source/configure.in samba-3.2.5/source/configure.in --- samba-3.2.5.orig/source/configure.in 2008-12-21 20:55:53.000000000 +0100 +++ samba-3.2.5/source/configure.in 2008-12-23 07:17:48.000000000 +0100 @@ -2941,11 +2941,19 @@ if test x"$samba_cv_WITH_AFS" != x"no" || test x"$samba_cv_WITH_FAKE_KASERVER" != x"no"; then + AC_CHECK_LIB( crypto, DES_pcbc_encrypt, LIBS="$LIBS -lcrypto" , [AC_ERROR(OpenSSL library: libcrypto ot found!)] ) + # see if this box has the afs-headers in /usr/include/afs AC_MSG_CHECKING(for /usr/include/afs) if test -d /usr/include/afs; then - CFLAGS="$CFLAGS -I/usr/include/afs" - CPPFLAGS="$CPPFLAGS -I/usr/include/afs" + mkdir -p ./include/afs + for f in auth.h param.h prs_fs.h stds.h venus.h afssyscalls.h; do + cp -a /usr/include/afs/$f ./include/afs/ + done + echo "#include " > ./include/afs/afs.h + cat /usr/include/afs/afs.h >> ./include/afs/afs.h + CFLAGS="$CFLAGS -Iinclude/afs" + CPPFLAGS="$CPPFLAGS -Iinclude/afs" AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) diff -urN samba-3.2.5.orig/source/lib/afs.c samba-3.2.5/source/lib/afs.c --- samba-3.2.5.orig/source/lib/afs.c 2008-12-21 20:55:53.000000000 +0100 +++ samba-3.2.5/source/lib/afs.c 2008-12-23 07:27:15.000000000 +0100 @@ -23,6 +23,7 @@ #define NO_ASN1_TYPEDEFS 1 +#include #include #include #include diff -urN samba-3.2.5.orig/source/lib/afs_settoken.c samba-3.2.5/source/lib/afs_settoken.c --- samba-3.2.5.orig/source/lib/afs_settoken.c 2008-12-21 20:55:53.000000000 +0100 +++ samba-3.2.5/source/lib/afs_settoken.c 2008-12-23 07:36:56.000000000 +0100 @@ -23,6 +23,7 @@ #define NO_ASN1_TYPEDEFS 1 +#include #include #include #include @@ -37,7 +38,24 @@ char * cmarg, int follow) { +/* return( syscall( SYS_afs_syscall, subcall, path, cmd, cmarg, follow)); +*/ + int errcode; + struct afsprocdata afs_syscall_data; + afs_syscall_data.syscall = subcall; + afs_syscall_data.param1 = (long)path; + afs_syscall_data.param2 = cmd; + afs_syscall_data.param3 = (long)cmarg; + afs_syscall_data.param4 = follow; + int proc_afs_file = open(PROC_SYSCALL_FNAME, O_RDWR); + if (proc_afs_file < 0) + proc_afs_file = open(PROC_SYSCALL_ARLA_FNAME, O_RDWR); + if (proc_afs_file < 0) + return -1; + errcode = ioctl(proc_afs_file, VIOC_SYSCALL, &afs_syscall_data); + close(proc_afs_file); + return errcode; } struct ClearToken {