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

232 Commits

Author SHA1 Message Date
Jelmer Vernooij
f9ca9e46ad Finish removal of iconv_convenience in public API's. 2010-05-18 11:45:30 +02:00
Stefan Metzmacher
8fb3292c99 s4:smb_server: pass tsocket_addresses to the ntvfs layer
metze
2010-04-27 13:01:59 +02:00
Andrew Tridgell
b690fedef5 s4-waf: removed the AUTOGENERATED markers
we won't be using the mk -> wscript generator again
2010-04-06 20:27:16 +10:00
Andrew Tridgell
f9eae32f4b s4-waf: mark the wscript files as python so vim/emacs knows how to highlight them 2010-04-06 20:27:11 +10:00
Andrew Tridgell
845e0cbe6f build: commit all the waf build files in the tree 2010-04-06 20:26:48 +10:00
Matt Kraai
d8071e7ed7 Change uint_t to unsigned int in source4
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2010-02-02 07:18:18 +01:00
Stefan Metzmacher
577857d351 s4:gensec: change gensec_update_send/recv to tevent_req
metze
2009-12-24 17:38:34 +01:00
Andrew Tridgell
33cbe9c631 s4-server: use GUID_to_ndr_blob() in cldap and smb servers 2009-12-10 17:51:28 +11:00
Andrew Tridgell
f01ea8bf58 s4-smb2: use new GUID function in smb2 negprot 2009-12-10 17:51:27 +11:00
Stefan Metzmacher
b62964d6fe s4:smb_server/smb2: don't reset highest_smb2_seqnum on SMB2 Cancel
metze
2009-11-27 08:19:46 +01:00
Andrew Tridgell
7c158bdb1d s4-smb2: sequence numbers are not checked in SMB2_OP_CANCEL 2009-11-27 16:05:06 +11:00
Steven Danneman
7f14388721 s4/libcli: rename previously reserved field in SMB2 LOCK struct
The lock.in.reserved field has been renamed lock_sequence in the
SMB 2.1 dialect.  See MS-SMB 2.2.26.
2009-11-25 12:55:48 -08:00
Andrew Tridgell
7c807de6b8 s4-smbd: minimise includes in smbd/ and smb_server 2009-09-19 14:11:54 -07:00
Stefan Metzmacher
8d95883908 s4:smb2srv: don't allow the related flag on the first request in a compounded chain
metze
2009-06-09 19:33:46 +02:00
Stefan Metzmacher
959503ed1a s4:smb2srv: correctly fail remaining compounded requests after a failure
metze
2009-06-09 16:49:32 +02:00
Stefan Metzmacher
f55091586d s4:smb2srv: remove old TODO comment, we already check the seqnum
metze
2009-06-09 16:49:31 +02:00
Stefan Metzmacher
7633995fa0 s4:smb2srv: fix handling of multiple compounded requests
metze
2009-06-09 16:49:31 +02:00
Stefan Metzmacher
7b27b5f674 s4:smb2srv: remove the chained file handle on close
metze
2009-06-09 16:49:31 +02:00
Stefan Metzmacher
fadffbae88 s4:smb2srv: We only support SMB 2.002.
We need to loop over all given dialects and check
if we can find SMB2_DIALECT_REVISION_202.

metze
2009-05-26 09:50:45 +02:00
Sam Liddicott
4b21ad9db7 Have ntvfs_connect() accept union smb_tcon *tcon instead of char* sharename
This change brings ntvfs_connect into compliance with other ntvfs functions
which take an ntvfs module, an ntvfs request and an smb io union.

It now becomes the responsibility of ntvfs modules to examine
tcon->generic.level themselves and derive the share name and any other
options
directly; e.g.

	const char *sharename;

	switch (tcon->generic.level) {
	case RAW_TCON_TCON:
		sharename = tcon->tcon.in.service;
		break;
	case RAW_TCON_TCONX:
		sharename = tcon->tconx.in.path;
		break;
	case RAW_TCON_SMB2:
	default:
		return NT_STATUS_INVALID_LEVEL;
	}

	if (strncmp(sharename, "\\\\", 2) == 0) {
		char *p = strchr(sharename+2, '\\');
		if (p) {
			sharename = p + 1;
		}
	}

