1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-27 08:23:49 +03:00
Commit Graph

1747 Commits

Author SHA1 Message Date
Stefan Metzmacher
2149d41407 remove unused files
we maybe need the util_smbd.c code later but this should not be in the lib/ dir

metze
-
Stefan Metzmacher
f77990cf24 remove a lot of unused stuff from the header files
and exclude some files from Makefile.in

metze
-
Stefan Metzmacher
24dc237e10 merge the version.h autogeneration stuff from 3.0
metze
-
Stefan Metzmacher
61ec710518 initilize ev->maxfd = EVENT_INVALID_MAXFD; before the while() loop.
metze
-
Stefan Metzmacher
857e76ef6b - make the recalculation of ev->maxfd a bit more efficient.
- fix the case when we have no fd_events left on the event_context
  we now exit after doing the timed events and not block in select()
  waiting for no fd's to become ready...

metze
-
Stefan Metzmacher
fffc6cfb6b let the event_add_XXX() function return a pointer of the allocated event structure
and NULL on allacation error.

metze
-
Stefan Metzmacher
917e45dafd 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 :-)
-
Andrew Tridgell
64cf9b3fd3 "subsystems" should be static -
Andrew Tridgell
f740b02ac3 added a bunch of alias functions in samr.idl based on work by Kai. -
Andrew Tridgell
09d17d705a removed some unused functions -
Andrew Tridgell
9b1c76a8e9 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.
-
Andrew Tridgell
a0a51af6b7 added support for big-endian ucs2 strings (as used by big-endian
msrpc).

this was easier than I expected!
-
Andrew Tridgell
bb1af644a5 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.
-
Andrew Tridgell
f50d4b602a enable rep_inet_ntoa() for non-pthread builds -
Andrew Tridgell
42dd8d888a more mutex portability. -
Andrew Tridgell
f4abd20b84 more portability fixes. We now almost compile on solaris -
Andrew Tridgell
ac8a23af8c use smb_rwlock_t instead of rwlock_t to avoid conflicts with system
types on some platforms (eg. solaris)
-
Andrew Tridgell
2045855601 fixed some memory leaks in the rpc server code -
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
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
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
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
3d48fa8f37 don't use c++ comments -
Andrew Tridgell
b11a19cc76 don't use c++ style comments -
Jelmer Vernooij
369a9c1ac1 Initial step at cleaning and splitting up configure.in. -
Andrew Tridgell
9b02b486ef * got rid of UNISTR2 and everything that depends on it
* removed a bunch of code that needs to be rewritten using the new
    interfaces
-
Andrew Tridgell
829b87f30d * removed a bunch of unused code
* made some functions static
-
Andrew Tridgell
1c2b8a93c5 fixed some warnings -
Andrew Tridgell
8fe4058711 added -m for 'max protocol' as a standard option -
Andrew Tridgell
abbc9993b8 fixed some memory leaks in the dcerpc use of ntlmssp signing -
Andrew Tridgell
c18c9b5585 signed DCERPC over TCP now works !
* moved ntlmssp code into libcli/auth/, and updated to latest ntlmssp
   code from samba3 (thanks Andrew! the new interface is great)

 * added signing/ntlmssp support in the dcerpc code

 * added a dcerpc_auth.c module for the various dcerpc auth mechanisms
-
Jelmer Vernooij
7512b9ab1a CVS: ----------------------------------------------------------------------
CVS: Enter Log.  Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Modified Files:
CVS: 	Makefile.in configure.in include/includes.h include/ntvfs.h
CVS: 	include/smb.h lib/iconv.c lib/module.c ntvfs/ntvfs_base.c
CVS: 	ntvfs/cifs/vfs_cifs.c ntvfs/ipc/vfs_ipc.c
CVS: 	ntvfs/posix/vfs_posix.c ntvfs/print/vfs_print.c
CVS: 	ntvfs/reference/vfs_ref.c ntvfs/simple/vfs_simple.c
CVS: 	passdb/pdb_interface.c
CVS: Added Files:
CVS: 	include/module.h
CVS: ----------------------------------------------------------------------
Update to the modules system. Fixed:
 - get rid of smb_probe_module
 - merge older updates from 3.0
 - introduced register_subsystem() and register_backend() functions
 - adapt ntvfs and charset to use new register functions
 - made smb_load_modules() work recursively (e.g. 'preload modules = /usr/lib/samba')
 - got rid of some old remains

Things that still need work:
 - Did I break tankFS? I don't think so, but I can't test it here :-(
 - Add 'postload modules = ' (for modules that need to be loaded after fork() in smbd, if applicable)
 - Convert RPC, auth, passdb, etc to use new register_{subsystem,backend}() functions
 - Accept wildcards in 'preload modules' option, instead of loading recursively
-
Andrew Tridgell
8a82050fd6 * fixed byte order in epmapper parsing
* allow rpc transport to be specified on command line in smbtorture
-
Tim Potter
40ccaeefed Removed unused variable. -
Tim Potter
7ae329e663 Add a strlen_m_term() function for returning the length of a string
including the termination.  Using value(strlen_m((r->name)+1)*2) gives
the wrong answer for the NULL string.
-
Andrew Tridgell
04eb12b56c reduced the number of magic types we need in mkproto.pl
In general I prefer "struct foo" to just "foo" for most
structures. There are exceptions.
-
Andrew Tridgell
26238b0f8a * fixed level2 of QueryUserInfo
* added per-field testing of SetUserInfo

 * fixed strlen_m()
-
Andrew Tridgell
947b9f8ced run LookupDomain on each domain returned from EnumDomains in samr -
Andrew Tridgell
874bf4689d removed a bunch of the old rpc code in preparation for replacing it all with auto-generated code -
Andrew Tridgell
89f7261ba5 fixed snprintf.c for systems that have only some of the *printf() family of functions
cope with servers that return bogus (too large) values in max_xmit

cope with a couple more error conditions in RAW-SFILEINFO

better startup time heuristics in NBENCH
-
Andrew Tridgell
81c941ba8a - patch to fix a memory leak from metze
- fix a couple of unicode string errors for ascii clients found by
  RAW- tests
-
Andrew Tridgell
02d068ba7d more fixes from the IRIX compiler (thanks herb!) -
Herb Lewis
d32f149592 rename mutex_t to smb_mutex_t to prevent name collision -
Andrew Tridgell
c770603ac6 fixed some places where we don't brace (flags & STR_UNICODE)
this fixes the samba4 server with ascii clients
-
Andrew Tridgell
4059fbcf02 a few build fixes to try to get irix building -
Herb Lewis
9a72476201 client/client.c - cannot initialize struct with non-const values
include/byteorder.h - fix for IRIX compiler - cannot cast an LVALUE
include/smb_interfaces.h - remove empty structure
source/lib/debug.c - void functions cannot return value
libcli/clifile.c - cannot assign *struct to struct
-
Andrew Tridgell
b0510b5428 first public release of samba4 code -