1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-17 02:05:21 +03:00

177 Commits

Author SHA1 Message Date
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
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 a39ee5d00341e1dbde0b38474ba4d5e980e74538)
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 56143689ecf623e8a6ef5c453e6ad1ca9404411c)
2003-12-15 09:18:53 +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
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
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
da86d3af31 added the epm_Map() call.
the RPC-EPMAPPER torture test now passes
(This used to be commit fbdcf9ef548aefb1233cbb22a60bff3eacba996f)
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 3f85f9b782dc17417baf1ca557fcae22f5b6a83a)
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 817a2fe2e5824e6bb9547697d27c66c0c8356181)
2003-12-12 11:49:29 +00:00
Tim Potter
6fba6f5ca3 Got winreg_EnumValue working - what a mess!
(This used to be commit cc494086e796c0090a92ac36012727c67e3587d1)
2003-12-12 06:29:21 +00:00
Andrew Tridgell
fece5b7aba added support for sending bind_nak replies in the rpc server
(This used to be commit 6e7c50bcd9929b6b1400b3155f55e6c9a4a730b3)
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 46e0a358198eeb9af1907ee2a29025d3ab23b6d1)
2003-12-12 03:59:09 +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 4bbaffeb44dca99ad8c0245beb1fddbe01557215)
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 5f1cdc4839a1ba0b18bcd4525847f9c284d181ca)
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 718ee8bccc2357ffa7ea7cdec1bda6103e0fa24f)
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 53e657b74572ab329d4598a85e6989547c324209)
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 387d8f25ff4858943d1389974127d03a58bf4c8f)
2003-12-02 12:16:08 +00:00
Andrew Tridgell
de32d669c6 added netr_DatabaseSync2()
(This used to be commit 0f6af0c4bde0eb3758192b74dab797b558c944a1)
2003-12-02 12:01:10 +00:00
Andrew Tridgell
9ebe4489e7 added netr_LogonControl2() and netr_ServerAuthenticate2()
(This used to be commit cc4123db4baec6a217500dc55113f89e1ea8ef61)
2003-12-02 11:43:09 +00:00
Andrew Tridgell
10ad200350 added netr_LogonControl() and netr_GetAnyDCName()
(This used to be commit 17b2be4e859bd7f625214d7e7de9758b5ab5fb90)
2003-12-02 10:34:06 +00:00
Andrew Tridgell
02df116352 added netr_GetDcName() - quite a useful call
(This used to be commit 63f46b223e16a3495b4a4a48c6489f1f0d7d84c4)
2003-12-02 10:08:26 +00:00
Andrew Tridgell
16c688c9ea added netr_AccountSync(), another NT_STATUS_NOT_IMPLEMENTED call
according to w2k3
(This used to be commit b2ca00ebc57774000af2de6132c29db4c6daae28)
2003-12-02 10:04:10 +00:00
Andrew Tridgell
9ec4269760 added netr_AccountDeltas(), which w2k3 gives
"NT_STATUS_NOT_IMPLEMENTED" for
(This used to be commit aaf776a1c134d7b6112932f880e09ba497e8ebcf)
2003-12-02 09:52:15 +00:00
Andrew Tridgell
cea22e94fc netr_DatabaseDeltas() now works. We ask for the deltas associated with
the last two sequence numbers on each database.
(This used to be commit f9377c860315a8a4f380d70ff97309d3ffdb5c26)
2003-12-02 08:04:37 +00:00
Andrew Tridgell
a11727b930 * made some field names more consistent, and worked out that
unknown1 is profile_path

If we are going to use automatic backend database generation then we
are going to have to move to really consistent field names in all our
IDL. Thats the only way we are going to be able to automate it a
lot. That will take a couple of days to do when we get to it.
(This used to be commit 1732aae562927afc1ef4f30ef7787cf2d43063e2)
2003-12-02 05:37:49 +00:00
Andrew Tridgell
c7a1a69d2c don't pollute the structure name space so much
(This used to be commit 107307b4c69000d2025f4463c72ee38172c48ec5)
2003-12-02 05:17:02 +00:00
Andrew Tridgell
399496d9d9 netr_DatabaseSync() now works fully for databases 0, 1 and 2
(This used to be commit c4c09e9413d3886e030e98739121bbae81f80ca5)
2003-12-02 04:59:18 +00:00
Andrew Tridgell
9632db5a19 netr_DatabaseSync() now works fully for database 0
(This used to be commit 360d03bb56ec7d129ec0d62a701f4bf0ff3876af)
2003-12-02 04:33:57 +00:00
Andrew Tridgell
f9419900d3 initial netlogon database sync partly works - needs some IDL tweaks
(This used to be commit 75ea276c147e2b4b0617eb0b77276d5fb5da2043)
2003-12-02 04:05:05 +00:00
Andrew Tridgell
d65f0095c9 added netr_DatabaseSync(). It doesn't work as I haven't done schannel
yet, but at least the request is understood by w2k3

