1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-26 10:04:02 +03:00

1310 Commits

Author SHA1 Message Date
Andrew Bartlett
dc9f55dbec r1294: A nice, large, commit...
This implements gensec for Samba's server side, and brings gensec up
to the standards of a full subsystem.

This means that use of the subsystem is by gensec_* functions, not
function pointers in structures (this is internal).  This causes
changes in all the existing gensec users.

Our RPC server no longer contains it's own generalised security
scheme, and now calls gensec directly.

Gensec has also taken over the role of auth/auth_ntlmssp.c

An important part of gensec, is the output of the 'session_info'
struct.  This is now reference counted, so that we can correctly free
it when a pipe is closed, no matter if it was inherited, or created by
per-pipe authentication.

The schannel code is reworked, to be in the same file for client and
server.

ntlm_auth is reworked to use gensec.

The major problem with this code is the way it relies on subsystem
auto-initialisation.  The primary reason for this commit now.is to
allow these problems to be looked at, and fixed.

There are problems with the new code:
- I've tested it with smbtorture, but currently don't have VMware and
  valgrind working (this I'll fix soon).
- The SPNEGO code is client-only at this point.
- We still do not do kerberos.

Andrew Bartlett
(This used to be commit 07fd885fd488fd1051eacc905a2d4962f8a018ec)
2007-10-10 12:56:49 -05:00
Stefan Metzmacher
118f3edd27 r1291: rename struct smbsrv_context to smbsrv_connection
because this is the connection state per transport layer (tcp)
connection

I also moved the substructs directly into smbsrv_connection,
because they don't need a struct name and we should allway pass the complete
smbsrv_connection struct into functions

metze
(This used to be commit 60f823f201fcedf5473008e8453a6351e73a92c7)
2007-10-10 12:56:49 -05:00
Stefan Metzmacher
b87fa55bdc r1286: rename struct tcon_context to smbsrv_tcon
metze
(This used to be commit a6c0ca9de52b2395b092cb245bb94cbd55dfdd46)
2007-10-10 12:56:49 -05:00
Stefan Metzmacher
8bf537d119 r1280: rename struct request_context to smbsrv_request
metze
(This used to be commit a85d2db5826a84b812ea5162a11f54edd25f74e3)
2007-10-10 12:56:48 -05:00
Stefan Metzmacher
4ddb2d347d r1279: rename struct tcon_context to smbsrv_tcon
metze
(This used to be commit 99473fab4b1ff87a795f3c08f4c521d9beb504c0)
2007-10-10 12:56:48 -05:00
Stefan Metzmacher
d4ae6ae74d r1277: rename struct server_context to smbsrv_ontext
because I need server_context fot the generic server infastructure

metze
(This used to be commit 0712f9f30797e65362c99423c0cf158a2f539000)
2007-10-10 12:56:48 -05:00
Tim Potter
37fcf22364 r1268: varient -> variant
(This used to be commit de5984c95602ca67e8ac3139c3aa4330b74266e0)
2007-10-10 12:56:46 -05:00
Andrew Tridgell
b00103dac1 r1165: fixed handling of SMBtrans replies that should return STATUS_BUFFER_OVERFLOW when more data is present.
(This used to be commit 0e557fe85748558affd20a58455c4b75fee69e27)
2007-10-10 12:56:42 -05:00
Andrew Bartlett
b1268fc445 r1123: Make all lp_ string functions return 'const char *'.
Fix other 'const' warnings in the torture code.

Andrew Bartlett
(This used to be commit 5d39d7497f189da15d659b3f83b7314026040a15)
2007-10-10 12:56:38 -05:00
Stefan Metzmacher
b717b40235 r1078: the dxesrv_crypto_* implementations should now explicit set
the dce_conn->auth_state.session_info
( the ntlmssp one works fine, but the schannel one isn't implemented yet)

this is also set by the ntvfs_ipc backend on the endpoint connect.

metze
(This used to be commit ad3dd1789e9f124493519cb4731d9f5a563fd051)
2007-10-10 12:56:37 -05:00
Andrew Bartlett
0d466258be r1019: Push the auth subsystem away from using typedef, and over to the 'all
goodness and light' struct ;-)

Break apart the auth subsystem's return strucutres, into the parts
that a netlogon call cares about, and the parts that are for a local
session.  This is the 'struct session_info' and it will almost
completly replace the current information stored on a vuid, but be
generic to all login methods (RPC over TCP, for example).

Andrew Bartlett
(This used to be commit d199697014d9562f9439a30b950fda798c5ef419)
2007-10-10 12:56:28 -05:00
Stefan Metzmacher
770e3307ce r962: convert 'unsigned' and 'unsigned int' to uint_t
metze
(This used to be commit 57151e80eb1090281401930c8fe25b20a8cf3a38)
2007-10-10 12:56:23 -05:00
Stefan Metzmacher
fcd718c7d8 r890: convert samba4 to use [u]int8_t instead of [u]int8
metze
(This used to be commit 2986c5f08c8f0c26a2ea7b6ce20aae025183109f)
2007-10-10 12:56:16 -05:00
Stefan Metzmacher
f88bf54c7f r889: convert samba4 to use [u]int16_t instead of [u]int16
metze
(This used to be commit af6f1f8a01bebbecd99bc8c066519e89966e65e3)
2007-10-10 12:56:16 -05:00
Stefan Metzmacher
f9d8f8843d r884: convert samba4 to use [u]int32_t instead of [u]int32
metze
(This used to be commit 0e5517d937a2eb7cf707991d1c7498c1ab456095)
2007-10-10 12:56:15 -05:00
Andrew Tridgell
579c13da43 r873: converted samba4 to use real 64 bit integers instead of
structures. This was suggested by metze recently.

I checked on the build farm and all the machines we have support 64
bit ints, and support the LL suffix for 64 bit constants. I suspect
some won't support strtoll() and related functions, so we will
probably need replacements for those.
(This used to be commit 9a9244a1c66654c12abe4379661cba83a73c4c21)
2007-10-10 12:56:14 -05:00
Stefan Metzmacher
b744493be5 r862: remove acl and sendfile stuff
it will be readded inside the ntvfs_posix module

metze
(This used to be commit ec624aefa86934da23105a5c014080b464efac28)
2007-10-10 12:56:13 -05:00
Stefan Metzmacher
cfc2f3c5ab r766: convert ntvfs/* to a config.mk file
metze
(This used to be commit 62d456c144e76b0d14225c2eed5b35bdf9650057)
2007-10-10 12:53:49 -05:00
Stefan Metzmacher
b340a61cb9 r755: - disallow process_model _thread when we don't have pwread/pwrite
and have to use the nonthreadsafe wrapper
- add pread/pwrite wrapper to ntvfs_simple
- fix const warning in ntvfs_simple

metze
(This used to be commit f0b2e42978a28204f497cccb07e407f409e3bf50)
2007-10-10 12:53:48 -05:00
Stefan Metzmacher
f236700ef6 r665: merge over the new build system from my tmp branch
to the main SAMBA_4_0 tree.

NOTE: that it's not completely ready, but it's functional:-)

metze
(This used to be commit c78a2ddb28ec50d6570a83b1f66f18a5c3621731)
2007-10-10 12:53:36 -05:00
Andrew Tridgell
0f581e4af9 r623: setUserInfo level 24 (password set) now works in the SAMR server. This includes all
of the password complexity, password history and other password restrictions.
(This used to be commit cb070b9084d95cf5178edbef951b75eab62b7220)
2007-10-10 12:51:55 -05:00
Stefan Metzmacher
8aa6f931d6 r313: add the warning about fileaccess as user 'root'
to a README file and DEBUG(0,()) it on each tree connect

metze
(This used to be commit d52eb75107f291635afcfbe5b79d863f54349793)
2007-10-10 12:51:20 -05:00
Stefan Metzmacher
ee0588bb6f r312: let ntvfs posix backend return NT_STATUS_ACCESS_DENIED in the connect hook
and print out an error message to the debug log which say:
use 'cifs' or 'simple' as ntvfs handler
this also warns about 'root' fileaccess in the 'simple' module

the 'default' ntvfs handler is now registered by the posix backend

metze
(This used to be commit 84b3589daa60cfdd2c868d9468192b0a6e1eebae)
2007-10-10 12:51:20 -05:00
Andrew Tridgell
ac193579e7 r152: a quick airport commit ....
added ldbedit, a _really_ useful command

added ldbadd, ldbdel, ldbsearch and ldbmodify to build

solved lots of timezone issues, we now pass the torture tests with
client and server in different zones

fixed several build issues

I know this breaks the no-LDAP build. Wait till I arrive in San Jose for that
fix.
(This used to be commit af34710d4da1841653624fe304b1c8d812c0fdd9)
2007-10-10 12:51:11 -05:00
Stefan Metzmacher
91b30df39b r147: - Remove dublicate ldap tests (richard the current test is in libads/config.m4 :-)
- Move sendfile check to ntvfs/config.m4
- Move comparison_fn_t check to build/m4/rewrite.m4

Please do not new tests to configure.in directly,
please add them to the subsystems config.m4 file where they belong to or
to build/m4/rewrite.m4 if you don't know where to put it for now

Thanks

I know samba4's build system is not completly rewritten.
I have a lot of updatest in my local tree, but it's not complete yet
when it's complete I'll write documentation for it:-)

metze
(This used to be commit 31c23f14d60a4aa41e0500e369f25ed6dc7ddae7)
2007-10-10 12:51:11 -05:00
Andrew Tridgell
2f4bb85be5 r114: - remember to initialise open_files
- use talloc_p when possible
(This used to be commit db7f7ac165ded15f0b8157eb899ea6828a033da9)
2007-10-10 12:51:09 -05:00
Andrew Tridgell
a8dfb92795 r113: added support for "read only = yes" in simple backend
(This used to be commit d268e455f15ec0d2b9e9e7abd8c7135ff4c19fcd)
2007-10-10 12:51:09 -05:00
Andrew Tridgell
2aee840667 r112: the simple backend now registers as both "simple" and "default"
so older smb.conf settings will work
(This used to be commit 6f6285ce603b55b1c68cf54621e22aa777b6c5c5)
2007-10-10 12:51:08 -05:00
Andrew Tridgell
19680ba4df r65: added support for file streams in the simple NTVFS backend
(This used to be commit 9a9cc44a05510a69ad902db4d01dc12b6ac4f8ba)
2007-10-10 12:50:41 -05:00
Andrew Tridgell
5e31a56e72 add config hints for cifs backend
(This used to be commit bba81f1c7a87499f610ca19fbc5f1485d368c5b8)
2004-03-10 04:07:02 +00:00
Andrew Tridgell
77f39da075 make sure the tags in the NBENCH test match the tags in the generated
load files
(This used to be commit 1c5dc25b3b678d7c5d271cc9bee5bf80cfbec3b9)
2004-03-09 05:06:57 +00:00
Andrew Tridgell
1b71c60c36 fixed the label for search requests
(This used to be commit 8dbf08549e17a48a5cff114671122edb035dd900)
2004-03-09 02:01:42 +00:00
Andrew Tridgell
1f6b3f5b5b fixed a typo
(This used to be commit 10b137c6e3c1a640597ff4a0db10d635b51b806b)
2004-03-08 09:13:35 +00:00
Andrew Tridgell
b53aad11d5 added the "nbench" ntvfs backend. This is used to capture NBENCH load
files, and also serves as an example of how to write a NTVFS filter
module for Samba4.
(This used to be commit 04f8996dd32d92c5df1b6b1b27c6e71e99bc77da)
2004-03-08 07:17:15 +00:00
Andrew Tridgell
ab615698ad in the async socket handling routines in the cifs backend don't assume
that conn->ntvfs_private is set correctly, instead use our copy of the
private pointer in the fde callback. This allows the cifs backend to
be used on conjunction with a NTVFS filter module.
(This used to be commit 8047b806e78815706bca81a77d04d5874ffd7d6e)
2004-03-08 07:13:11 +00:00
Stefan Metzmacher
f848aff0c2 if vfs_cifs want to modify the ntvfs_ops struct, it should
use a temporary copy of the struct!

metze
(This used to be commit 372522c64f2aea76b3fe136752d4da40e61d2bec)
2004-02-03 12:37:54 +00:00
Stefan Metzmacher
009fa83b13 move include/ntvfs.h to ntvfs/ntvfs.h
metze
(This used to be commit 041dc8c83df21c4cff9a62b9381ebc68b3876e77)
2004-02-03 11:18:54 +00:00
Stefan Metzmacher
1c798aba40 - port AUTH and PASSDB subsystems to new
SMB_SUBSYSTEM() scheme

- some const fixes in ntvfs

metze
(This used to be commit af89a78123068767b1d134969c5651a0fd978b0d)
2004-02-03 11:10:56 +00:00
Stefan Metzmacher
c61089219b - we now specify the object files in the subsystems config.m4 file
I plan to convert all objectfile group to use SMB_SUBSYSTEM
  later I'll add a SMB_BINARY() and SMB_LIBRARY(), then there will be no more need
  to touch Makefile.in, because all make rules will be autogenerated by configure

- convert the PROCESS_MODEL subsystem to this new scheme
  and move the pthread test to smbd/process_model.m4

- convert the CHARSET subsystem to this new scheme
  and move the iconv test to lib/iconv.m4
(This used to be commit 2e57ee884ebea194ee79ac20e84e385481b56aa2)
2004-02-02 13:43:03 +00:00
Stefan Metzmacher
894e02f80c some DEBUG and comment fixes
metze
(This used to be commit 5ac4f878687eb0fa95a2e5830a8372168a27d3b3)
2004-02-02 13:28:29 +00:00
Stefan Metzmacher
9b736c3d9e Makefile.in cleanups:
lib/util_smbd.c is not used anymore

reorder the SMB_MODULE() parameters the goal is to autogenerate the
make rules for shared modules:

dnl SMB_MODULE(1:name,2:subsystem,3:default_build,
		4:object_files,5:shared_object,6:libs
		7:whatif-static,8:whatif-shared,9:whatif-not)

and generate <SUBSYSTEM>_LIBS and MODULE_<name>_LIBS with the SMB_MODULE() macro

metze
(This used to be commit 904ce91ed9e3b26d591278984ae32fa99bac01fd)
2004-02-01 12:16:26 +00:00
Stefan Metzmacher
7de61be924 - remove all STFS related stuff
(which were already removed in revision 1.37 and
   readded by mistake in revision 1.39)

- change the SMB_MODULE() macro a bit
  Now we have:

dnl Specify the default build method of this module
dnl SMB_MODULE_DEFAULT(name,default_build)
AC_DEFUN(SMB_MODULE_DEFAULT,...

dnl Mark specified module as shared
dnl SMB_MODULE(name,default_build,static_files,shared_files,subsystem,whatif-static,whatif-shared,whatif-not)

  this let us specify the default build method inside of the included config.m4
  files

metze
(This used to be commit 92a3eb83d4bb07a7f1f87232e26831d05ab42915)
2004-01-28 15:43:18 +00:00
Andrew Tridgell
7a4da9654e dcerpc server output now copes with the client blocking part way
through a read. This happens to also avoid a memcpy on output for
dcerpc over tcp.
(This used to be commit e7c53ad1856e299d82d84b5837189ae3191c32de)
2004-01-20 05:54:17 +00:00
Stefan Metzmacher
7e6cf43756 This patch adds a better dcerpc server infastructure.
1.) We now register endpoint servers add startup via register_backend()
    and later use the smb.conf 'dcerpc endpoint servers' parameter to setup the dcesrv_context

2.) each endpoint server can register at context creation time as much interfaces as it wants
    (multiple interfaces on one endpoint are supported!)
    (NOTE:  there's a difference between 'endpoint server' and 'endpoint'!
	    for details look at rpc_server/dcesrv_server.h)

3.) one endpoint can have a security descriptor registered to it self
    this will be checked in the future when a client wants to connect
    to an smb pipe endpoint.

4.) we now have a 'remote' endpoint server, which works like the ntvfs_cifs module
    it takes this options in the [globals] section:

    dcerpc remote:interfaces = srvsvc, winreg, w32time, epmapper
    dcerpc remote:binding = ...
    dcerpc remote:user = ...
    dcerpc remote:password = ...

5.) we currently have tree endpoint servers: epmapper, rpcecho and remote

    the default for the 'dcerpc endpiont servers = epmapper, rpcecho'

    for testing you can also do
    dcerpc endpoint servers = rpcecho, remote, epmapper
    dcerpc remote:interfaces = srvsvc, samr, netlogon

6,) please notice the the epmapper now only returns NO_ENTRIES
    (but I think we'll find a solution for this too:-)

7.) also there're some other stuff left, but step by step :-)

This patch also includes updates for the
register_subsystem() , ntvfs_init(), and some other funtions
to check for duplicate subsystem registration


metze

(hmmm, my first large commit...I hope it works as supposed :-)
(This used to be commit 917e45dafd5be4c2cd90ff425b8d6f8403122349)
2004-01-08 22:55:27 +00:00
Stefan Metzmacher
8364fd2853 remove a useless assignment
metze
(This used to be commit 189ef6e73d04c3c02309b51a5b73e322abb82cdb)
2004-01-08 06:48:54 +00:00
Andrew Tridgell
24c22aef90 a fairly large commit!
This adds support for bigendian rpc in the client. I have installed
SUN pcnetlink locally and am using it to test the samba4 rpc
code. This allows us to easily find places where we have stuffed up
the types (such as 2 uint16 versus a uint32), as testing both
big-endian and little-endian easily shows which is correct. I have now
used this to fix several bugs like that in the samba4 IDL.

In order to make this work I also had to redefine a GUID as a true
structure, not a blob. From the pcnetlink wire it is clear that it is
indeed defined as a structure (the byte order changes). This required
changing lots of Samba code to use a GUID as a structure.

I also had to fix the if_version code in dcerpc syntax IDs, as it
turns out they are a single uint32 not two uint16s.

The big-endian support is a bit ugly at the moment, and breaks the
layering in some places. More work is needed, especially on the server
side.
(This used to be commit bb1af644a5a7b188290ce36232f255da0e5d66d2)
2003-12-16 09:02:58 +00:00
Andrew Tridgell
d4705378ce dcerpc over tcp in the samba4 server now works to some extent. It
needs quite a bit more work to get it finished. The biggest missing
feature is the lack of NTLMSSP which is needed for basic
authentication over tcp
(This used to be commit 9fb0f0369356909c99389e2cbc525be27c08793c)
2003-12-13 10:58:48 +00:00
Andrew Tridgell
8faa77f177 rpcdump.exe now works fine against a Samba4 server
for some reason the epm_Lookup replies can't be parsed by ethereal,
although w2k parses then fine as does the Samba4 NDR code.
(This used to be commit 097e7ca99d947932df5674c36e628ca6b8f31d3a)
2003-12-13 04:46:50 +00:00
Andrew Tridgell
16309de71d * the RPC-ECHO pipe now works in smbd, as long as the data sizes
don't cause fragmented pdus (I'll add fragments shortly)

 * change data_blob_talloc() to not zero memory when the 2nd argument
   is NULL. The zeroing just masks bugs, and can't even allow a DOS
   attack

 * modified pidl to ensure that [ref] arguments to the out side of
   functions are allocated when parsing the in side. This allows rpc
   backends to assume that [ref] variables are all setup. Doesn't work
   correctly for [ref] arrays yet

 * changed DLIST_ADD_END() to take the type instead of a tmp
   variable. This means you don't need to declare a silly tmp variable in
   the caller
(This used to be commit 46e0a358198eeb9af1907ee2a29025d3ab23b6d1)
2003-12-12 03:59:09 +00:00
Andrew Tridgell
fcc4efd1ea the next step in the dcerpc server code. Added the link between the
IPC IO routines and the dcerpc endpoint servers.
(This used to be commit 4929c53bc8dddda8a763fdfbcf81a79776d01113)
2003-12-11 09:07:45 +00:00