1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-28 07:21:54 +03:00
Commit Graph

447 Commits

Author SHA1 Message Date
Stefan Metzmacher
d7254a3615 r14523: make async search request possible
metze
(This used to be commit f130632dc5)
2007-10-10 13:57:36 -05:00
Jelmer Vernooij
5b0051e032 r14511: Install more headers
(This used to be commit e1f896948f)
2007-10-10 13:57:35 -05:00
Stefan Metzmacher
66b2ed2866 r14504: make trans and trans2 able to use async ntvfs backends
tridge: can you review this please

metze
(This used to be commit f2e9b2c3a2)
2007-10-10 13:57:35 -05:00
Andrew Bartlett
bae6672ea9 r14502: Supply both needed arguments for the backend logoff processing.
This should fix the segfaults on the build farm.

Metze: please check

Andrew Bartlett
(This used to be commit fb927a7117)
2007-10-10 13:57:35 -05:00
Stefan Metzmacher
d3087451c4 r14487: split smbsrv_request into two parts, one will be moved to ntvfs_request
but I don't to get the commit to large, to I'll do this tomorrow...

metze
(This used to be commit 10e627032d)
2007-10-10 13:57:32 -05:00
Stefan Metzmacher
3948fcac49 r14485: mark smb commands as need session and need tcon explicit,
so we only need to check in one global place and can't forget
in other places...

metze
(This used to be commit 742be8e075)
2007-10-10 13:57:31 -05:00
Jelmer Vernooij
8528016978 r14464: Don't include ndr_BASENAME.h files unless strictly required, instead
try to include just the BASENAME.h files (containing only structs)
(This used to be commit 3dd477ca51)
2007-10-10 13:57:27 -05:00
Stefan Metzmacher
2e7df84576 r14456: don't access the smbsrv_tcon inside the ntvfs modules
metze
(This used to be commit 5709c1c4e1)
2007-10-10 13:57:26 -05:00
Stefan Metzmacher
5555e28cab r14447: remove unused stuff
metze
(This used to be commit 4df843658f)
2007-10-10 13:57:26 -05:00
Jelmer Vernooij
e3f2414cf9 r14380: Reduce the size of structs.h
(This used to be commit 1a16a6f1df)
2007-10-10 13:57:16 -05:00
Stefan Metzmacher
a1b295ed48 r14256: - rename smb_file -> smb_handle
- move it into the in/out substructs again
- allow file.path only on smb_fileinfo/smb_setfileinfo

metze
(This used to be commit be6d5298a2)
2007-10-10 13:57:06 -05:00
Andrew Tridgell
7f0c7702f6 r14208: removed use of req->flags2 inside the ntvfs layer. This should help
metze on his quest to unify the ntvfs strucures for the smb and smb2
servers. The only place we needed flags2 inside ntvfs was for the
FLAGS2_READ_PERMIT_EXECUTE bit, which only affects readx, so I added a
readx.in.read_for_execute flag instead.
(This used to be commit b78abbbce6)
2007-10-10 13:57:03 -05:00
Stefan Metzmacher
32b0bb64bc r14205: move smb specific stuff out of includes.h (finally!!!:-)
all this changes really help ccache to speed up the samba4 build:-)

metze
(This used to be commit 180a79d103)
2007-10-10 13:57:03 -05:00
Stefan Metzmacher
307e43bb56 r14173: change smb interface structures to always use
a union smb_file, to abtract
- const char *path fot qpathinfo and setpathinfo
- uint16_t fnum for SMB
- smb2_handle handle for SMB2

the idea is to later add a struct ntvfs_handle *ntvfs
so that the ntvfs subsystem don't need to know the difference between SMB and SMB2

metze
(This used to be commit 2ef3f59709)
2007-10-10 13:56:57 -05:00
Stefan Metzmacher
86497db611 r14157: - pass a struct ntvfs_request to the ntvfs layer
(for now we just do #define ntvfs_request smbsrv_request,
   but it's the first step...)
- rename ntvfs_openfile() -> ntvfs_open()
- fix the talloc hierachie in some places in the ntvfs_map_*() code

metze
(This used to be commit ed9ed1f48f)
2007-10-10 13:56:55 -05:00
Andrew Tridgell
9259790df7 r14142: fixed ascii padding of nttrans create in server too
(This used to be commit 2cd4cd1674)
2007-10-10 13:56:54 -05:00
Stefan Metzmacher
bfcaa4000e r14096: setup a service task for smbsrv and dcesrv
metze
(This used to be commit 7ad522c7ac)
2007-10-10 13:56:50 -05:00
Stefan Metzmacher
651ca6553e r14079: I just found the setproctitle library from alt linux:-)
- add set_title hook to the process models
- use setproctitle library in process_model standard if available
- the the title for the task servers and on connections

metze
(This used to be commit 526f20bbec)
2007-10-10 13:56:49 -05:00
Stefan Metzmacher
1d495bc269 r14041: be a bit less verbose
metze
(This used to be commit 67a42a8097)
2007-10-10 13:52:38 -05:00
Andrew Tridgell
db45433f31 r14016: use type safe talloc when constructing operation structures in smb server
(This used to be commit 78dd6b3e0c)
2007-10-10 13:52:37 -05:00
Andrew Tridgell
276162cc9d r14013: added construction of the notify reply buffer in the nttrans server
code