Also modified pidl to allow multiple branches in a union to have the
same element. This is used in netlogon.
(This used to be commit 983c0e9683fa9666a6e055d1776ebeef8cd2e700)
2003-12-02 03:06:21 +00:00
Andrew Tridgell
2e70035f87 another big improvement in the credentials API. I think it now
actually makes sense, and as a nice side effect it matches the debug
output of the w2k3 netlogon.log
(This used to be commit 3c7287c24e5970e5b7447ad042848505537c7d3b)
2003-12-02 02:15:33 +00:00
Andrew Tridgell
06ae424835 * netr_ServerPasswordSet() now works - the test suite changes the
machine account password.

  * neater handling on value() options in IDL. The auto-print code
    will now display the right value so you don't need to initialise
    it in your C code
(This used to be commit 3dd978b12bb5571fba4e1839c0f7ee60cf729aa2)
2003-12-02 00:31:54 +00:00
Andrew Tridgell
8b30b0071c * another small API change in the credentials code
* don't use static variables in the smbdes code
(This used to be commit e6e09064646c347169852fa162c72fc0542c6d5c)
2003-12-01 22:13:11 +00:00
Andrew Tridgell
f9e2a8af39 neater credentials handling in netlogon client code
(This used to be commit b7d748f499f79415b444e7cebe7d8de7186fbc94)
2003-12-01 12:41:54 +00:00
Andrew Tridgell
a6cf6cada9 added netr_LogonSamLogon() and test code
(This used to be commit 4fa3ad3ecbfd8f8663fcdfaba9a7db481e303f2b)
2003-12-01 09:28:10 +00:00
Andrew Tridgell
b4b0177fdb added netr_ServerAuthenticate() and test code
I would like the netlogon test suite to eventually do a new domain
join using a fake workstation name, then remove itself afterwards, but
for now I'm assuming we are already joined to the domain when the
testsuite runs. This means you need to use the Samba3 net command to
do a join before running RPC-NETLOGON
(This used to be commit 8c7a9446a0892a4f7722cced5019667f7a9fafdd)
2003-12-01 04:13:43 +00:00
Andrew Tridgell
5b46116923 added netr_ServerReqChallenge and cleaned up byte array printing
(This used to be commit bb42107dccf3a384a4a5c029b4d2752e0898d7cb)
2003-12-01 03:19:43 +00:00
Andrew Tridgell
b0531a38cc started adding netlogon IDL and test suite
(This used to be commit 3d64eefb464d09fb6e84d6139f801887a278cf86)
2003-12-01 01:41:38 +00:00
Tim Potter
d944b9780a Added EnumPrinterDriver, GetPrinterDriver (still in progress)
(This used to be commit a818439b5915fd70b8aa3d3045f658b3f59a6bea)
2003-11-30 11:57:40 +00:00
Tim Potter
2bb7ff5915 GetPrinterDataEx, SetPrinterDataEx, DeletePrinterDataEx.
(This used to be commit e8367f57356bc3da78a6217158f9d639ba4ca5fa)
2003-11-28 11:50:33 +00:00
Tim Potter
d55fc1c9f2 Add SetPrinterData, DeletePrinterData.
(This used to be commit ea534f82d0620cbda5a960e492ec2fc1702fe975)
2003-11-28 10:34:58 +00:00
Andrew Tridgell
7ec0ead48a the beginnings of an automated tool for working out IDL properties of
a pipe. I'm not sure how possible this will be without lots of human
intervention, but its an interesting thing to try.
(This used to be commit d5afe7c6a8651457da9438fcf0035c792701ac86)
2003-11-28 08:51:09 +00:00
Tim Potter
b0ba0462a4 Fix bug in EnumPrinterData test.
Implement GetPrinterData RPC.
(This used to be commit 270c4fe389fb67ccbe0b9174267b40738ca43052)
2003-11-28 06:39:06 +00:00
Andrew Tridgell
ba33beec05 * added a bunch of placeholder IDL files
* allow for an interface to list its endpoints in the IDL file, so we
   can automatically make the server listen on the right pipes, and
   can scan pipes more easily (I don't take advantage of this yet,
   just putting the infrastructure in place)
(This used to be commit c8b8480244b4ab6204403dc65e92e4317b410a84)
2003-11-28 05:20:11 +00:00
Tim Potter
d419464d87 Added EnumJobs, GetJob, SetJob RPCs.
(This used to be commit a06cbbbf1fa1e873bb13bc86d14694b2af791e22)
2003-11-28 05:02:32 +00:00
Andrew Tridgell
07fdc2c73e * support multiple interfaces in one IDL file in pidl
* make far more generated functions static

 * get rid of gen_rpc, and include the client calls in ndr_*.c

 * added placeholder IDL for a number of intefaces (dcom, wzcsvc, browser etc)
(This used to be commit a2bdf0be0119023df3c2b9ea515ed355020f2625)
2003-11-28 03:47:45 +00:00
Tim Potter
abff8aac56 Implemented SetForm RPC.
(This used to be commit bdb0dfc370b4deb9e7f5a381092538c3e502f191)
2003-11-27 20:55:13 +00:00
Tim Potter
6aee8274ef Add DeleteForm, start cleaning up tests.
(This used to be commit 10b31623fd421d341787d0769839ea5dca5ae7c0)
2003-11-27 09:50:25 +00:00