service.c smbsrv_tcon_backend() is called before ntvfs_connect and fills in
some of the tcon->..out values.
For the case of RAW_TCON_TCONX, it filles out tcon->tconx.out.tid and
tcon->tconx.out.options

For the case of RAW_TCON_TCON it fills out tcon->tcon.out.tid and
tcon->tcon.out.max_xmit

Thus the ntvfs_connect function for vfs modules may override these values
if desired, but are not required to.

ntvfs_connect functions are required to fill in the tcon->tconx.out.*_type
fields, for RAW_TCON_TCONX, perhaps something like:

	if (tcon->generic.level == RAW_TCON_TCONX) {
		tcon->tconx.out.fs_type = ntvfs->ctx->fs_type;
		tcon->tconx.out.dev_type = ntvfs->ctx->dev_type;
	}

Signed-off-by: Sam Liddicott <sam@liddicott.com>

(I fixed the ntvfs_connect() in the smb_server/smb2/
 and the RAW_TCON_SMB2 switch case in the modules)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-05-20 13:32:27 +02:00
Stefan Metzmacher
d51bb8e4e6 s4:smb_server: return after we have processed an invalid smb2 request
metze
2009-05-11 15:59:46 +02:00
Andrew Bartlett
71632a1697 Remove auth/ntlm as a dependency of GENSEC by means of function pointers.
When starting GENSEC on the server, the auth subsystem context must be
passed in, which now includes function pointers to the key elements.

This should (when the other dependencies are fixed up) allow GENSEC to
exist as a client or server library without bundling in too much of
our server code.