the RAW-NOTIFY test now passes against the CIFS backend
(This used to be commit e03a2e2de2)
2007-10-10 13:52:36 -05:00
Andrew Tridgell
418befec18 r14011: - added a ntvfs_notify op to allow backends to support change notify
- converted the nttrans server side code to be async (needed for change notify)

This is the start of some work on supporting change notify via a new
approach. More soon.
(This used to be commit 0ad70bfd83)
2007-10-10 13:52:36 -05:00
Jelmer Vernooij
ceb6e9717b r13960: Generate makefile rules for installing/removing shared modules.
(This used to be commit 2c74698032)
2007-10-10 13:52:32 -05:00
Stefan Metzmacher
0de1ad5ae6 r13937: fix the build
metze
(This used to be commit 7aabff8298)
2007-10-10 13:52:28 -05:00
Jelmer Vernooij
9bd7dd9121 r13926: More header splitups.
(This used to be commit 930daa9f41)
2007-10-10 13:52:26 -05:00
Jelmer Vernooij
4ac2be9958 r13924: Split more prototypes out of include/proto.h + initial work on header
file dependencies
(This used to be commit 1228358767)
2007-10-10 13:52:24 -05:00
Andrew Bartlett
107f7b9efa r13911: Make these debug messages clearer.
(This used to be commit 9c8350c64b)
2007-10-10 13:52:23 -05:00
Stefan Metzmacher
edd5b847bc r13877: remove smbsrv_send_dos_error() and use smbsrv_send_error(..,NT_STATUS_DOS())
metze
(This used to be commit 60d7920527)
2007-10-10 13:52:19 -05:00
Stefan Metzmacher
8d91f3dec0 r13872: fix typo
metze
(This used to be commit f28fb440d5)
2007-10-10 13:52:19 -05:00
Stefan Metzmacher
a0e66eac7d r13870: prefix more functions with smbsrv_
metze
(This used to be commit e6275db7b9)
2007-10-10 13:52:19 -05:00
Stefan Metzmacher
0533fed85a r13868: remove useless talloc_free() wrapper
metze
(This used to be commit bd3162e6a7)
2007-10-10 13:52:19 -05:00
Stefan Metzmacher
354a61fc91 r13866: prefix more functions with smbsrv_
metze
(This used to be commit bb083f17c9)
2007-10-10 13:52:18 -05:00
Stefan Metzmacher
b58f6e543d r13865: prefix functions with smbsrv_
metze
(This used to be commit 2af9663275)
2007-10-10 13:52:18 -05:00
Stefan Metzmacher
c14e675260 r13863: this can be static...
metze
(This used to be commit ab659d8ee0)
2007-10-10 13:52:18 -05:00
Stefan Metzmacher
5991787ce6 r13862: rename chain_reply -> smbsrv_chain_reply
metze
(This used to be commit 497b219c7d)
2007-10-10 13:52:18 -05:00
Stefan Metzmacher
d8503c6ba1 r13860: - add support for SMB2 ("SMB 2.001") negotiation in SMB negprot requests
- the default max protocol is still NT1

metze
(This used to be commit d1bae931b3)
2007-10-10 13:52:17 -05:00
Stefan Metzmacher
1bff329dff r13858: - use req_pull_ascii4() instead of doing strlen() on client provided buffers
- also terminate the connection if we don't support any protocol the client
  provides

metze
(This used to be commit 7f2a6cfd6f)
2007-10-10 13:52:17 -05:00
Stefan Metzmacher
98aa64fa34 r13857: add "Windows for Workgroups 3.1a" support to the server
metze
(This used to be commit 58af0acafd)
2007-10-10 13:52:17 -05:00
Andrew Tridgell
72d8e34ddc r13856: fixed a misleading comment
(This used to be commit af6606fe98)
2007-10-10 13:52:17 -05:00
Jelmer Vernooij
dfc517b053 r13658: More moving around of files:
- Collect the generic utility functions into a lib/util/ (a la GLib is
		for the GNOME folks)
 - Remove even more files from include/
(This used to be commit ba62880f5b)
2007-10-10 13:52:05 -05:00
Stefan Metzmacher
36098dfda9 r13620: initialize the CMD with 0 too
metze
(This used to be commit 7cf1423bc8)
2007-10-10 13:52:01 -05:00
Andrew Bartlett
941c1566e5 r13403: Try to better handle a case where SPNEGO isn't available (allow us to
emulate the behaviour of XP standalone if required).

Andrew Bartlett
(This used to be commit 7f821097fb)
2007-10-10 13:51:53 -05:00
Andrew Bartlett
086655dcb6 r13204: Remove extra newline we don't need.
Andrew Bartlett
(This used to be commit 765caa14b3)
2007-10-10 13:51:33 -05:00
Andrew Bartlett
f55ea8bb3d r12804: This patch reworks the Samba4 sockets layer to use a socket_address
structure that is more generic than just 'IP/port'.

It now passes make test, and has been reviewed and updated by
metze. (Thankyou *very* much).

This passes 'make test' as well as kerberos use (not currently in the
testsuite).

The original purpose of this patch was to have Samba able to pass a
socket address stucture from the BSD layer into the kerberos routines
and back again.   It also removes nbt_peer_addr, which was being used
for a similar purpose.

It is a large change, but worthwhile I feel.

