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

666 Commits

Author SHA1 Message Date
Andrew Tridgell
bd3dcfe582 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
-
Simo Sorce
2afbd1e000 typo -
Andrew Tridgell
f5df126c25 fixed fragmented signed connections to our rpc server over SMB -
Simo Sorce
6f33109b10 reduce double explanation of FIXED ARRAYS -
Andrew Tridgell
6ee0935afe 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 :)
-
Andrew Tridgell
5fed4681ed fix _ptr_ declaration -
Andrew Tridgell
2045855601 fixed some memory leaks in the rpc server code -
Andrew Tridgell
74041b6a0a 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
-
Andrew Tridgell
ebe29305af add the ntlmssp calls back into smbtorture on rpc over tcp. The samba4
rpc server doesn't do ntlmssp yet, so this breaks the tests, but that
is the next step.
-
Andrew Tridgell
593bc29bbe 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.
-
Andrew Tridgell
4f46606af8 make the IO in the dcerpc over TCP server completely async, handling
partial packets on both input and output
-
Andrew Tridgell
9fb0f03693 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
-
Andrew Tridgell
097e7ca99d 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.
-
Andrew Tridgell
fbdcf9ef54 added the epm_Map() call.
the RPC-EPMAPPER torture test now passes
-
Andrew Tridgell
3f85f9b782 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
-
Andrew Tridgell
30a996b682 after chatting with jeremy I decided to use a separate directory for
each rpc endpoint implementation, so we will have rpc_server/samr/
rpc_server/lsa/ etc.

this should encourage each pipe to be written in a more complete
manner, as it gives easy ways to split the pipe into multiple modules.
-
Tim Potter
817a2fe2e5 Small cleanup of test code. Rename enum indexes to be the same name
for EnumKey and EnumValue.
-
Tim Potter
cc494086e7 Got winreg_EnumValue working - what a mess! -
Tim Potter
370512f664 Added routines for arrays of uint16s. -
Andrew Tridgell
6e7c50bcd9 added support for sending bind_nak replies in the rpc server -
Andrew Tridgell
8ad47eff49 added the echo pipe test calls -
Andrew Tridgell
4dac951718 we now support pdu fragmentation on both input and output in the rpc
server code
-
Andrew Tridgell
14005c95d7 added handling of fragmented requests in the rpc server
now we just need to handle fragmented replies ....
-
Andrew Tridgell
28fa62d63d handle the auto-allocation of [ref] output arrays in pidl. This
can simplify rpc servers a lot.
-
Andrew Tridgell
46e0a35819 * 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
-
Andrew Tridgell
4929c53bc8 the next step in the dcerpc server code. Added the link between the
IPC IO routines and the dcerpc endpoint servers.
-
Andrew Tridgell
c598590a11 more portable array of endpoints code from pidl -
Andrew Tridgell
5fb01b0ec0 the rest of the initial rpc server side infrastructure -
Andrew Tridgell
3706af7a6c initial rpc server side infrastructure -
Andrew Tridgell
f3eaf270e5 * removed some unused code
* updated tdb to latest version from Samba3

 * removed some extraneous ';' in tdbutil.c (Thanks to Erlend Aasland
   for pointing this out)
-
Andrew Tridgell
bbd35e7c31 remove the tdbsam code for now. I have other plans for SAM backends :) -
Andrew Tridgell
fe91635da8 some systems don't have "which" and some systems don't have the "-nt"
flag to test. It's amazing that systems like that are ever sold.
-
Andrew Tridgell
b18dce549d fixed shell scripting error -
Andrew Tridgell
e41d95acc0 cope with yapp not being installed -
Andrew Tridgell
9246b4a331 "make proto" now depends on "make idl_test"
this should give the build farm a fighting chance
-
Andrew Tridgell
2b1300386d commit idl.pm now, as many build farm machines don't have 'yapp' -
Andrew Tridgell
be2c2be459 * reduced the number of grammer conflicts a lot using (arbitrary)
precedence rules

 * build a standalone parser. When we come to distributing Samba4 we
   can just include idl.pm and other developers won't need Parse::Yapp
   installed

 * avoid the recursive make in most cases in build_idl.sh
-
Andrew Tridgell
4e1a5a21a4 don't save the intermediate form to disk unless we need to -
Andrew Tridgell
788f6c44db a bit more speed and better line matching in errors -
Andrew Tridgell
76f48affe5 make pidl a little less verbose -
Andrew Tridgell
4bbaffeb44 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.
-
Andrew Tridgell
77c622c3ac removed an unused file -
Andrew Tridgell
03bf306596 merged more updates from Jim Myers -
Andrew Tridgell
126fcd4a76 * added a debug thread id hook from jim myers
* change to select() from sys_select() in events.c, as sys_select() is
  not thread safe. We need a new unified signal handling scheme for
  Samba4, but for now just use select()
-
Andrew Tridgell
f2d3dc9893 * patch based on work by Jim Myers to unify the ioctl handling to be
more like the other major SMB functions

* added SMBntrename code
-
Andrew Tridgell
3d48fa8f37 don't use c++ comments -
Andrew Tridgell
5f1cdc4839 we can't have two functions with the same name -
Andrew Tridgell
b11a19cc76 don't use c++ style comments -
Andrew Tridgell
d7b6aa1e2e some OSes already have a uint_t -
Andrew Tridgell
ad52fd9baf my debian unstable box uses "autoconf2.50" - i wish there were a
better way than this!
-