1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-15 23:24:37 +03:00

217 Commits

Author SHA1 Message Date
Andrew Tridgell
0ea5d1fde7 r596: log all ldb searches at level 4 in samdb
(This used to be commit defaf0d817a7c207da59692245aa65bc30c9bd19)
2007-10-10 12:51:49 -05:00
Andrew Tridgell
1d5c2c364e r595: nicer handling on max_size multiplier
(This used to be commit 994baba7ebc267cb3051109aee022d71472aa6b6)
2007-10-10 12:51:49 -05:00
Andrew Tridgell
35ffc46454 r587: added server code for samr_EnumDomainUsers, and started adding
samr_SetUserInfo and samr_QueryUserInfo
(This used to be commit e0db9659a85b59e52fbe033a94b411d6c64d9f9c)
2007-10-10 12:51:48 -05:00
Andrew Tridgell
0ed08d9398 r578: initial server side implementation of samr_CreateUser(),
samr_CreateUser2(), samr_LookupNames(), samr_OpenUser(),
and samr_DeleteUser()

this uses a user template in the SAM db, of objectclass "userTemplate"
and dn CN=TemplateUser,CN=Templates,$BASEDN. Using a template allows
an admin to add any default user attributes that they might want to
the user template and all new users will receive those attributes.
(This used to be commit 10b6e0011b5952c98432dc2d4b2058ac89a9cc2d)
2007-10-10 12:51:48 -05:00
Andrew Tridgell
998aab3d29 r514: added a context pointer to the samdb interface, as suggested by
metze. Also added a reference count so that a client can close the
connection handle and still used a derived domain handle.
(This used to be commit b1cd98188d6f1f8236f5dbc7a3605a39ae27fb73)
2007-10-10 12:51:46 -05:00
Andrew Tridgell
68293565de r513: added a generic ldb debug system to allow the Samba debug functions to
be cleanly interfaced to ldb
(This used to be commit 74b89d5f960d6b936751e3f057b4540eb80b79cd)
2007-10-10 12:51:46 -05:00
Andrew Tridgell
51803f76c8 r510: converted the samdb code to give ldb a talloc context rather than letting ldb use malloc
(This used to be commit a3edd4bca8769cd804a5908286c7a18ca5c8fa00)
2007-10-10 12:51:46 -05:00
Andrew Tridgell
1b3bbc7d44 r466: implemented samr_OpenDomain() and samr_GetDomPwInfo() server side calls
if you take a look at samr_GetDomPwInfo() then you will get a fairly good idea
of what I am planning for the database oriented SAMR server implementation.
(This used to be commit bba0044a514cf86cbcf14bc82dd6c49808c22dab)
2007-10-10 12:51:44 -05:00
Andrew Tridgell
d2ea763761 r465: we need common.h in two more rpc server pipes
(This used to be commit d96b68169a5ab46cc0550732d4fe94af75e06fd6)
2007-10-10 12:51:44 -05:00
Andrew Tridgell
21e6b1531b r464: a big improvement to the API for writing server-side RPC
servers. Previously the server pipe code needed to return the RPC
level status (nearly always "OK") and separately set the function call
return using r->out.result. All the programmers writing servers
(metze, jelmer and me) were often getting this wrong, by doing things
like "return NT_STATUS_NO_MEMORY" which was really quite meaningless
as there is no code like that at the dcerpc level.

I have now modified pidl to generate the necessary boilerplate so that
just returning the status you want from the function will work. So for
a NTSTATUS function you return NT_STATUS_XXX and from a WERROR
function you return WERR_XXX. If you really want to generate a DCERPC
level fault rather than just a return value in your function then you
should use the DCESRV_FAULT() macro which will correctly generate a
fault for you.

As a side effect, this also adds automatic type checking of all of our
server side rpc functions, which was impossible with the old API. When
I changed the API I found and fixed quite a few functions with the
wrong type information, so this is definately useful.

I have also changed the server side template generation to generate a
DCERPC "operation range error" by default when you have not yet filled
in a server side function. This allows us to correctly implement
functions in any order in our rpc pipe servers and give the client the
right information about the fault.
(This used to be commit a4df5c7cf88891a78d82c8d6d7f058d8485e73f0)
2007-10-10 12:51:44 -05:00
Andrew Tridgell
8db18a0775 r458: this is the (very primitive) beginnings of a SAMR server for
Samba4. I'm committing this now so I can get comments on the approach.

Note that you need to do something like this to initialise the SAM db:

 edit script/provision.pl
 script/provision.pl > provision.ldif.out
 bin/ldbadd /path/to/private/sam.ldb provision.ldif.out