Andrew Bartlett
(This used to be commit 88198c4881)
2007-10-10 13:49:57 -05:00
Jelmer Vernooij
5c8447773f r12801: Some more include/ cleanups (remove unused macros + move files
to specific dirs)
(This used to be commit 243cf760b0)
2007-10-10 13:49:57 -05:00
Stefan Metzmacher
db04cffbbf r12725: some minor updates
metze
(This used to be commit f2e97983f2)
2007-10-10 13:49:45 -05:00
Jelmer Vernooij
63d718e243 r12696: Reduce the size of include/structs.h
(This used to be commit 6391761601)
2007-10-10 13:49:40 -05:00
Jelmer Vernooij
78c50015bb r12694: Move some headers to the directory of the subsystem they belong to.
(This used to be commit c722f665c9)
2007-10-10 13:49:39 -05:00
Jelmer Vernooij
d4de4c2d21 r12608: Remove some unused #include lines.
(This used to be commit 70e7449318)
2007-10-10 13:49:03 -05:00
Jelmer Vernooij
2cd5ca7d25 r12542: Move some more prototypes out to seperate headers
(This used to be commit 0aca5fd513)
2007-10-10 13:47:55 -05:00
Jelmer Vernooij
0a3c167f6b r12528: Add seperate proto headers for ntvfs, tdr, smb_server and nbt_server.
(This used to be commit 87f665a1d5)
2007-10-10 13:47:51 -05:00
Jelmer Vernooij
d8e35f8828 r12498: Eliminate INIT_OBJ_FILES and ADD_OBJ_FILES. We were not using
the difference between these at all, and in the future the
fact that INIT_OBJ_FILES include smb_build.h will be sufficient to
have recompiles at the right time.
(This used to be commit b24f2583ed)
2007-10-10 13:47:45 -05:00
Stefan Metzmacher
e246a06751 r12126: get rid of the local ->terminate hacks, we do that genericly now
metze
(This used to be commit a7baf165c1)
2007-10-10 13:47:12 -05:00
Stefan Metzmacher
344703bfc0 r12115: bring SMB sesssetup_spnego in sync with SMB2 sesssetup
metze
(This used to be commit 99cf7dbb17)
2007-10-10 13:47:10 -05:00
Stefan Metzmacher
3edfa552a2 r12113: in SMB2 we should only allocate a new session
when the client sends UID = 0, otherwise we return
NT_STATUS_USER_SESSION_DELETED

metze
(This used to be commit 15973be48e)
2007-10-10 13:47:10 -05:00
Stefan Metzmacher
273f340376 r12102: for SMB2 we need to allocate tcons per session
metze
(This used to be commit 4d527ac005)
2007-10-10 13:47:09 -05:00
Stefan Metzmacher
6b1ee03c53 r12095: the most SMB2 opcodes need a valid session and tcon,
metze
(This used to be commit 40b301c6bd)
2007-10-10 13:47:09 -05:00
Stefan Metzmacher
05bfa9ad86 r12094: - implement dummy smb2srv_tcon()
- implement smb2srv_tdis()

metze
(This used to be commit cb9ddf7997)
2007-10-10 13:47:08 -05:00
Stefan Metzmacher
41c575729f r12093: add missing file
metze
(This used to be commit 1506be37db)
2007-10-10 13:47:08 -05:00
Stefan Metzmacher
2634f22bfc r12092: - add dummy functions for the missing SMB2 opcodes
- implement keepalive and logoff

metze
(This used to be commit 859ab627f4)
2007-10-10 13:47:08 -05:00
Stefan Metzmacher
e5adca67f2 r12091: the SMB2 specific level are not available via SMB
(get rid of the compiler warnings)

metze
(This used to be commit 436c5127ef)
2007-10-10 13:47:08 -05:00
Andrew Tridgell
67d0bb8dc7 r12082: fixed a valgrind error found by kukks in the transs server handling
(This used to be commit 5c81986bff)
2007-10-10 13:47:06 -05:00
Andrew Bartlett
759bda2962 r11992: Potentially allow SPNEGO to be disabled (as occours on WinXP
standalone), and use only NTLMSSP.

