summaryrefslogtreecommitdiff
path: root/source4/ntvfs/ntvfs_generic.c
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r22865: handle pending locks in smb2Stefan Metzmacher1-1/+5
metze (This used to be commit 8329fa689521b12e4ce2ac094b3e322fa4ed4bb8)
2007-10-10r22849: map smb2 lock to the generic levelStefan Metzmacher1-10/+45
metze (This used to be commit fbbb144f8e5271a543c0b47b0105eccd357477ba)
2007-10-10r18835: expand IO limits on SMB2. Samba4 now tops out at 16.7MB IOs.Andrew Tridgell1-6/+0
(This used to be commit 1e34e4d5a1fd3d74080424140e4ab276b6042d12)
2007-10-10r17088: add ntvfs mapping function for notifyStefan Metzmacher1-0/+64
metze (This used to be commit 7daf432d58ecebd10a28acd3ddbded9cb16536d0)
2007-10-10r16868: init some uninitialized valuesStefan Metzmacher1-0/+3
(found by valgrind) metze (This used to be commit 1bb60b5be48fab7d84594283f58d2bc04c474b0c)
2007-10-10r16730: that is correct...Stefan Metzmacher1-2/+1
metze (This used to be commit 9c3992a27948f01803650c446914aa24be2a8d7a)
2007-10-10r16699: the layout of SMB2 Read and Write is identical...Stefan Metzmacher1-1/+0
so we know that the 9th bytes is just uninitialized padding metze (This used to be commit f97a21b970ed23973cced2c67b5bc9ecd7afee88)
2007-10-10r15814: add SMB2 Lock interface structureStefan Metzmacher1-0/+3
metze (This used to be commit 8f1850ef65dc8c860912639d787d82399d015f13)
2007-10-10r15760: - add RAW_READ_SMB2 => generic mappingStefan Metzmacher1-3/+22
- Implement SMB2 Read metze (This used to be commit d0ac0c5af44ba5aa8b18106c2ac26c0d194e59b4)
2007-10-10r15757: - add RAW_WRITE_SMB2 => generic mappingStefan Metzmacher1-0/+17
- implement SMB2 Write metze (This used to be commit 5ab6f304f8b91c0362fd57429cc24126b241bd51)
2007-10-10r15754: - implement SMB2 CloseStefan Metzmacher1-2/+9
- add RAW_CLOSE_SMB2 generic mapping metze (This used to be commit 41bc3cfc822bfc2fe4413f93a180fc4507005282)
2007-10-10r15752: - add generic mapping for RAW_OPEN_SMB2Stefan Metzmacher1-0/+32
metze (This used to be commit d26144f9575f1e53bfb837024d964a3324d38728)
2007-10-10r15750: don't clear after settingStefan Metzmacher1-1/+0
metze (This used to be commit 0e23d2a45a4507051bb3453387b82e7a9f4433ea)
2007-10-10r15734: This is a major change to the NTVFS subsystem:Stefan Metzmacher1-23/+23
- to use a struct ntvfs_handle instead of a uint16_t fnum. (to make it independend from the frontend protocol) - the allocation of handles now is provided by the frontend (smbsrv_*) via callbacks and not by each backend module - this also makes sure that file handles are only passed to the ntvfs subsystem when the tcon and session matches, so modules can rely on this and need to check this. - this allows multiple modules in the ntvfs module chain to allocate file handles. This can be used for virtual files like "\\$Extend\\$Quota:$Q:$INDEX_ALLOCATION"... - also this will make SMB2 with 128 bit file handles possible metze (This used to be commit 287fc1c22d670f6e568014b420f7f4cb31dc7958)
2007-10-10r15328: Move some functions around, remove dependencies.Jelmer Vernooij1-1/+0
Remove some autogenerated headers (which had prototypes now autogenerated by pidl) Remove ndr_security.h from a few places - it's no longer necessary (This used to be commit c19c2b51d3e1ad347120b06a22bda5ec586c22e8)
2007-10-10r14736: - the ntvfs subsystem should not know about smb_server.hStefan Metzmacher1-1/+0
- the process module subsystem should not know about smb_server.h - the smb_server module should not know about process models metze (This used to be commit bac95bb8f4ad35a31ee666f5916ff9b2f292d964)
2007-10-10r14487: split smbsrv_request into two parts, one will be moved to ntvfs_requestStefan Metzmacher1-1/+1
but I don't to get the commit to large, to I'll do this tomorrow... metze (This used to be commit 10e627032d7d04f1ebf6efed248c426614f5aa6f)
2007-10-10r14256: - rename smb_file -> smb_handleStefan Metzmacher1-34/+34
- move it into the in/out substructs again - allow file.path only on smb_fileinfo/smb_setfileinfo metze (This used to be commit be6d5298a2cdb7e7c61d70471bad445645af5963)
2007-10-10r14208: removed use of req->flags2 inside the ntvfs layer. This should helpAndrew Tridgell1-0/+1
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 b78abbbce60ab0009da19a72dd769800c44298a2)
2007-10-10r14173: change smb interface structures to always useStefan Metzmacher1-24/+24
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 2ef3f5970901b5accdb50f0d0115b5d46b0c788f)
2007-10-10r14157: - pass a struct ntvfs_request to the ntvfs layerStefan Metzmacher1-54/+68
(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 ed9ed1f48f602354810937c0b0de850b44322191)
2007-10-10r13623: - make sure ntvfs_map_qfileinfo isn't used for async repliesStefan Metzmacher1-2/+14
- add some comments metze (This used to be commit e1611b622184b48d2cef1eff2646a09f9e691f9b)
2007-10-10r12838: make the ntvfs function publicStefan Metzmacher1-18/+18
metze (This used to be commit 41a564fdba5969fc7e518439520764fd56cfa280)
2007-10-10r12528: Add seperate proto headers for ntvfs, tdr, smb_server and nbt_server.Jelmer Vernooij1-0/+1
(This used to be commit 87f665a1d5ba74289974bf9d8f9441c162e6f1b1)
2007-10-10r10138: Fix the mapping table (as tested in smbtorture). EXEC_ACCESSJeremy Allison1-1/+1
should map to SEC_RIGHTS_FILE_READ, not READ|WRITE. Jeremy. (This used to be commit 26f63973e6207e3b5c3123f1326027ceac38966f)
2007-10-10r8107: now that we properly separate DOS and NT status codes all the placesAndrew Tridgell1-3/+3
that relied on the mapping need to be fixed. The first thing is to get all the torture tests working against w2k3 again with nt status codes enabled. The 2nd step will be to make them pass with nt status disabled. This starts on the first task, fixing the assumption that NT_STATUS_INVALID_LOCK_SEQUENCE is a valid substitute for ERRDOS:ERRbadaccess (This used to be commit 87cdd117081193d215c5a9e3603438e058ad777b)
2007-10-10r5037: got rid of all of the TALLOC_DEPRECATED stuff. My apologies for theAndrew Tridgell1-18/+18
large commit. I thought this was worthwhile to get done for consistency. (This used to be commit ec32b22ed5ec224f6324f5e069d15e92e38e15c0)
2007-10-10r4549: got rid of a lot more uses of plain talloc(), instead usingAndrew Tridgell1-4/+7
talloc_size() or talloc_array_p() where appropriate. also fixed a memory leak in pvfs_copy_file() (failed to free a memory context) (This used to be commit 89b74b53546e1570b11b3702f40bee58aed8c503)
2007-10-10r4173: - new t2open code, that can cope with "create with EAs". Many thanksAndrew Tridgell1-185/+147
to kukks on #samba-technical for the sniffs that allowed me to work this out - much simpler ntvfs open generic mapping code - added t2open create with EA torture test to RAW-OPEN test (This used to be commit a56d95ad89b4f32a05974c4fe9a816d67aa369e3)
2007-10-10r4011: get rid of rpc_secdes.h and replace it with a single sane set ofAndrew Tridgell1-14/+17
definitions for security access masks, in security.idl The previous definitions were inconsistently named, and contained many duplicate and misleading entries. I kept finding myself tripping up while using them. (This used to be commit 01c0fa722f80ceeb3f81f01987de95f365a2ed3d)
2007-10-10r3618: - this adds the special case for DENY_DOS semantics, as shown by the ↵Andrew Tridgell1-3/+7
BASE-DENYDOS test. - pvfs now passes BASE-DENY1 and BASE-DENYDOS. (This used to be commit aa09df22ee729c02552638859236d9068e9748ae)
2007-10-10r3574: the RAW-OPEN test changes broke a couple of the other tests. ThisAndrew Tridgell1-8/+13
fixes most of them, although RAW-SEARCH still fails (due to an interaction with the new xattr code) (This used to be commit 09b4652b40c4cfca027765178bd5a0adbaa666c2)
2007-10-10r3573: added trans2open support to smbd and pvfs, and fine-tuned the ↵Andrew Tridgell1-8/+41
open->generic ntvfs mapping code. (This used to be commit ed844192d7f7ed487290f719df65f256a5b0b9bc)
2007-10-10r3531: add support for RAW_OPEN_MKNEW, RAW_OPEN_CREATE and RAW_OPEN_CTEMP in ↵Andrew Tridgell1-18/+91
pvfs (This used to be commit 1d2f0a55c1de01cbbf6552371584847223841bc3)
2007-10-10r3530: make sure we match ntvfs_async_state_pop() with ntvfs_async_state_push()Andrew Tridgell1-7/+16
(This used to be commit 730ae0600e6c75a7048f7aaf3995604e8cdbba39)
2007-10-10r3528: added support for the SMBntcancel() operation, which cancels anyAndrew Tridgell1-0/+3
outstanding async operation (triggering an immediate timeout). pvfs now passes the RAW-MUX test (This used to be commit 3423e2f41461d054067ef168b9b986f62cc8f77c)
2007-10-10r3522: added async support to most of the ntvfs_map_*() functions, allowing ↵Andrew Tridgell1-276/+429
functions like SMBopenx, SMBread and SMBwrite to be performed async (This used to be commit 9e80eb18ae8c4a4a8cdf2f32f0c869fbbc3832b4)
2007-10-10r3466: split out request.h, signing.h, and smb_server.hAndrew Tridgell1-0/+2
(This used to be commit 7c4e6ebf05790dd6e29896dd316db0fff613aa4e)
2007-10-10r3461: another place where "open" was used as a structure elementAndrew Tridgell1-2/+2
(This used to be commit 1087ea830e7aead86d54a1836512e88554afc919)
2007-10-10r3458: more solaris portability fixes, the main one being that we can't use aAndrew Tridgell1-18/+18
structure element called "open" as its a macro on solaris. (This used to be commit 4e92e15c4e396b1d8cd211192888fea68c2cf0f9)
2007-10-10r3427: split the openx logic out from the other open mapping codeAndrew Tridgell1-125/+138
(This used to be commit 8d71ed9271a6ee43b9a3c28724b95714b5d2e56d)
2007-10-10r3336: use a struct ntvfs_async_state to be able to do async chaning of ↵Stefan Metzmacher1-4/+4
ntvfs modules the idea is that a passthru module can use ntvfs_async_state_push() before calling ntvfs_next_*() and in the _send function it calls ntvfs_async_state_pop() and then call the upper layer send_fn itself - ntvfs_nbench is now fully async - the ntvfs_map_*() functions and the trans(2) mapping functions are not converted yet metze (This used to be commit fde64c0dc142b53d128c8ba09af048dc58d8ef3a)
2007-10-10r3200: - improved the accuracy of openx emulation. We now nearly pass the ↵Andrew Tridgell1-10/+46
openx portion of RAW-OPEN - fixed directory size reporting to make it consistent. we now pass the ntcreatex portion of RAW-OPEN (This used to be commit 6282e5811b8d4f1c17152d86875ac60d1323779d)
2007-10-10r3107: slight tweak to the openx -> ntcreatex mapping routine. This mappingAndrew Tridgell1-2/+1
can never be perfect, as openx can do things that ntcreatex can't, but with this tweak we get close (the BASE-DENY1 test passes completely, for example) (This used to be commit 88112b9677b3c9ca97d349905c95516c6f29c8a7)
2007-10-10r3087: fixed a typoAndrew Tridgell1-1/+1
(This used to be commit 3791b97694f052b0b7e170e07c21f7a5739d74dd)
2007-10-10r3083: fixed a couple of generic mapping errors found with RAW-* and ↵Andrew Tridgell1-2/+4
cifs:mapgeneric (This used to be commit 76329798ff7f804bf4d7e6e9c1bb4c4dc7b9bb01)
2007-10-10r3081: several updates to ntvfs and server side async request handling inAndrew Tridgell1-98/+385
preparation for the full share modes and ntcreatex code that I am working on. highlights include: - changed the way a backend determines if it is allowed to process a request asynchronously. The previous method of looking at the send_fn caused problems when an intermediate ntvfs module disabled it, and the caller then wanted to finished processing using this function. The new method is a REQ_CONTROL_MAY_ASYNC flag in req->control_flags, which is also a bit easier to read - fixed 2 bugs in the readbraw server code. One related to trying to answer a readbraw with smb signing (which can't work, and crashed our signing code), the second related to error handling, which attempted to send a normal SMB error packet, when readbraw must send a 0 read reply (as it has no header) - added several more ntvfs_generic.c generic mapping functions. This means that backends no longer need to implement such esoteric functions as SMBwriteunlock() if they don't want to. The backend can just request the mapping layer turn it into a write followed by an unlock. This makes the backends considerably simpler as they only need to implement one style of each function for lock, read, write, open etc, rather than the full host of functions that SMB provides. A backend can still choose to implement them individually, of course, and the CIFS backend does that. - simplified the generic structures to make them identical to the principal call for several common SMB calls (such as RAW_WRITE_GENERIC now being an alias for RAW_WRITE_WRITEX). - started rewriting the pvfs_open() code in preparation for the full ntcreatex semantics. - in pvfs_open and ipc_open, initially allocate the open file structure as a child of the request, so on error we don't need to clean up. Then when we are going to succeed the open steal the pointer into the long term backend context. This makes for much simpler error handling (and fixes some bugs) - use a destructor in the ipc backend to make sure that everthing is cleaned up on receive error conditions. - switched the ipc backend to using idtree for fnum allocation - in the ntvfs_generic mapping routines, use a allocated secondary structure not a stack structure to ensure the request pointer remains valid even if the backend replies async. (This used to be commit 3457c1836c09c82956697eb21627dfa2ed37682e)
2007-10-10r2751: this is a new ntvfs design which tries to solve:Stefan Metzmacher1-9/+9
- the stacking of modules - finding the modules private data - hide the ntvfs details from the calling layer - I set NTVFS_INTERFACE_VERSION 0 till we are closer to release (because we need to solve some async problems with the module stacking) metze (This used to be commit 3ff03b5cb21bb79afdd3b1609be9635f6688a539)
2007-10-10r2561: completely redid the ntvfs module chaining code, You can now do ↵Andrew Tridgell1-9/+13
something like: ntvfs handler = nbench posix and the nbench pass-thru module will be called before the posix module. The chaining logic is now much saner, and less racy, with each level in the chain getting its own private pointer rather than relying on save/restore logic in the pass-thru module. The only pass-thru module we have at the moment is the nbench one (which records all traffic in a nbench compatibe format), but I plan on soon writing a "unixuid" pass-thru module that will implement the setegid()/setgroups()/seteuid() logic for standard posix uid handling. This separation of the posix backend from the uid handling should simplify the code, and make development easier. I also modified the nbench module so it can do multiple chaining, so if you want to you can do: ntvfs module = nbench nbench posix and it will save 2 copies of the log file in /tmp. This is really only useful for testing at the moment until we have more than one pass-thru module. (This used to be commit f84c0af35cb54c8fdc4933afefc18fa4c062aae4)
2007-10-10r2249: got rid of some more mem_ctx elements in structuresAndrew Tridgell1-7/+7
(This used to be commit 21ef338cbbe96acc8594ffc550ef60c6a40fb951)