(This used to be commit e2002e40a5abe0cd33a2056b1da8ba5732f9021f)
2007-10-10 12:51:44 -05:00
Andrew Tridgell
cac54feea8 r445: fixed the bind_nak code
(This used to be commit f3799e7720e13e12b59168cf4afbf2dfe87868f7)
2007-10-10 12:51:42 -05:00
Andrew Tridgell
9c92ac995d r441: added an example of how to use the remote rpc interface
(This used to be commit 62f59d1180cb97cbfd6e046072131fc486ade4bd)
2007-10-10 12:51:42 -05:00
Stefan Metzmacher
f517d6b7ae r424: let this code compile on every machine hopefully
metze
(This used to be commit 3e911db7c2cbcb38667f06e6b0282bce1b7991cb)
2007-10-10 12:51:37 -05:00
Andrew Tridgell
6cc392bff3 r374: allow for a policy_handle fetch using a handle type of
DCESRV_HANDLE_ANY. This is needed for operations like samr_Close()
that take any handle type.
(This used to be commit 6fbbfc4462388c4c86f9f0ddd3cdd99225512ef2)
2007-10-10 12:51:35 -05:00
Tim Potter
f3d3b3c809 r355: Fix a bunch of compiler warnings in the registry code.
(This used to be commit 0be7a866dc39e2d63c9c114d0f668287259e7c9e)
2007-10-10 12:51:34 -05:00
Stefan Metzmacher
55da6e7f90 r286: use talloc_array_p() instead of talloc()
add some more WERR_NOT_SUPPORTED stubs to pass our torture tests
(wkssvc and srvsvc)

metze
(This used to be commit f8605b39ab58f8db22358122eafccc8a1cc60004)
2007-10-10 12:51:19 -05:00
Stefan Metzmacher
fdcafdef0e r138: fix typo
metze
(This used to be commit 7e42465192e67563f19e6362e243b01406c5e025)
2007-10-10 12:51:10 -05:00
Jelmer Vernooij
aebfb3b9f4 r128: Another registry update. Changes:
- Start with the LDB backend
- The API is now more windows-like, which should make it easier to use
  in rpc_server
- Added a GTK+ front-end
- Added some more IDL

More updates will follow, especially in the RPC field..
(This used to be commit 3adffa021779b26047a20f16a3c0b53d74751560)
2007-10-10 12:51:09 -05:00
Stefan Metzmacher
d907dcf383 r127: NetWkstaGetInfo level 101
and return WERR_ACCESS_DENIED for level 102, 502 so does my winXP box
for a non-admin user

metze
(This used to be commit 975bf13f17e0bd95ec37af3534e5209c1de99252)
2007-10-10 12:51:09 -05:00
Stefan Metzmacher
8709182fd3 r126: - add first srvsvc and wkssvc server side stuff
- we know can browse the server via the Windows Explorer

- some little fixes to the winreg server pipe

metze
(This used to be commit 6f213a3494d3b5ab629944394b20a84075a04438)
2007-10-10 12:51:09 -05:00
Andrew Tridgell
1c5de896bc r67: added a destroy hook in the policy handle -> wire handle code to allow backends
to cleanup handle data
(This used to be commit af0c21c1e175ca2ebb687dc6dff83da919280271)
2007-10-10 12:50:41 -05:00
Jelmer Vernooij
f9235e0964 r62: Fix the build
(This used to be commit 1396db85372af1824592ef66f963603e3f35803c)
2007-10-10 12:50:41 -05:00
Jelmer Vernooij
b96025eb15 r61: - Implement first call in the winreg rpc server
- Add some initial implementation of the ldb backend
- More checks in the winreg torture test
(This used to be commit ae2b63b6f1821bc4f693cb8e2a5f78718c483c24)
2007-10-10 12:50:41 -05:00
Gerald Carter
381a903d00 r42: importing .cvsignore files
(This used to be commit 11717ae912449bde596ff6cf7d8fddcc86548f15)
2007-10-10 12:50:40 -05:00
Jelmer Vernooij
69c19afb62 r31: More registry updates. regdiff/regpatch work now.
(This used to be commit 98224f5436695eb265f5d997cf4bc9cf735a4fb9)
2007-10-10 12:50:40 -05:00
Jelmer Vernooij
c424c2b857 r20: Add the registry library. Still needs a lot of work,
see source/lib/registry/TODO for details.
(This used to be commit 7cab3a00d7b4b1d95a3bfa6b28f318b4aaa5d493)
2007-10-10 12:50:33 -05:00
Gerald (Jerry) Carter
3855ee0164 [GLUE] Sync tree with SVN r17.
(This used to be commit 6e50109b664ff5fcc3d27f676d101c2b36574a63)
2007-10-10 12:39:20 -05:00
Stefan Metzmacher
0b4da9d7e0 - add 'print' to the DCERPC binding strings
e.g.
  ncacn_np:myserver:[samr,sign,print]

  will now enable the packet debugging

  and the debugging is not bound anymore to the debuglevel >= 2
  in the torture tests