(But doing so would break Samba3's client).

Andrew Bartlett
(This used to be commit e74ca624e7)
2007-10-10 13:46:56 -05:00
Tim Potter
b9b59fa798 r11968: More warning fixes. We're on track to getting to double digits for
the number of warnings generated now.
(This used to be commit d479f2d760)
2007-10-10 13:46:52 -05:00
Tim Potter
03d301ead5 r11967: Fix more 64-bit warnings.
(This used to be commit 9c4436a124)
2007-10-10 13:46:52 -05:00
Stefan Metzmacher
910d61bcd1 r11789: - add the start of a SMB2 server
- it does Negprot and SessionSetup yet
  the rest returns NT_STATUS_NOT_IMPLEMENTED
- it's off by default, enable with:
  smbsrv:enable smb2 = yes
- negotition in the SMB Negprot isn't supported yet
- it's only tested with smbtorture SMB2-CONNECT
  not with vista as client

metze
(This used to be commit 08b31d5f61)
2007-10-10 13:46:28 -05:00
Stefan Metzmacher
764dd6027b r11788: remove unused header files
metze
(This used to be commit 27a2615876)
2007-10-10 13:46:27 -05:00
Stefan Metzmacher
0e6cef55c3 r11787: add missing file
metze
(This used to be commit d74f333a84)
2007-10-10 13:46:27 -05:00
Stefan Metzmacher
6d34ab056f r11786: move all SMB protocol specific stuff to smb_server/smb/
metze
(This used to be commit 5fea278cb6)
2007-10-10 13:46:27 -05:00
Stefan Metzmacher
da4afcb118 r11785: rename conn.c into tcon.c
metze
(This used to be commit eba4f6b706)
2007-10-10 13:46:27 -05:00
Stefan Metzmacher
ab33c314a4 r11783: - make the VIUD field in smbsrv_session 64bit, as SMB2 needs it
- add an idtree_limit to limit the max VUID we give the clients
  it's UINT16_MAX (0xffff) for the SMB protocol
- add auth_time to the smbsrv_session statistics
- use the session_info as marker for finished and non-finished
  session setups

metze
(This used to be commit 7eb10048b2)
2007-10-10 13:46:26 -05:00
Stefan Metzmacher
3f968be9d5 r11782: - make the TID 32bit in the smbsrv_tcon structure, as SMB2 uses
them
- add a idtree_limit to the tcons substructure of smbsrv_connection
  this controls what the highest TID is we give away to the client
  it's UINT16_MAX (0xFFFF) for the SMB protocol

metze
(This used to be commit f3bf5a2c09)
2007-10-10 13:46:26 -05:00
Stefan Metzmacher
509be8d902 r11781: rename tree to tcons to match the sessions substructure of smbsrv_connection
metze
(This used to be commit acd3e644e0)
2007-10-10 13:46:26 -05:00
Stefan Metzmacher
4f10246cac r11778: - remove unused memory contexts as req is already the temporary context for the current request
- just use '0', I'll remove the UID_FIELD_INVALID macro completly later
- why search for the session we have just create
- add TODO notices, I need to dicuss them with abartlet...

metze
(This used to be commit 4bceb94749)
2007-10-10 13:46:25 -05:00
Stefan Metzmacher
799724aae7 r11774: - move SMB specific initialisation of the smbsrv_connection out of smb_server.c
- add a generic incoming packet handler, which handles the first incoming packet
  and passes to the protocol specifc packet handler

metze
(This used to be commit f89deac1cb)
2007-10-10 13:46:25 -05:00
Stefan Metzmacher
58bf4b160e r11759: fix up the SEC_SHARE handling, when we want to support that later
we need to fake a smbsrv_session for each smbsrv_tcon...

metze
(This used to be commit 5b5fb17720)
2007-10-10 13:46:24 -05:00
Stefan Metzmacher
ace255a54b r11757: make smb_server.c independent from the protocol
metze
(This used to be commit b606d5664d)
2007-10-10 13:46:23 -05:00
Stefan Metzmacher
27b9d5652e r11746: revert my last commits, I now understand how we decide between
finished and non-finished sessions

metze
(This used to be commit 7cf6b307bc)
2007-10-10 13:46:21 -05:00
Stefan Metzmacher
5c35b41b87 r11745: one more check for a valid session
metze
(This used to be commit 92aae176fb)
2007-10-10 13:46:21 -05:00
Stefan Metzmacher
dae30e5b50 r11744: make sure the session is completed authenticated!!!
metze
(This used to be commit 0383218a00)
2007-10-10 13:46:20 -05:00
Stefan Metzmacher
7dd6e5fe92 r11724: - move checks packet size and protocol version,
before we create the request structure
- move code into one function

metze
(This used to be commit 96345b1c46)
2007-10-10 13:46:18 -05:00
Andrew Tridgell
614950aed3 r11713: separate out the setting of the fde in the packet context from the
enabling of packet serialisation
(This used to be commit 6a47cd65a8)
2007-10-10 13:46:17 -05:00
Stefan Metzmacher
92b9b83b70 r11650: - as every call that goes down to the ntvfs layer need a valid tcon and session
ntcancel also needs to have AS_USER
- move the SIGNING_NO_REPLY logic as global option, because this needs to be set
  for the error replies too.
- as we currently don't know how to generate signatures for ntcancel replies
  we just skip the sending of the reply
- w2k3 first checks the VUID and then the TID, so we do now
- ntcreateX also uses ERRbaduid when getting a wrong VUID

metze
(This used to be commit d677ebf43d)
2007-10-10 13:46:08 -05:00
Stefan Metzmacher
ca403dd4c6 r11646: fix typos
metze
(This used to be commit 0c520e19a0)
2007-10-10 13:46:07 -05:00
Stefan Metzmacher
0b6370ea27 r11643: fix compiler warnings
metze
(This used to be commit 913d5356eb)
2007-10-10 13:46:07 -05:00
Stefan Metzmacher
bd7525e1b4 r11641: remove unused parameter vuid
metze
(This used to be commit 9399e4d260)
2007-10-10 13:46:05 -05:00
Stefan Metzmacher
389f9dff29 r11640: just a nicer format, and make adding more special cases easier
metze
(This used to be commit 5fb5d1a864)
2007-10-10 13:46:05 -05:00
Stefan Metzmacher
a2d2128b8a r11637: we need a session and a tcon for ntioctl() and ntrename()
metze
(This used to be commit 3389544c2b)
2007-10-10 13:46:03 -05:00
Andrew Tridgell
b8f4d22ab5 r11621: some minor fixes from comments by metze
(This used to be commit 6ab8082234)
2007-10-10 13:45:59 -05:00
Andrew Tridgell
5c620048e3 r11607: switched the smb server to use the generic packet send code
(This used to be commit 9eee7bafa1)
2007-10-10 13:45:58 -05:00
Andrew Tridgell
7e963eb6e7 r11603: converted the smb server to use the new generic packet code
(This used to be commit 0fc496bb6f)
2007-10-10 13:45:57 -05:00
Andrew Bartlett
3dc75cc84f r11367: Ensure to intialise the new logon_parameters (0 for session setups).
Andrew Bartlett
(This used to be commit abff53b633)
2007-10-10 13:45:26 -05:00
Jelmer Vernooij
4c5a4a7e02 r11244: Relative path names in .mk files
(This used to be commit 24e1030090)
2007-10-10 13:45:06 -05:00
Jelmer Vernooij
f4d590662e r11214: Remove scons files (see http://lists.samba.org/archive/samba-technical/2005-October/043443.html)
(This used to be commit 7fffc5c917)
2007-10-10 13:45:03 -05:00
Andrew Bartlett
372ca26b20 r11200: Reposition the creation of the kerberos keytab for GSSAPI and Krb5
authentication.  This pulls the creating of the keytab back to the
credentials code, and removes the special case of 'use keberos keytab
= yes' for now.

This allows (and requires) the callers to specify the credentials for
the server credentails to GENSEC.  This allows kpasswdd (soon to be
added) to use a different set of kerberos credentials.

The 'use kerberos keytab' code will be moved into the credentials
layer, as the layers below now expect a keytab.

We also now allow for the old secret to be stored into the
credentials, allowing service password changes.

Andrew Bartlett
(This used to be commit 205f77c579)
2007-10-10 13:45:00 -05:00
Volker Lendecke
929de6af34 r11120: calling_name is used later in sesssetup_nt1, so hang the names to the right
talloc context.

Volker
(This used to be commit 256cf928d7)
2007-10-10 13:44:53 -05:00
Andrew Bartlett
18bb363537 r10946: Use the right name for the remote workstation, and always initialise it.
Should fix a valgrind error volker is seeing.

Andrew Bartlett
(This used to be commit 11957c5f37)
2007-10-10 13:39:44 -05:00
Jelmer Vernooij
4abb479761 r10588: Remove more unused files, macros
(This used to be commit d2f80c0457)
2007-10-10 13:39:08 -05:00
Jelmer Vernooij
5058f4b9e8 r10586: Add MergedObject() builder. Default to Library() rather
then StaticLibrary()
(This used to be commit b53313dc51)
2007-10-10 13:39:08 -05:00
Jelmer Vernooij
49839f356f r10513: Reduce some use of pstring. The main reason some parts of the code still
use pstring is next_token() now.
(This used to be commit a5b88bcd42)
2007-10-10 13:38:58 -05:00
Jelmer Vernooij
6812c73534 r10348: Add scons scripts for remaining subsystems. Most subsystems build now,
but final linking still fails (as does generating files asn1, et, idl and proto
files)
(This used to be commit 4f0d7f75b9)
2007-10-10 13:38:30 -05:00
Tim Potter
2082695e2e r10256: Fix some unhandled enumeration warnings. There's one still left,
RAW_SEARCH_UNIX_INFO find_fill_info(), which I think is a bug.
(This used to be commit 5f1cd6382c)
2007-10-10 13:38:12 -05:00
Alexander Bokovoy
1e59a8a24f r9321: Fix potential bug found by Coverity. src_len has to be int but later we do pass it as size_t. In case src_len is negative, we need to register a failure and return to the caller
(This used to be commit 95d96c79a5)
2007-10-10 13:33:24 -05:00
Andrew Tridgell
1f467c50d9 r8893: fixed the valgrind error on stream termination due to prototol errors
(This used to be commit cf1a7bbe96)
2007-10-10 13:30:15 -05:00
Jelmer Vernooij
6553dd0c60 r8811: Fix the build..
(This used to be commit fac77f5fa2)
2007-10-10 13:30:07 -05:00
Andrew Bartlett
42287c6f97 r8706: My previous patch oversimplied the previous change to session setup -
we didn't cope with the 'anonymous NTLM under SPNEGO' login.

Andrew Bartlett
(This used to be commit c3cc14542e)
2007-10-10 13:29:56 -05:00
Andrew Bartlett
b16362fab6 r8700: Propmted by tridge's need to do plaintext auth in ejs, rework the
user_info strcture in auth/

This moves it to a pattern much like that found in ntvfs, with
functions to migrate between PAIN, HASH and RESPONSE passwords.

Instead of make_user_info*() functions, we simply fill in the control
block in the callers, per recent dicussions on the lists.  This
removed a lot of data copies as well as error paths, as we can grab
much of it with talloc.

Andrew Bartlett
(This used to be commit ecbd2235a3)
2007-10-10 13:29:55 -05:00
Andrew Tridgell
4327a3f1ba r8658: move use of lp_security() and lp_nt_status_support() into the connection structure.
This massively reduces the number of lp_*() calls made
(This used to be commit b1d577f48d)
2007-10-10 13:29:50 -05:00
Andrew Tridgell
174da76293 r8627: fixed a big memory leak in the spnego gensec code in session
setup. Andrew, please check over this.

What happens is this:

 - run the BASE-SECLEAK test
 - with each failed session setup using spnego a gensec ctx is leaked into the smb_conn structure
 - after the client disconnects these are finally cleaned up as they
   are all children of the connection structure
 - the cleanup of the millions of memory objects takes long enough
   that the next operation in test_posix.sh sometimes fails with a timeout

Andrew, can you also look at the talloc_reference() on line 332 of
sesssetup.c ? I suspect it isn't needed (I don't think it does any
actual harm though)
(This used to be commit b40fb6a456)
2007-10-10 13:29:45 -05:00
Andrew Tridgell
a32fe0f293 r8577: added management calls to list current tree connects
(This used to be commit 658befc1e4)
2007-10-10 13:29:40 -05:00
Andrew Tridgell
25428433e3 r8574: added server side irpc calls for listing the current sessions
(This used to be commit 391cfe3c96)
2007-10-10 13:29:39 -05:00
Andrew Tridgell
5033ce466c r8527: found an uninitialised variable in 'make valgrindtest'
(This used to be commit 9eebd240d8)
2007-10-10 13:29:35 -05:00
Andrew Tridgell
2bb9fa2875 r8487: kfixed a typo
(This used to be commit adae47c829)
2007-10-10 13:23:08 -05:00
Andrew Tridgell
c6881d1e65 r8272: added the hooks for adding a name to a messaging context, so we will
be able to send a message to the "ldap_server" task without having to
know its task ID.
(This used to be commit 8f69867867)
2007-10-10 13:19:29 -05:00
Andrew Tridgell
8086371dbf r8119: fixed two error code returns in the smb server now that we have
torture code that can tell the difference between dos and ntstatus
codes without mapping
(This used to be commit 5521060c08)
2007-10-10 13:19:10 -05:00
Stefan Metzmacher
7134b64292 r8028: fix a crash bug in ulogoff, when the tree_connect failed before
metze
(This used to be commit a2e34475d7)
2007-10-10 13:19:00 -05:00
Andrew Tridgell
f39440e060 r7857: improved the handling of end-of-file on sockets in the smb server
(This used to be commit 6ee98c5f65)
2007-10-10 13:18:43 -05:00
Andrew Tridgell
3dd67b9746 r7782: fixed an ordering problem with smb requests. I found this when I had "sam database"
set to the internal ldap server over loopback. The following happened:

  - DCERPC_AUTH3 request
     - auth requests calls ldb
     - ldb calls ldap
     - ldap calls our internal ldap server, triggering events
  - samrConnect from client
     - connect refused
  - SMBclose from client
     - causes dcerpc_pipe to be destroyed
  - AUTH3 continues
     - dies on freed pipe

I chose this solution as it provides a guarantee that backends only have to think about
async issues when they mark a request async. When they don't, this code guarantees that
a second request won't happen on the same connection while processing the first one
(This used to be commit 45487e8a14)
2007-10-10 13:18:36 -05:00
Andrew Bartlett
8047db6e4b r7676: Make VUID and TID choice random, as this gives us protection against
replay attacks under SMB signing, where the session key is a fixed
derivitive of the user's password.

This removes the VID offset, but I'm not worried about random client
bytes mattering here, given the space (and the fact that it applies to
very, very old clients).

Andrew Bartlett
(This used to be commit eb1d37c5a9)
2007-10-10 13:18:21 -05:00
Andrew Bartlett
b523bde499 r7675: Use correct memory context for anonymous session setup auth context
(no need for it to hang around forever).

Add test for this behaviour.

Andrew Bartlett
(This used to be commit 36dc2491d7)
2007-10-10 13:18:21 -05:00
Andrew Tridgell
af237084ec r7633: this patch started as an attempt to make the dcerpc code use a given
event_context for the socket_connect() call, so that when things that
use dcerpc are running alongside anything else it doesn't block the
whole process during a connect.

Then of course I needed to change any code that created a dcerpc
connection (such as the auth code) to also take an event context, and
anything that called that and so on .... thus the size of the patch.

There were 3 places where I punted:

  - abartlet wanted me to add a gensec_set_event_context() call
    instead of adding it to the gensec init calls. Andrew, my
    apologies for not doing this. I didn't do it as adding a new
    parameter allowed me to catch all the callers with the
    compiler. Now that its done, we could go back and use
    gensec_set_event_context()

  - the ejs code calls auth initialisation, which means it should pass
    in the event context from the web server. I punted on that. Needs fixing.

  - I used a NULL event context in dcom_get_pipe(). This is equivalent
    to what we did already, but should be fixed to use a callers event
    context. Jelmer, can you think of a clean way to do that?

I also cleaned up a couple of things:

 - libnet_context_destroy() makes no sense. I removed it.

 - removed some unused vars in various places
(This used to be commit 3a3025485b)
2007-10-10 13:18:15 -05:00
Stefan Metzmacher
3b9dfb0da3 r7631: - remove unused function, as the disgn of samba4 doesn't allow the old style
auto homedir share stuff
- add TODO: for checking the password on share mode security

metze
(This used to be commit d9a0c61801)
2007-10-10 13:18:15 -05:00
Andrew Tridgell
8f31f8c57e r7523: blergh
the error code for an invalid tid depends on the command
(This used to be commit 9dab036fbe)
2007-10-10 13:18:06 -05:00
Andrew Tridgell
76d3439c4b r7510: fixed error code for using a bad tid.
amazingly, I have seen w2k do a session setup followed by an immediate
attempted opening of \netlogon, with no tconx to ipc$ first. So this
error code can matter.
(This used to be commit 79112d81cb)
2007-10-10 13:18:02 -05:00
Simo Sorce
042ab1adbe r7222: remove double call to the same function in the same place, probable cut&paste error
(This used to be commit 615618f192)
2007-10-10 13:17:27 -05:00
Andrew Tridgell
d9c15b0f28 r6342: fixed a bad union assumption that caused ACLs to fail on 64 bit machines
Thanks to lars and agruen for finding this
(This used to be commit 2acc069185)
2007-10-10 13:11:33 -05:00
Andrew Bartlett
9782a22fa9 r6313: Much better handling of LogoffAndX when the vuid is invalid (ie, don't
segfault).  This should fix another of the issues that Richard came up
with last week.

Andrew Bartlett
(This used to be commit c2c8b6abf3)
2007-10-10 13:11:30 -05:00
Andrew Bartlett
ab06749443 r6312: Metze reminds me this header is no longer required.
Andrew Bartlett
(This used to be commit c67a9370c4)
2007-10-10 13:11:30 -05:00
Andrew Bartlett
f3e3f3aab6 r6310: Rename password.c to session.c, and remove the linked list of all
outstanding sessions, as we don't use it.

Andrew Bartlett
(This used to be commit 0cbd11a0f2)
2007-10-10 13:11:30 -05:00
Andrew Bartlett
b1dba5e7fb r6309: Remove this file it is empty and unreferenced. (In preperation for
renaming password.c over the top, as it deals with sessions, not
passwords).

Andrew Bartlett
(This used to be commit 0bba8da460)
2007-10-10 13:11:30 -05:00
Andrew Bartlett
20841a25ad r6270: Move the VUID handling to a IDR tree. This should avoid O(n)
behaviour on session setups, and because we no longer need do deal
with the linked list as much, the code is much simpiler too.

We may be able to compleatly remove the tid and vuid linked lists, but
I need to check.

This patch also tries to clean up the VUID handling and session setups
in general.  To avoid security issues, we now have a distinction
between VUIDs allocated for the session setup (to tie togeather the
multiple round trips) and those used after authentication.

Andrew Bartlett
(This used to be commit 3e5775146d)
2007-10-10 13:11:29 -05:00
Andrew Tridgell
21d9419b1e r6031: don't try to send errors when the socket has been destroyed
(This used to be commit 54c0284679)
2007-10-10 13:11:16 -05:00
Andrew Bartlett
2eb3d68062 r6028: A MAJOR update to intergrate the new credentails system fully with
GENSEC, and to pull SCHANNEL into GENSEC, by making it less 'special'.

GENSEC now no longer has it's own handling of 'set username' etc,
instead it uses cli_credentials calls.

In order to link the credentails code right though Samba, a lot of
interfaces have changed to remove 'username, domain, password'
arguments, and these have been replaced with a single 'struct
cli_credentials'.

In the session setup code, a new parameter 'workgroup' contains the
client/server current workgroup, which seems unrelated to the
authentication exchange (it was being filled in from the auth info).

This allows in particular kerberos to only call back for passwords
when it actually needs to perform the kinit.

The kerberos code has been modified not to use the SPNEGO provided
'principal name' (in the mechListMIC), but to instead use the name the
host was connected to as.  This better matches Microsoft behaviour,
is more secure and allows better use of standard kerberos functions.

To achieve this, I made changes to our socket code so that the
hostname (before name resolution) is now recorded on the socket.

In schannel, most of the code from librpc/rpc/dcerpc_schannel.c is now
in libcli/auth/schannel.c, and it looks much more like a standard
GENSEC module.  The actual sign/seal code moved to
libcli/auth/schannel_sign.c in a previous commit.

The schannel credentails structure is now merged with the rest of the
credentails, as many of the values (username, workstation, domain)
where already present there.  This makes handling this in a generic
manner much easier, as there is no longer a custom entry-point.

The auth_domain module continues to be developed, but is now just as
functional as auth_winbind.  The changes here are consequential to the
schannel changes.

The only removed function at this point is the RPC-LOGIN test
(simulating the load of a WinXP login), which needs much more work to
clean it up (it contains copies of too much code from all over the
torture suite, and I havn't been able to penetrate its 'structure').

Andrew Bartlett
(This used to be commit 2301a4b38a)
2007-10-10 13:11:15 -05:00
Andrew Bartlett
439056c1db r5899: Fix spelling.
Andrew Bartlett
(This used to be commit 50af206477)
2007-10-10 13:11:07 -05:00
Andrew Tridgell
75ddf59ea1 r5308: trimmed back a lot of the old macros from smb_macros.h
(This used to be commit bf43c9bdcf)
2007-10-10 13:09:40 -05:00
Andrew Tridgell
b9bb7f596d r5294: - added a separate NBT-WINS test for WINS operations (register, refresh, release and query)
- change the iface_n_*() functions to return a "const char *" instead of a "struct ipv4_addr"
  I think that in general we should move towards "const char *" for
  all IP addresses, as this makes IPv6 much easier, and is also easier
  to debug. Andrew, when you get a chance, could you fix some of the
  auth code to use strings for IPs ?

- return a NTSTATUS error on bad name queries and node status instead
  of using rcode. This makes the calling code simpler.

- added low level name release code in libcli/nbt/

- use a real IP in the register and wins nbt torture tests, as w2k3
  WINS server silently rejects some operations that don't come from the
  IP being used (eg. it says "yes" to a release, but does not in fact
  release the name)
(This used to be commit bb1ab11d8e)
2007-10-10 13:09:37 -05:00
Andrew Tridgell
131dc76d56 r5197: moved events code to lib/events/ (suggestion from metze)
(This used to be commit 7f54c8a339)
2007-10-10 13:09:30 -05:00
Andrew Tridgell
0798d54b4f r5195: most events don't need the time of the event, so save a gettimeofday() call
and just use timeval_current() when its actually needed
(This used to be commit 236403cc4d)
2007-10-10 13:09:30 -05:00
Andrew Tridgell
a097414ed2 r5193: make sure we mark the event dead when we free it on a dead connection
(This used to be commit 90535bab95)
2007-10-10 13:09:29 -05:00
Andrew Tridgell
66170ef8b3 r5185: make all the events data structures private to events.c. This will
make it possible to add optimisations to the events code such as
keeping the next timed event in a sorted list, and using epoll for
file descriptor events.

I also removed the loop events code, as it wasn't being used anywhere,
and changed timed events to always be one-shot (as adding a new timed
event in the event handler is so easy to do if needed)
(This used to be commit d7b4b6de51)
2007-10-10 13:09:29 -05:00
Andrew Tridgell
55d4d36993 r5102: This is a major simplification of the logic for controlling top level
servers in smbd. The old code still contained a fairly bit of legacy
from the time when smbd was only handling SMB connection. The new code
gets rid of all of the smb_server specific code in smbd/, and creates
a much simpler infrastructures for new server code.

Major changes include:

 - simplified the process model code a lot.

 - got rid of the top level server and service structures
   completely. The top level context is now the event_context. This
   got rid of service.h and server.h completely (they were the most
   confusing parts of the old code)

 - added service_stream.[ch] for the helper functions that are
   specific to stream type services (services that handle streams, and
   use a logically separate process per connection)

 - got rid of the builtin idle_handler code in the service logic, as
   none of the servers were using it, and it can easily be handled by
   a server in future by adding its own timed_event to the event
   context.

 - fixed some major memory leaks in the rpc server code.

 - added registration of servers, rather than hard coding our list of
   possible servers. This allows for servers as modules in the future.

 - temporarily disabled the winbind code until I add the helper
   functions for that type of server

 - added error checking on service startup. If a configured server
   fails to startup then smbd doesn't startup.

 - cleaned up the command line handling in smbd, removing unused options
(This used to be commit cf6a46c3cb)
2007-10-10 13:09:22 -05:00
Andrew Tridgell
759da3b915 r5037: got rid of all of the TALLOC_DEPRECATED stuff. My apologies for the
large commit. I thought this was worthwhile to get done for
consistency.
(This used to be commit ec32b22ed5)
2007-10-10 13:09:15 -05:00
Andrew Tridgell
3b9431ddb9 r4927: parse the NBT session request in the smb server. This gets rid of that
annoying "not parsing session request" message on each SMB connection
(This used to be commit b06b8dd2f4)
2007-10-10 13:09:06 -05:00
Andrew Tridgell
fb8004a288 r4819: its just not my day today ....
(This used to be commit e54a97f8a6)
2007-10-10 13:08:59 -05:00
Andrew Tridgell
7cbc768376 r4777: added a smb_composite_sesssetup() async composite function. This
encapsulates all the different session setup methods, including the
multi-pass spnego code.

I have hooked this into all the places that previously used the
RAW_SESSSETUP_GENERIC method, and have removed the old
RAW_SESSSETUP_GENERIC code from clisession.c and clitree.c. A nice
side effect is that these two modules are now very simple again, back
to being "raw" session setup handling, which was what was originally
intended.

I have also used this to replace the session setup code in the
smb_composite_connect() code, and used that to build a very simple
replacement for smbcli_tree_full_connection().

As a result, smbclient, smbtorture and all our other SMB connection
code now goes via these composite async functions. That should give
them a good workout!
(This used to be commit 080d0518bc)
2007-10-10 13:08:53 -05:00
Stefan Metzmacher
b3b225c604 r4730: remove unused struct elements
part of this went in in the last commit...

metze
(This used to be commit 9ea9e1ced5)
2007-10-10 13:08:49 -05:00
Stefan Metzmacher
9327ec51d1 r4728: split up server_services into:
- stream_socket services
  the smb, ldap and rpc service which sets up a srtam socket end then
  waits for connections
and
- task services
  which this you can create a seperate task that do something
  (this is also going through the process_model subsystem
  so with -M standard a new process for this created
  with -M thread a new thread ...

I'll add datagram services later when we whave support for datagram sockets in lib/socket/

see the next commit as an example for service_task's

metze
(This used to be commit d5fa02746c)
2007-10-10 13:08:49 -05:00
Stefan Metzmacher
592fce7fb1 r4726: - use the name tcon and tid instead of conn and cnum
- make use of talloc destructors

metze
(This used to be commit 8308da6ce4)
2007-10-10 13:08:48 -05:00
Stefan Metzmacher
91e9cf6d1a r4684: the smbsrv code should not know about rpc stuff
just vfs_ipc

metze
(This used to be commit f85ebd1e8e)
2007-10-10 13:08:43 -05:00
Stefan Metzmacher
46a32687da r4620: - add interface functions to the auth subsystem so that callers doesn't need to
use function pointers anymore
- make the module init much easier
- a lot of cleanups

don't try to read the diff in auth/ better read the new files

it passes test_echo.sh and test_rpc.sh

abartlet: please fix spelling fixes

metze
(This used to be commit 3c0d16b823)
2007-10-10 13:08:34 -05:00