1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-05 09:18:06 +03:00
Commit Graph

229 Commits

Author SHA1 Message Date
Stefan Metzmacher
a9b28120b8 make more function static, they are still available via the function pointers
metze
(This used to be commit 4597643e76)
2004-02-03 11:05:36 +00:00
Andrew Tridgell
fb15b95bc5 added a little bit of const magic to get rid of the data in librpc/gen_ndr/*.o
(This used to be commit 866ef2edab)
2004-01-22 01:12:43 +00:00
Andrew Tridgell
8ae5b50a6e added code to the RPC-SPOOLSS test that demonstrates that policy
handles are not shared between open dcerpc connections, even when
those connections are on the same SMB socket. I have tested this with
w2k3, w2k and NT4. It seems that policy handles have a strict scope of
the dcerpc connection on which they were opened.

I realise that this goes against existing folk-law in the team, but it
seems that the previous testing (I'm not sure who did this?) was
wrong. Perhaps clients do send us policy handles from other
connections, but if they do then the correct thing to do is to fail
the operation with a dcerpc fault. I suspect that failing it with
exactly the right dcerpc fault code is important.
(This used to be commit 2ed24d29ba)
2004-01-20 06:07:09 +00:00
Andrew Tridgell
b827102934 added dom_sid_string() function
(This used to be commit 399f95536b)
2004-01-11 05:16:07 +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 917e45dafd)
2004-01-08 22:55:27 +00:00
Andrew Tridgell
2558f81a8d the endpoint mapper now works in bigendian mode
(This used to be commit 1f89d89954)
2003-12-31 01:32:33 +00:00
Andrew Tridgell
25fe9bc2a1 latest srvsvc and wkssvc IDL from metze
(This used to be commit 59557a557d)
2003-12-20 21:50:51 +00:00
Andrew Tridgell
77fb98ac7c addition of samr_SetSecurity() from kai
we needed to adjust the alignment of [relative] buffers for this to
work. I wonder if they are always 4 byte aligned?
(This used to be commit 9cd0a0b8b9)
2003-12-19 23:44:26 +00:00
Andrew Tridgell
a8400ce610 fixed removal of moe than one ncacn_* option from option list
(This used to be commit 09a9b25c8d)
2003-12-19 04:26:26 +00:00
Andrew Tridgell
98e66d0449 fixed the AddAliasMem test code
(This used to be commit abe7ffcece)
2003-12-19 04:13:39 +00:00
Andrew Tridgell
db22c0c5f9 added a bunch of alias functions in samr.idl based on work by Kai.
(This used to be commit f740b02ac3)
2003-12-19 03:59:27 +00:00
Andrew Tridgell
8369293090 fixed a segv in RPC-* when debug level > 2
thanks to Kai for spotting this!
(This used to be commit 0fc42c33d3)
2003-12-17 21:37:34 +00:00
Tim Potter
a2ec4b990d Fix typo.
(This used to be commit 3f1b781c56)
2003-12-17 03:38:06 +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 44df662960)
2003-12-17 02:06:44 +00:00
Andrew Tridgell
60deb10a2c fixed formatting of uuids in debug output
(This used to be commit 7895796ef8)
2003-12-16 12:11:00 +00:00
Andrew Tridgell
b3b10bce33 added a define for the DCERPC little-endian data representation flag
(This used to be commit 691f9c1c44)
2003-12-16 11:24:28 +00:00
Andrew Tridgell
6ba28732ec fixed the RPC-MGMT and RPC-SCANNER tests to work with the new
dcerpc_binding_string code
(This used to be commit 1fa68c18fa)
2003-12-16 10:57:17 +00:00
Andrew Tridgell
ecc2519594 no longer require the pipe name or tcp port number to be the first
option in the ncacn_* syntax
(This used to be commit 74f36d32bb)
2003-12-16 10:15:21 +00:00
Andrew Tridgell
68d84436a1 use bigendian mode to fix the idl for samr_LogonHours
(This used to be commit 1056618b6a)
2003-12-16 10:09:02 +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 9b1c76a8e9)
2003-12-16 09:50:49 +00:00
Andrew Tridgell
7779b1e000 added support for big-endian ucs2 strings (as used by big-endian
msrpc).

this was easier than I expected!
(This used to be commit a0a51af6b7)
2003-12-16 09:20:34 +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 bb1af644a5)
2003-12-16 09:02:58 +00:00
Andrew Tridgell
5b03596529 fixed srvsvc DiskEnum call
strangely, the output doesn't seem to contain an info level. Some
programmer stuffed up the IDL :)
(This used to be commit a39ee5d003)
2003-12-15 10:21:09 +00:00
Andrew Tridgell
0a61036257 patch from metze with updates to srvsvc and changes to pidl to allow
for the server rpc boilerplate to correctly generate for multiple
interfaces on an endpoint
(This used to be commit 56143689ec)
2003-12-15 09:18:53 +00:00
Andrew Tridgell
8431335ec5 more flexible handling of [] in binding strings
(This used to be commit edc67fffea)
2003-12-15 03:41:08 +00:00
Andrew Tridgell
71f81d1d3e allow the specification of full dcerpc endpoint binding strings on the
command line. This allows you to (for example) control signing/sealing
of smbtorture RPC sessions
(This used to be commit a73825eb49)
2003-12-15 03:29:55 +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 bd3dcfe582)
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 f5df126c25)
2003-12-14 12:21:21 +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 74041b6a0a)
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 593bc29bbe)
2003-12-13 23:25:15 +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 9fb0f03693)
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 097e7ca99d)
2003-12-13 04:46:50 +00:00
Andrew Tridgell
da86d3af31 added the epm_Map() call.
the RPC-EPMAPPER torture test now passes
(This used to be commit fbdcf9ef54)
2003-12-13 03:23:41 +00:00
Andrew Tridgell
340d9b71f9 added a basic dcerpc endpoint mapper to Samba4. Currently only
implements the epm_Lookup() call, I'll add the other important calls
soon. I was rather pleased to find that epm_Lookup() worked first
time, which is particularly surprising given its complexity.

This required quite a bit of new infrastructure:

  * a generic way of handling dcerpc policy handles in the rpc server

  * added type checked varients of talloc. These are much less error
    prone. I'd like to move to using these for nearly all uses of
    talloc.

  * added more dcerpc fault handling code, and translation from
    NTSTATUS to a dcerpc fault code

  * added data_blob_talloc_zero() for allocating an initially zero
    blob

  * added a endpoint enumeration hook in the dcerpc endpoint server
    operations
(This used to be commit 3f85f9b782)
2003-12-13 02:20:40 +00:00
Tim Potter
a79be6e377 Small cleanup of test code. Rename enum indexes to be the same name
for EnumKey and EnumValue.
(This used to be commit 817a2fe2e5)
2003-12-12 11:49:29 +00:00
Tim Potter
6fba6f5ca3 Got winreg_EnumValue working - what a mess!
(This used to be commit cc494086e7)
2003-12-12 06:29:21 +00:00
Tim Potter
d68d1558f7 Added routines for arrays of uint16s.
(This used to be commit 370512f664)
2003-12-12 06:26:34 +00:00
Andrew Tridgell
fece5b7aba added support for sending bind_nak replies in the rpc server
(This used to be commit 6e7c50bcd9)
2003-12-12 06:12:41 +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 46e0a35819)
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 4929c53bc8)
2003-12-11 09:07:45 +00:00
Andrew Tridgell
e5ed18db65 more portable array of endpoints code from pidl
(This used to be commit c598590a11)
2003-12-10 23:49:55 +00:00
Andrew Tridgell
2bde98c0ee the rest of the initial rpc server side infrastructure
(This used to be commit 5fb01b0ec0)
2003-12-10 22:24:33 +00:00
Andrew Tridgell
55d2c54e03 re-wrote pidl to use Parse::Yapp instead of Parse::RecDescent, This
makes pidl about 3x faster, and also gives us much better error
reporting and a more standard grammer definition that will be much
easier to code in lex/yacc if we want to do so at a later
date. (Parse::Yapp uses essentially the same grammer file as lex/yacc)

It also means we no longer need Parse::RecDescent, which should make
pidl much more portable.
(This used to be commit 4bbaffeb44)
2003-12-07 13:38:07 +00:00
Andrew Tridgell
cdd782782f we can't have two functions with the same name
(This used to be commit 5f1cdc4839)
2003-12-04 01:19:03 +00:00
Tim Potter
61a2a79105 Updated some of the function names in the IDL.
(This used to be commit 718ee8bccc)
2003-12-03 11:31:29 +00:00
Andrew Bartlett
ec92e2f9a2 My first stab at Samba4 IDL!
This patch adds the samr_CreateUser2 function, which is create_user
in Samba 3.0.

This also adds a torture suite that checks for various valid and invalid
account flags, and that they are persistant.

Also, a patch by Anthony Liguori to fix the build

Andrew Bartlett
(This used to be commit 53e657b745)
2003-12-03 03:10:10 +00:00
Andrew Tridgell
ea507ee605 added netr_LogonControl2Ex()
I also added IDL for netr_DatabaseRedo() but I don't yet know how it
works

thats the last of the netlogon IDL !
(This used to be commit 387d8f25ff)
2003-12-02 12:16:08 +00:00
Andrew Tridgell
de32d669c6 added netr_DatabaseSync2()
(This used to be commit 0f6af0c4bd)
2003-12-02 12:01:10 +00:00
Andrew Tridgell
9ebe4489e7 added netr_LogonControl2() and netr_ServerAuthenticate2()
(This used to be commit cc4123db4b)
2003-12-02 11:43:09 +00:00
Andrew Tridgell
10ad200350 added netr_LogonControl() and netr_GetAnyDCName()
(This used to be commit 17b2be4e85)
2003-12-02 10:34:06 +00:00