1
0
mirror of https://github.com/samba-team/samba.git synced 2025-10-31 12:23:52 +03:00

r3518: fixed some includes to be consistent.

- use #include <XXX.h> for operating system includes
 - use includes relative to include/ for things like system/wait.h

also fixed the thread backend to work somewhat. To fix it properly we need to do this:

 - add a configure test for support for thread local storage (the __thread keyword)
 - refuse to do pthreads if tls doesn't work
 - refuse to do pthreads if seteuid() affects process instead of thread
 - defined THREAD_LOCAL as __thread when WITH_PTHREADS
 - add THREAD_LOCAL to all the global data structures that should be
   thread local (there are quite a few)

right now the thread backend falls over when you hit it with several
connections at once, due to the lack of __thread on some critical
structures.
This commit is contained in:
Andrew Tridgell
2004-11-04 02:19:25 +00:00
committed by Gerald (Jerry) Carter
parent a5c9e0a185
commit 0dc1deabd0
3 changed files with 12 additions and 25 deletions

View File

@@ -173,7 +173,6 @@ static NTSTATUS receive_smb_request(struct smbsrv_connection *smb_conn)
These flags determine some of the permissions required to do an operation
*/
#define AS_USER (1<<0)
#define USE_MUTEX (1<<1)
/*
define a list of possible SMB messages and their corresponding
@@ -299,12 +298,12 @@ static const struct smb_message_struct
/* 0x6d */ { NULL, NULL, 0 },
/* 0x6e */ { NULL, NULL, 0 },
/* 0x6f */ { NULL, NULL, 0 },
/* 0x70 */ { "SMBtcon",reply_tcon,USE_MUTEX},
/* 0x70 */ { "SMBtcon",reply_tcon,0},
/* 0x71 */ { "SMBtdis",reply_tdis,0},
/* 0x72 */ { "SMBnegprot",reply_negprot,USE_MUTEX},
/* 0x73 */ { "SMBsesssetupX",reply_sesssetup,USE_MUTEX},
/* 0x72 */ { "SMBnegprot",reply_negprot,0},
/* 0x73 */ { "SMBsesssetupX",reply_sesssetup,0},
/* 0x74 */ { "SMBulogoffX", reply_ulogoffX, 0}, /* ulogoff doesn't give a valid TID */
/* 0x75 */ { "SMBtconX",reply_tcon_and_X,USE_MUTEX},
/* 0x75 */ { "SMBtconX",reply_tcon_and_X,0},
/* 0x76 */ { NULL, NULL, 0 },
/* 0x77 */ { NULL, NULL, 0 },
/* 0x78 */ { NULL, NULL, 0 },
@@ -520,15 +519,7 @@ static void switch_message(int type, struct smbsrv_request *req)
return;
}
/* THREAD TESTING: use mutex to serialize calls to critical
functions with global state */
if (flags & USE_MUTEX) {
MUTEX_LOCK_BY_ID(MUTEX_SMBD);
}
smb_messages[type].fn(req);
if (flags & USE_MUTEX) {
MUTEX_UNLOCK_BY_ID(MUTEX_SMBD);
}
}