1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-28 17:47:29 +03:00

47 Commits

Author SHA1 Message Date
Andrew Tridgell
26b8701321 handle pushing of zero length smb2 strings
(This used to be commit 66d0502228b31533b5d93731128a681992c22eda)
2008-02-18 14:53:48 +11:00
Andrew Tridgell
2e4e06c6e6 fixed handling of zero sized buffers versus NULL buffers in
SMB2. Thanks to Metze for spotting this.
(This used to be commit fbcf3e65b9284e5d1862c98706d7f148a36afe47)
2008-02-16 07:25:38 +11: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 3aaa2e86d94675c6c68d66d75292c3e34bfbc81b)
2008-02-14 17:11:36 +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 52d7972d95ddc19d22a4187b4d4428a6c3ed32d5)
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 ca6d9be6cb6a403a81b18fa6e9a6a0518d7f0f68)
2008-02-14 10:12:33 +11:00
Andrew Tridgell
a2505c5a2c updated SMB2 header defines to match WSPP docs
(This used to be commit d2c6ad55eca27f50a38fc6e2a85032eddb3f0aae)
2008-02-12 17:00:35 +11:00
Jelmer Vernooij
d891c0c74a r26429: Avoid use of global_smb_iconv_convenience.
(This used to be commit d37136b7abfbba75ef2e5ab855eb3382b9648b8c)
2007-12-21 05:49:56 +01:00
Jelmer Vernooij
39ee38d9c1 r26316: Use contexts for conversion functions.
(This used to be commit f6420d933b5b011d428974f3a2a57edf19e6f482)
2007-12-21 05:48:30 +01:00
Jelmer Vernooij
2151cde580 r25554: Convert last instances of BOOL, True and False to the standard types.
(This used to be commit 566aa14139510788548a874e9213d91317f83ca9)
2007-10-10 15:07:55 -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 df9cebcb97e20564359097148665bd519f31bc6f)
2007-10-10 15:05:43 -05:00
Jelmer Vernooij
dccf3f99e4 r25027: Fix more warnings.
(This used to be commit 5085c53fcfade614e83d21fc2c1a5bc43bb2a729)
2007-10-10 15:05:41 -05:00
Jelmer Vernooij
cd962355ab r25000: Fix some more C++ compatibility warnings.
(This used to be commit 08bb1ef643ab906f1645cf6f32763dc73b1884e4)
2007-10-10 15:05:27 -05:00
Jelmer Vernooij
6cf69fee18 r24994: Fix some C++ warnings.
(This used to be commit 925abf74fa1ed5ae726bae8781ec549302786b39)
2007-10-10 15:05:26 -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 fcf38a38ac691abd0fa51b89dc951a08e89fdafa)
2007-10-10 14:59:12 -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 2390c9f24daccec917608cac0870890cdc73cb1c)
2007-10-10 14:52:26 -05:00
Jelmer Vernooij
0329d755a7 r17930: Merge noinclude branch:
* Move dlinklist.h, smb.h to subsystem-specific directories
 * Clean up ads.h and move what is left of it to dsdb/
   (only place where it's used)
(This used to be commit f7afa1cb77f3cfa7020b57de12e6003db7cfcc42)
2007-10-10 14:16:54 -05:00
Stefan Metzmacher
a5bafffd66 r17083: - implement SMB2 Cancel in the client
- the 0xffffffffffffffff seqnum is reserved for SMB2 Break (oplock breaks)
  so don't use it in a request. we should someday try to test this...

metze
(This used to be commit 730cdc4475822e28cb400116641294a7f98ad0b5)
2007-10-10 14:10:11 -05:00
Stefan Metzmacher
7c810db7da r16873: - grow the buffer with the correct size, we maybe had 1 byte preallocated
- body_size doesn't contain the preallocated byte so don't remove it

metze
(This used to be commit 3cf50e26b7dc11d85c46ef81a36c74acf97085c0)
2007-10-10 14:09:55 -05:00
Stefan Metzmacher
6acd9aed93 r16734: the 2 bytes after the opcode and before the flags,
is no padding...

the following patch is needed for vista beta2 to connect to samba4

metze
(This used to be commit 58baae8fc463cd2c4e4ce532c153ad80313b03eb)
2007-10-10 14:09:42 -05:00
Stefan Metzmacher
bd0dcebe36 r16705: fix a bug found by valgrind...
as we setup the 1 padding byte for non present dynamic part,
we need to overwrite it when we're getting a real dynamic part,
so we need to remove the buf->size +=1 when we do the first
push to the dynamic part (when buf->dynamic is still but->body + buf->body_fixed)

metze
(This used to be commit f309209629ad1b63a76fc06163a3eeb07dce4c86)
2007-10-10 14:09:39 -05:00
Stefan Metzmacher
7dc22bf3e0 r16566: add pull function for a site32/offset32 blob
metze
(This used to be commit 81702c36c28e9e32860c5d91887d2ad2121ce306)
2007-10-10 14:09:35 -05:00
Stefan Metzmacher
1911475976 r15770: when there's a dynamic body, we need to send the first byte even if the
dynamic size if 0

metze
(This used to be commit c7e8e79d75fd53fa37e9220e5bc9cac7ab574ff6)
2007-10-10 14:08:16 -05:00
Stefan Metzmacher
6885c6253e r15744: convert_string_talloc() handles src_len == 0 as error
but it's valid in this case

metze
(This used to be commit 92c19b1ba4e89bd1e973e084b254087c98ceac18)
2007-10-10 14:08:12 -05:00
Stefan Metzmacher
dc86ab3e45 r15532: add a BOOL body_dynamic_present, because the body_dynamic_size can be 0
also if the dynamic flag should be set

metze
(This used to be commit 7829100e1ee79f4f5d24004af221288e19c09b3e)
2007-10-10 14:05:54 -05:00
Jelmer Vernooij
0eddf14b30 r15191: Avoid uint_t as it's not standard.
(This used to be commit 7af59357b94e3819415b3a9257be0ced745ce130)
2007-10-10 14:04:15 -05:00
Andrew Tridgell
baa62e5637 r14434: use the right enum type
(This used to be commit 507def57cb83a3e12a3c8d60eb833fe47e9ec9e8)
2007-10-10 13:57:24 -05:00
Jelmer Vernooij
d4de4c2d21 r12608: Remove some unused #include lines.
(This used to be commit 70e7449318aa0e9d2639c76730a7d1683b2f4981)
2007-10-10 13:49:03 -05:00
Andrew Tridgell
d5f37ecf94 r11780: it turns out that the MxAc tag isn't a security descriptor, its a
request that the server return its own MxAc blob which contains the
maximum allowed access_mask for the returned file handle
(This used to be commit c0288aa8cd46ca384074f89430c226d725c39475)
2007-10-10 13:46:26 -05:00
Andrew Tridgell
c8c7fb2492 r11775: added support for creating files on SMB2 with initial EA lists and an ACL
(This used to be commit ff197092988cee64742f83df23c43ae664a196f9)
2007-10-10 13:46:25 -05:00
Andrew Tridgell
2ff21db535 r11771: - split out the setinfo blob construction in the libcli/raw code
- added a smb2_setinfo call

- added smb2_setinfo_file*() calls
(This used to be commit da0b6fb93683331134ef2f4abd8707e0c3fc6d9d)
2007-10-10 13:46:24 -05:00
Andrew Tridgell
fe996e8ac6 r11754: make the SMB2 blob push routines take offsets, so they fit better with
the rest of the packet construction code
(This used to be commit 387ec2b17ff30a1c040b460b498c8fa7d8770593)
2007-10-10 13:46:23 -05:00
Andrew Tridgell
1c71db99aa r11751: fixed the req->out.size calculation (it needs to be the complete
request size, including dynamic portion)
(This used to be commit 1b5cdf92cc7793b08d7c46ef00d4ff696b31c15e)
2007-10-10 13:46:22 -05:00
Stefan Metzmacher
fb90bebab6 r11743: - push the length at the correct offset
- let us push empty strings

metze
(This used to be commit 17c4b6298d757f2e53fe764608504bf737005cbe)
2007-10-10 13:46:20 -05:00
Stefan Metzmacher
ed069c1771 r11742: fix pushing of 0 length blobs
metze
(This used to be commit e985ab117c6afb2ea575b55bfaa97b0795ec5745)
2007-10-10 13:46:20 -05:00
Stefan Metzmacher
e9eb560685 r11741: - the buffer code (first 2 bytes in the SMB2 body) seem to be the length
of the fixed body part, and +1 if there's a dynamic part
- there're 3 types of dynamic blobs
  with uint16_t offset/uint16_t size
  with uint16_t offset/uint32_t size
  with uint32_t offset/uint32_t size /* aligned to 8 bytes */
- strings are transmitted in UTF-16 with no termination and
  packet into a uint16/uint16 blob

metze
(This used to be commit 79103c51e5c752fbdb4d25a0047b65002828df89)
2007-10-10 13:46:20 -05:00
Stefan Metzmacher
de5d71aebe r11722: make the smb2_push/pull functions take a smb2_request_buffer
and the pull ones also a TALLOC_CTX, then we can reuse this functions
in the server later

metze
(This used to be commit 9b616516cae269f0870e9b9a9cecd8ee3f0a9095)
2007-10-10 13:46:18 -05:00
Volker Lendecke
61317df8aa r11721: Fix warnings
(This used to be commit d760583e388157ff25e317da06c57e5a42f171bd)
2007-10-10 13:46:17 -05:00
Andrew Tridgell
c6395a30b0 r11715: added SMB2 read and write requests
(This used to be commit d3556cbfa38447d2d385b697c1855b3c13d42744)
2007-10-10 13:46:17 -05:00
Andrew Tridgell
67a85b3f1b r11697: - added a generic SMB2 getinfo call
- added a SMB2-SCANGETINFO test for scanning for available info levels

- added names for the info levels I recognise to smb2.h
(This used to be commit fe5986067e2aaca039d70393ccc8761434f18fe6)
2007-10-10 13:46:15 -05:00
Andrew Tridgell
2b7ee2ceee r11692: added a full composite (async) spnego session setup for SMB2. This
simplies the torture code a lot.
(This used to be commit 7bf1046fbb7fd83fecb2fa645628ba9a17aab037)
2007-10-10 13:46:14 -05:00
Andrew Tridgell
2e753f8518 r11679: opening/creating files in SMB2 now works. Lots of unknown parameters
in the call tho.
(This used to be commit 548fbd86b3b114493943b50669bdcba2f4ed87f2)
2007-10-10 13:46:12 -05:00
Stefan Metzmacher
7935df168f r11675: a more general way of getting rid of compiler warnings and errors
metze
(This used to be commit 653f5ccd61f2555bbd49b81c5cc660962b31aa68)
2007-10-10 13:46:11 -05:00
Andrew Tridgell
3e54c36fa4 r11674: SMB2 tree connect now works. We do 2 session setups and 2 tree
connects, giving the following output:

Running SMB2-CONNECT
Negprot reply:
current_time  = Fri Nov 11 20:10:42 2005 EST
boot_time     = Sat Nov 12 10:34:33 2005 EST
Session setup gave UID 0x40000000071
Session setup gave UID 0x140000000075
Tree connect gave tid = 0x7500000001
Tree connect gave tid = 0x7500000005
SMB2-CONNECT took 0.049024 secs
(This used to be commit a24a4c311005dec4c5638e9c7c10e5e2f9872f4d)
2007-10-10 13:46:11 -05:00
Stefan Metzmacher
d9d90e105b r11670: fix the build
metze
(This used to be commit c0eebe293f341dcf35229c2cbbc3029f6f853abb)
2007-10-10 13:46:10 -05:00
Andrew Tridgell
7a78d2d6b0 r11668: yay! we get a successful session setup with SMB2, and get back a 64bit uid
(This used to be commit 72b34a7c1b66af6be02f66639efc55a19c73e387)
2007-10-10 13:46:10 -05:00
Andrew Tridgell
555b45e12c r11665: started to put some meat on the structure used for the SMB2 library
the call definitions will be in smb2_calls.h, which will play a
similar role that smb_interfaces.h plays for the old SMB protocol
(This used to be commit 4ef3902a8a99a0b8caa81a07ba07830d7cbbc32c)
2007-10-10 13:46:09 -05:00
Andrew Tridgell
ac293f8534 r11662: the beginnings of a SMB2 client library. Very hackish, meant for experimentation
(This used to be commit 68422dc73f6ea51bf906f3db223ae8abf077aba1)
2007-10-10 13:46:09 -05:00