1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00

Fix bug 6136: New AFS syscall conventions

Haven't checked this myself, but as I've already got several reports that Samba
won't compile against current OpenAFS anymore, I just believe Geza Gemes. This
patch only affects AFS code, so it should not hurt anything else.

Volker
This commit is contained in:
Geza Gemes 2009-05-03 22:13:36 +02:00 committed by Volker Lendecke
parent 2467ae1b6a
commit 5c2404fb86
3 changed files with 24 additions and 4 deletions

View File

@ -2868,11 +2868,12 @@ AC_ARG_WITH(fake-kaserver,
if test x"$samba_cv_WITH_AFS" != x"no" ||
test x"$samba_cv_WITH_FAKE_KASERVER" != x"no"; then
# see if this box has the OpenSSL DES libraries
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"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)

View File

@ -23,6 +23,7 @@
#define NO_ASN1_TYPEDEFS 1
#include <afs/param.h>
#include <afs/stds.h>
#include <afs/afs.h>
#include <afs/auth.h>
@ -230,8 +231,8 @@ bool afs_login(connection_struct *conn)
}
afs_username = talloc_sub_advanced(ctx,
SNUM(conn), conn->user,
conn->connectpath, conn->gid,
SNUM(conn), conn->server_info->unix_name,
conn->connectpath, conn->server_info->utok.gid,
conn->server_info->sanitized_username,
pdb_get_domain(conn->server_info->sam_account),
afs_username);

View File

@ -23,6 +23,7 @@
#define NO_ASN1_TYPEDEFS 1
#include <afs/param.h>
#include <afs/stds.h>
#include <afs/afs.h>
#include <afs/auth.h>
@ -37,7 +38,24 @@ int afs_syscall( int subcall,
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 {