- also the dcesrv_remote module now supports debugging of the packets
  use the 'dcerpc_remote:binding' smb.conf parameter.

metze
(This used to be commit 40abf3c584efed7f977ddd688ea064540e5a5b13)
2004-02-03 14:56:07 +00:00
Stefan Metzmacher
b884eba104 const fixes
metze
(This used to be commit a2beaa0823f899ae9f49c2e624f5e10263c5c26b)
2004-02-02 14:46:25 +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
Andrew Tridgell
4d39861f99 avoid a copy of the data being input to the dcerpc server in the most
common case of there being no pending partial data and a full dcerpc
packet being received.

We should use this same model for the smb server. It gives us
efficient memory usage while allowing for completely async socket
operations.
(This used to be commit 9aab321fb6e2f3499efd8ca5bc88ce2cb8e68219)
2004-01-20 04:32:17 +00:00
Andrew Tridgell
8fb8c40d3b fixed the rpc epmapper server. This fixes rpc over tcp.
(This used to be commit 6ac547fa5fe4b1926bafc46e500b51486c7d500d)
2004-01-09 02:43:23 +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
Andrew Tridgell
db22c0c5f9 added a bunch of alias functions in samr.idl based on work by Kai.
(This used to be commit f740b02ac36780740700909da2bcdf672cb146cb)
2003-12-19 03:59:27 +00:00
Andrew Tridgell
7efa19cd22 added a smb.conf flag "rpc big endian" that tells our rpc server to
send packets in bigendian format.
(This used to be commit 44df662960e662a55a9f27627f838771503a7a59)
2003-12-17 02:06:44 +00:00
Andrew Tridgell
6f12e4ace1 it turns out that a wire policy handle isn't a blob either, its a
uint32 followed by a GUID. I needed to fix this to support running in
mixed-mode rpc (where smbtorture is bigendian and w2k3 is
little-endian). Otherwise when you send back a policy handle the
server doesn't recognise it.
(This used to be commit 9b1c76a8e9e953e051072441f8938ee17a674d35)
2003-12-16 09:50:49 +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
a22917260c zero length echo is not an error
(This used to be commit f21d6351d0441e5bc77aca07a2863ef9f999bb92)
2003-12-15 01:06:01 +00:00
Andrew Tridgell
79990c727c fixed the transfer syntax in the dcerpc bind reply
(This used to be commit 39a7c660f4b7cafb0414842329669dd4724b07db)
2003-12-15 00:40:57 +00:00
Andrew Tridgell
f6eb8342cb added auto-generation of the server side boilerplate code for each
pipe.

The server side code gets generated as librpc/gen_ndr/ndr_NAME_s.c and
gets included in the pipe module
(This used to be commit bd3dcfe5820489a838e19b244266bd9126af5eb4)
2003-12-14 13:22:12 +00:00
Andrew Tridgell
a05882b34b fixed fragmented signed connections to our rpc server over SMB
(This used to be commit f5df126c254bcb96dfb42096d7247215c7e7a89a)
2003-12-14 12:21:21 +00:00
Andrew Tridgell
d009dc61f9 ntlmssp over rpc over tcp now fully works
I needed to hack the ntlmssp code a little, as the auth code in samba4
is out of date relative to the samba3 auth code. I need to do a merge :)
(This used to be commit 6ee0935afe9444bf9bb24eed4e02e8377dc746b7)
2003-12-14 10:45:50 +00:00
Andrew Tridgell
089ae5e435 fixed some memory leaks in the rpc server code
(This used to be commit 20458556017f426ab57ca9a9d098cacecefbdcff)
2003-12-14 03:51:48 +00:00
Andrew Tridgell
8f6b3eb1a9 fixed a bug handling multiple PDUs being read from a socket at one
time in the rpc server.

started on the framework for the dcerpc authentication server code
(This used to be commit 74041b6a0a60d792e1b220496d66ec27b9ee6c25)
2003-12-14 01:09:10 +00:00
Andrew Tridgell
d262b8c3c7 completed the linkage between the endpoint mapper and the dcerpc
server endpoints. We can now successfully setup listening endpoints on
high ports, then use our endpoint mapper redirect incoming clients to
the right port.

also greatly cleanup the rpc over tcp session handling.
(This used to be commit 593bc29bbe0e46d356d001160e8a3332a88f2fa8)
2003-12-13 23:25:15 +00:00