Andrew Bartlett
2009-02-13 10:24:16 +11:00
Stefan Metzmacher
5bf95a71dd s4:smb_server: s/private/private_data
metze
2009-02-02 13:08:36 +01:00
Sam Liddicott
7d8f3cdbfc Let ntvfs request transport close via ntvfs_request state
[I can't swear that this covers all the smb2 cases, there are some reply
functions that I can't trace properly]

Add NTVFS_ASYNC_STATE_CLOSE bit to ntvfs_request->async_states->state
so that the ntvfs layer can signify that the client transport should
be closed, most useful for proxy servies, and most likely due to a
forwarding transport having been closed.

Signed-off-by: Sam Liddicott <sam@liddicott.com>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2008-12-05 12:52:13 +01:00
Jelmer Vernooij
b034c519f5 Add gensec_settings structure. This wraps loadparm_context for now, but
should in the future only contain some settings required for gensec.
2008-11-02 02:05:48 +01:00
Jelmer Vernooij
23302413b3 Remove unused include param/param.h. 2008-10-24 16:37:56 +02:00
Jelmer Vernooij
922a29992e Remove iconv_convenience parameter from simple string push/pull
functions.
2008-10-24 03:40:09 +02:00
Andrew Tridgell
0cf7175126 we need different error handling for truncated packets in NETPROT and
other SMB2 operations.
2008-09-24 18:58:38 -07:00
Andrew Tridgell
eb5b3f50d1 we should terminate the connection on a bad negprot packet size 2008-09-24 18:10:23 -07:00
Andrew Tridgell
49c80cea0b cope with body_size zero in SMB2 receive 2008-09-24 18:10:23 -07:00
Andrew Tridgell
a3536c4c06 check for a 0 byte in the buffer in SMB2 read 2008-09-24 18:10:23 -07:00
Andrew Tridgell
7e57626d1d the offset is 16 bits in SMB2 fileinfo 2008-09-24 18:10:23 -07:00
Andrew Tridgell
71ae732669 fixed error code for bad keepalive 2008-09-24 18:10:22 -07:00
Andrew Tridgell
ff542275c3 stricter checking of SMB2 echo body (per the spec)
thanks to the bluearc test suite
2008-09-24 18:10:22 -07:00
Stefan Metzmacher
2a36568129 smb2srv: async replies with STATUS_PENDING are not signed
..., but the they may have the sign flag set.

metze
(This used to be commit 43e43dead0)
2008-08-14 13:13:50 +02:00
Stefan Metzmacher
0294c678c0 smb2srv: sign replies when the request was also signed
metze
(This used to be commit dd2f4f7a49)
2008-08-14 13:13:50 +02:00
Stefan Metzmacher
4a214dba30 smb2srv: use defines instead of hex values
metze
(This used to be commit 7c4abf6614)
2008-08-14 13:13:50 +02:00
Stefan Metzmacher
0251096a89 smb2srv: sign SMB2 Logoff replies
metze
(This used to be commit 2844e36173)
2008-07-28 14:09:46 +02:00
Stefan Metzmacher
8623e2cc4c smb2srv: correctly hold the signing state per session
metze
(This used to be commit 5b3ba3f355)
2008-07-28 14:09:45 +02:00
Andrew Tridgell
e4ad580b99 fixed mandatory signing
Metze pointed out that if signing is mandatory in the server then we
need to reject packets without the signed flag if the packet contains
a session id.
(This used to be commit 056f16e664)
2008-06-07 08:14:25 -07:00
Andrew Tridgell
e97cf207fa added server side SMB2 signing
(This used to be commit 8e919dcb08)
2008-06-06 22:10:30 -07:00
Andrew Tridgell
405e64c437 more updates for new info levels
(This used to be commit 85d1873ee9)
2008-06-02 11:05:06 +10:00
Andrew Tridgell
eb8634b2f0 check for requested buffer size in getinfo call
(This used to be commit ed8f16379d)
2008-05-31 13:39:51 +10:00
Andrew Tridgell
6ef9674caa the docs shows that this is a o16s32 blob
(This used to be commit a6d28e2b33)
2008-05-30 07:28:53 +10:00
Andrew Tridgell
de4c962638 fix from WSPP SMB2 test 11
(This used to be commit 81612b7854)
2008-05-29 19:32:04 +10:00
Andrew Tridgell
c86dc11be6 added support for returning the maximal access MXAC tag in SMB2 create
(This used to be commit 4eb49335d5)
2008-05-29 19:16:26 +10:00
Andrew Tridgell
6b70726305 implement the documented SMB2 create blobs in the server
Not all of them are honoured yet, but they are all parsed and the ones
that have SMB equivalents are honoured
(This used to be commit 9fc70e2ed6)
2008-05-28 16:28:37 +10:00
Andrew Tridgell
72739ac0d0 badly formed SMB2 packets get NT_STATUS_INVALID_PARAMETER
(This used to be commit 1c5dd2d1b6)
2008-05-22 13:14:55 +10:00
Andrew Tridgell
aed93a238e fixed SMB2 flush call, and added flush to gentest_smb2
(This used to be commit c52fe1fe1c)
2008-05-21 22:51:21 +10:00
Andrew Tridgell
4d39976ddd fixed SMB2 locking
- SMB2 locking is different in several ways from SMB locking. To fix
  it properly we will need a new generic mapping structure for
  locking, but for now do a best effort mapping

- added locking to gentest_smb2
(This used to be commit ea6d9cf602)
2008-05-21 22:12:20 +10:00
Andrew Tridgell
03eb236f20 Merge commit 'origin/v4-0-test' into vfs_smb2
(This used to be commit 733937e87a)
2008-05-19 11:40:25 +10:00
Jelmer Vernooij
4c70cda986 Fix a couple (well, little more than that..) of typos.
(This used to be commit a6b5211994)
2008-05-18 23:02:47 +02:00
Jelmer Vernooij
4c8756f147 Create prototype headers from Makefile directory, without smb_build in the middle.
(This used to be commit f4a77b96f9)
2008-05-18 22:30:08 +02:00
Jelmer Vernooij
03643aec88 Use variables for source directory in a couple more places.
(This used to be commit c41bd3005f)
2008-05-18 19:54:27 +02:00
Andrew Tridgell
2994b483c8 fixed file_index reference
(This used to be commit edb4b38ed3)
2008-05-16 12:46:16 +10:00
Andrew Tridgell
c0e247ab40 better match WSPP doc name for find flags
(This used to be commit 0e4b8602de)
2008-05-15 20:46:43 +10:00
Stefan Metzmacher
8b5f03a225 smb_server/smb2: handle incoming oplock releases
metze
(This used to be commit 2306394dcc)
2008-04-19 01:54:45 +02:00
Andrew Tridgell
769ebe9171 make smb2 read and write size configurable
(This used to be commit 2090e75e0c)
2008-04-17 09:37:29 +02:00
Stefan Metzmacher
79b2980cf5 smb_server/smb2: initialize new create.in.blobs element untill it'll be supported
metze
(This used to be commit fbfbd74e65)
2008-04-17 02:39:29 +02:00
Jelmer Vernooij
e9017ba418 Use _OBJ_FILES variables in a couple more places.
(This used to be commit 92856d5054)
2008-04-14 17:22:58 +02:00
Andrew Tridgell
275f32ae2d fill in unknown fields in SMB2 READ call
(This used to be commit 9b686c1380)
2008-04-14 11:31:17 +02:00
Jelmer Vernooij
afe3e8172d Install public header files again and include required prototypes.
(This used to be commit 47ffbbf674)
2008-04-02 04:53:27 +02:00
Stefan Metzmacher
87f2925252 ntvfs: pass down the client capabilities into the ntvfs layer
Note that we don't use any protocol specific values here.

For now only NTVFS_CLIENT_CAP_LEVEL_II_OPLOCKS is defined
others should be defined, when we find out that the ntvfs
layer needs to know about it.

metze
(This used to be commit cc42cd5f67)
2008-03-06 16:31:25 +01:00
Jelmer Vernooij
80cbff3d01 Fix build with partial linking.
(This used to be commit bfad9610c4)
2008-02-18 16:02:33 +01:00
Andrew Tridgell
5fb241e5d3 3 places where the VFS backend doesn't handle NULL strings.
(This used to be commit cf109460af)
2008-02-18 14:54:14 +11:00
Jelmer Vernooij
e33177001c Remove type before variables in data.mk
(This used to be commit 3c1a7c0dcc)
2008-02-14 12:03:34 +01:00
Andrew Tridgell
b640f475be updated SMB2 code for getinfo according to WSPP docs
- Updated getinfo structures and field names
- also updated the protocol revision number handling to reflect
  new docs
(This used to be commit 3aaa2e86d9)
2008-02-14 17:11:36 +11:00
Andrew Tridgell
4a04a5e620 A better way to handle the different format of RenameInformation in SMB2
We now define a separate info level RAW_SFILEINFO_RENAME_INFORMATION_SMB2
and set that level when handling SMB2 packets. This makes the parsers clearer.
(This used to be commit f6cdf3f117)
2008-02-14 14:54:21 +11:00
Andrew Tridgell
839ab724dc Fixed SMB2 rename operations from Vista clients
We needed a flag in bufinfo to mark packets as SMB2, as it seems that
SMB2 uses a different format for the RenameInformation buffer than SMB
does

Also handle the fact that SMB2 clients give the full path to the
target file in the rename, not a relative path
(This used to be commit 52d7972d95)
2008-02-14 12:30:31 +11:00
Andrew Tridgell
e870cfec9f Convert SMB and SMB2 code to use a common buffer handling structure
This converts our SMB and SMB2 code to use a common structure "struct
request_bufinfo" for information on the buffer bounds of a packet,
alignment information and string handling. This allows us to use a
common backend for SMB and SMB2 code, while still using all the same
string and blob handling functions.

Up to now we had been passing a NULL req handle into these common
routines from the SMB2 side of the server, which meant that we failed
any operation which did a bounds checked string extraction (such as a
RenameInformation setinfo call, which is what Vista uses for renaming
files)

There is still some more work to be done on this - for example we can
now remove many of the SMB2 specific buffer handling functions that we
had, and use the SMB ones.
(This used to be commit ca6d9be6cb)
2008-02-14 10:12:33 +11:00
Andrew Tridgell
88d2e05227 updated SMB2 create operation to match WSPP.
Adding some defined for various new create options
(This used to be commit d037dc23ce)
2008-02-13 15:05:44 +11:00
Andrew Tridgell
e94d710b0b updated SMB2 tcon as per WSPP docs
(This used to be commit 5913e3e549)
2008-02-13 10:13:28 +11:00
Andrew Tridgell
cd2b003aba fixed crash when 0 dialects (thanks metze!)
(This used to be commit 252bcf207b)
2008-02-12 20:29:31 +11:00
Andrew Tridgell
a2505c5a2c updated SMB2 header defines to match WSPP docs
(This used to be commit d2c6ad55ec)
2008-02-12 17:00:35 +11:00
Andrew Tridgell
416360895f converted SMB2 session setup to use WSPP protocol field names
(This used to be commit 3c2af0fdc4)
2008-02-12 16:43:38 +11:00
Andrew Tridgell
8fdb9504dc converted the out side of SMB2 negprot handling
This follows the SMB2 PFIF docs. Current versions of Vista can now connect to Samba4 as a SMB2 server
and do basic operations
(This used to be commit 9dc284770d)
2008-02-12 16:20:13 +11:00
Andrew Tridgell
ccc27e681c fixed up the .in side of SMB2 negprot
fixed the input side of the SMB2 negprot structure and parsers according to the documentation
(This used to be commit 55af8acc7b)
2008-02-12 12:54:44 +11:00
Jelmer Vernooij
df408d056e r26672: Janitorial: Remove uses of global_loadparm.
(This used to be commit 18cd08623e)
2008-01-05 13:06:03 -06:00
Jelmer Vernooij
7d5f0e0893 r26639: librpc: Pass iconv convenience on from RPC connection to NDR library, so it can be overridden by OpenChange.
(This used to be commit 2f29f80e07)
2008-01-01 16:12:15 -06:00
Jelmer Vernooij
86dc05e99f r26638: libndr: Require explicitly specifying iconv_convenience for ndr_struct_push_blob().
(This used to be commit 61ad78ac98)
2008-01-01 16:12:11 -06:00
Jelmer Vernooij
a2cea02584 r26430: require explicit specification of loadparm context.
(This used to be commit 1b947fe0e6)
2007-12-21 05:49:58 +01:00
Jelmer Vernooij
d891c0c74a r26429: Avoid use of global_smb_iconv_convenience.
(This used to be commit d37136b7ab)
2007-12-21 05:49:56 +01:00
Jelmer Vernooij
b65dba2245 r26355: Eliminate global_loadparm in more places.
(This used to be commit 5d589a0d94)
2007-12-21 05:49:01 +01:00
Jelmer Vernooij
a72c5053c5 r26353: Remove use of global_loadparm.
(This used to be commit 17637e4490)
2007-12-21 05:48:57 +01:00
Jelmer Vernooij
39ee38d9c1 r26316: Use contexts for conversion functions.
(This used to be commit f6420d933b)
2007-12-21 05:48:30 +01:00
Jelmer Vernooij
b83a7a135f r26268: Avoid more use of global_loadparm - put lp_ctx in smb_server and wbsrv_connection.
(This used to be commit 7c00866423)
2007-12-21 05:47:47 +01:00
Jelmer Vernooij
ecea5ce245 r26260: Store loadparm context in gensec context.
(This used to be commit b9e3a4862e)
2007-12-21 05:47:34 +01:00
Stefan Metzmacher
529763a9aa r25920: ndr: change NTSTAUS into enum ndr_err_code (samba4 callers)
lib/messaging/
lib/registry/
lib/ldb-samba/
librpc/rpc/
auth/auth_winbind.c
auth/gensec/
auth/kerberos/
dsdb/repl/
dsdb/samdb/
dsdb/schema/
torture/
cluster/ctdb/
kdc/
ntvfs/ipc/
torture/rap/
ntvfs/
utils/getntacl.c
ntptr/
smb_server/
libcli/wrepl/
wrepl_server/
libcli/cldap/
libcli/dgram/
libcli/ldap/
libcli/raw/
libcli/nbt/
libnet/
winbind/
rpc_server/

metze
(This used to be commit 6223c7fddc)
2007-12-21 05:45:02 +01:00
Jelmer Vernooij
0c56f8dac3 r25551: Convert to standard bool type.
(This used to be commit c9651e2c5c)
2007-10-10 15:07:54 -05:00
Jelmer Vernooij
37d53832a4 r25398: Parse loadparm context to all lp_*() functions.
(This used to be commit 3fcc960839)
2007-10-10 15:07:25 -05:00
Jelmer Vernooij
98b57d5eb6 r25035: Fix some more warnings, use service pointer rather than service number in more places.
(This used to be commit df9cebcb97)
2007-10-10 15:05:43 -05:00
Jelmer Vernooij
ffeee68e4b r25026: Move param/param.h out of includes.h
(This used to be commit abe8349f9b)
2007-10-10 15:05:38 -05:00
Andrew Tridgell
0479a2f1cb r23792: convert Samba4 to GPLv3
There are still a few tidyups of old FSF addresses to come (in both s3
and s4). More commits soon.
(This used to be commit fcf38a38ac)
2007-10-10 14:59:12 -05:00
Stefan Metzmacher
42c1ef4025 r23067: use 'const union smb_search_data *file' also in the server code to get rid
of compiler warnings in the cifs backend

metze
(This used to be commit 34ef07b1f5)
2007-10-10 14:52:47 -05:00
Stefan Metzmacher
6eaf8ee849 r23045: forward SMB2 oplock breaks to the client
metze
(This used to be commit 577acc198b)
2007-10-10 14:52:44 -05:00
Stefan Metzmacher
10498e8a72 r23044: - use uint32_t for handle id's
- include the session vuid in the SMB2 128-Bit wire handles
  as SMB2 oplock breaks doesn't include a TID or VUID in the header
  we need to make sure the handle is unique for the whole TCP connection

metze
(This used to be commit 7c29b8a7e6)
2007-10-10 14:52:44 -05:00
Andrew Tridgell
d3e28ccd48 r23020: a better fix for the memory leak - this one doesn't stuff up spnego :)
(This used to be commit 9a8da730a7)
2007-10-10 14:52:40 -05:00
Stefan Metzmacher
bf62b6642c r22866: handle incoming chained smb2 requests in our server code to let
the windows explorer in longhorn beta3 work.

metze
(This used to be commit 2390c9f24d)
2007-10-10 14:52:26 -05:00
Stefan Metzmacher
4eb1c753ab r22843: pass smb2 lock requests to the ntvfs layer
metze
(This used to be commit 7fa00381ef)
2007-10-10 14:52:24 -05:00
Andrew Bartlett
13dbee3ffe r19598: Ahead of a merge to current lorikeet-heimdal:
Break up auth/auth.h not to include the world.

Add credentials_krb5.h with the kerberos dependent prototypes.

Andrew Bartlett
(This used to be commit 2b569c42e0)
2007-10-10 14:25:00 -05:00