summaryrefslogtreecommitdiff
path: root/source4/ntvfs
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r2794: a very simple version of the unixuid NTVFS pass-thru module. InAndrew Tridgell5-55/+821
conjunction with the posix backend this gives us a way to correctly setup the unix security context in Samba4. I chose the following method to determine the unix uid's and gid's to use given the list of SIDs from the login process - look for a "UnixID" field in the sam record. If present, then use it (check if the record is of the right type as well) - if UnixID is not present, then look for the "UnixName" sam field. If it is present then use getpwnam() or getgrnam() to find the unix id. - if UnixID and UnixName are not present, then look for a unix account of the right type called by the same name as the sAMAccountName field. - if none of the above work then fail the operation with NT_STATUS_ACCESS_DENIED obviously these steps only work well with a local SAM. It will need to be more sophisticated in future. I did not put any cache in place at all. That will need to be added for decent performance. (This used to be commit 78b67d19b9766131f0270e451089ee5bb1aa8bd9)
2007-10-10r2789: fix compileSimo Sorce1-1/+1
(This used to be commit a34ba8dafebb65e59616a0e68cc3d6fe3a349801)
2007-10-10r2788: prevent a memory leak in the pvfs search backendAndrew Tridgell2-4/+6
(This used to be commit 1de22070610231e60d329f56997bbec2cc674a4e)
2007-10-10r2786: - match on both long and short name for search posix backendAndrew Tridgell3-4/+29
- a final name component of . is illegal (This used to be commit 11c852170b83e5adbdb58407e1c7d3aeb4ab5bb8)
2007-10-10r2751: this is a new ntvfs design which tries to solve:Stefan Metzmacher24-415/+1178
- 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-10r2710: continue with the new style of providing a parent context wheneverAndrew Tridgell2-25/+16
possible to a structure creation routine. This makes for much easier global cleanup. (This used to be commit e14ee428ec357fab76a960387a9820a673786e27)
2007-10-10r2679: fixed an uninitialised variable found with valgrindAndrew Tridgell1-1/+2
(This used to be commit 9087fab0adcf1791caeb795509ca9f14f5f47e82)
2007-10-10r2671: we're getting too many errors caused by the talloc_realloc() API notAndrew Tridgell5-18/+11
taking a context (so when you pass a NULL pointer you end up with memory in a top level context). Fixed it by changing the API to take a context. The context is only used if the pointer you are reallocing is NULL. (This used to be commit 8dc23821c9f54b2f13049b5e608a0cafb81aa540)
2007-10-10r2660: - converted the libcli/raw/ library to use talloc_increase_ref_count()Andrew Tridgell12-22/+156
rather than manual reference counts - properly support SMBexit in the cifs and posix backends - added a logoff method to all backends With these changes the RAW-CONTEXT test now passes against the posix backend (This used to be commit c315d6ac1cc40546fde1474702a6d66d07ee13c8)
2007-10-10r2656: moved the seteuid configure tests into the posix backend (these testsAndrew Tridgell1-0/+57
don't actually work yet, that will come later) (This used to be commit 46b790c19da25ba88d29f555f828688bb05e531d)
2007-10-10r2654: fixed some more server memory leaks. We are now down to a single leakAndrew Tridgell1-1/+1
of 16 bytes, caused by the 16 byte data_blob in the smb_signing code. (This used to be commit 2f1b788e09686e065d22f621f5c0c585192c6740)
2007-10-10r2634: use discard_const_p() in a few placesAndrew Tridgell1-2/+2
(This used to be commit 56ecda2178e33508c55c6195ccec41c06e099d6f)
2007-10-10r2633: fixed some function types in the (unused) print backendAndrew Tridgell1-2/+2
(This used to be commit e9803058ecc0b0f849aee48a077bff4e2c8feaa5)
2007-10-10r2627: use the new talloc capabilities in a bunch more places in the rpcAndrew Tridgell1-1/+1
server code. This fixes a number of memory leaks I found when testing with valgrind and smbtorture, as the cascading effect of a talloc_free() ensures that anything derived from the top level object is destroyed on disconnect. (This used to be commit 76d0b8206ce64d6ff4a192979c43dddbec726d6e)
2007-10-10r2613: use a talloc destructor to ensure that file descriptors are not leakedAndrew Tridgell1-2/+26
on abnormal termination of a connection. As long as the top level connection structure is freed then that should cascade down to the file structure, and call this destructor which will close the open file descriptor. In general I'd like to use this technique in any place in Samba4 where we hold operating system resources that we need to make sure are released on abnormal termination. (This used to be commit ed87b7fcbd9fedc155528ce6dd8ab5d5fce637b2)
2007-10-10r2591: fixed two errors in simple backend found with valgrindAndrew Tridgell1-0/+2
(This used to be commit 1730882b9d2ecff1b65e5fc85961edb300a9ce17)
2007-10-10r2586: updated the nbench example in the README to reflect the new chaining ↵Andrew Tridgell1-2/+1
syntax (This used to be commit be20b3164cfe1d5c228072722cb6e5894fdacb23)
2007-10-10r2580: fixed an uninitialised byte found by valgrindAndrew Tridgell1-2/+2
(This used to be commit 0806378b0e34ba3d665a9db739539819f3f52054)
2007-10-10r2573: - added a configure test for nanosecond time resolution in struct statAndrew Tridgell5-26/+56
(recently Linux systems support this, allowing us to support the full resolution in NTTIME) - use nanosecond resolution in the posix backend if available - moved the configure tests and list of object files for the posix backend into ntvfs/posix/ to keep them more neatlly separated. (This used to be commit d92ad9f307fe16a3b253a0555b437f14c94b4dd7)
2007-10-10r2572: fixed two places where status is not initialised in the nbench backendAndrew Tridgell1-2/+2
(This used to be commit 4103392a597349890e0e7ea1c41d5b0ab3816853)
2007-10-10r2562: got rid of the "reference" backend that never happened - the code isAndrew Tridgell3-1021/+0
too stale to be of any use as a reference. (This used to be commit 8d455a6f091d7aa528e86ae3b3712170b5fc6c2c)
2007-10-10r2561: completely redid the ntvfs module chaining code, You can now do ↵Andrew Tridgell22-177/+182
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-10r2552: Character set conversion and string handling updates.Andrew Bartlett1-2/+2
The intial motivation for this commit was to merge in some of the bugfixes present in Samba3's chrcnv and string handling code into Samba4. However, along the way I found a lot of unused functions, and decided to do a bit more... The strlen_m code now does not use a fixed buffer, but more work is needed to finish off other functions in str_util.c. These fixed length buffers hav caused very nasty, hard to chase down bugs at some sites. The strupper_m() function has a strupper_talloc() to replace it (we need to go around and fix more uses, but it's a start). Use of these new functions will avoid bugs where the upper or lowercase version of a string is a different length. I have removed the push_*_allocate functions, which are replaced by calls to push_*_talloc. Likewise, pstring and other 'fixed length' wrappers are removed, where possible. I have removed the first ('base pointer') argument, used by push_ucs2, as the Samba4 way of doing things ensures that this is always on an even boundary anyway. (It was used in only one place, in any case). (This used to be commit dfecb0150627b500cb026b8a4932fe87902ca392)
2007-10-10r2524: a simple pvfs rename implementation to make testing easierAndrew Tridgell3-10/+70
(This used to be commit 98c1c75076fdb0df3a7c616f8c2e1ed138a6ff9a)
2007-10-10r2520: - finished implementing the server side of the old style search requestsAndrew Tridgell1-81/+200
(This used to be commit 4e4859c06b9de5fe60ebd17cfb09eed480b79ec1)
2007-10-10r2503: the RAW-SEARCH test now mostly passes against the posix backendAndrew Tridgell4-103/+264
(This used to be commit 9710f24b1fd103d5656c9585cdfed96449cf9f97)
2007-10-10r2469: complete overhaul of the old-style RAW_SEARCH_ calls (the OS/2 andAndrew Tridgell2-21/+91
original core level calls). The old code was completely wrong in many respects. also fixed the EA_SIZE level in the server extended the RAW-SEARCH test suite to test the new code properly (This used to be commit 71480271ad84b57fcdde264a54bb2408cf783255)
2007-10-10r2447: let the server code use the new lib/socket/ stuffStefan Metzmacher1-1/+3
metze (This used to be commit 2fd577d2417e117a7e8c1a56feb147eae805df34)
2007-10-10r2438: compile on systems without O_DIRECTORY (probably won't work, but I'll ↵Andrew Tridgell1-0/+5
get to that later) (This used to be commit 5e2027f8ec7248e48d1dfb94c3688c78c64a85c5)
2007-10-10r2436: the second big lump of posix vfs code.Andrew Tridgell15-186/+824
this is still just a skeleton, and many of the functions are just based on the simple vfs backend, they are there to allow me to run smbtorture tests against the real parts of the posix backend. (This used to be commit f2fa7fe565e89360dba3bb5434d3a6a36f398348)
2007-10-10r2434: separate "attrib" and "ex_attrib" elements for DOS attributes is ↵Andrew Tridgell1-1/+0
pointless (This used to be commit 5fcad57128e47d4d6c0f387d5563d9de2fc08351)
2007-10-10r2404: the first large lump of posix vfs stuff.Andrew Tridgell10-37/+1145
this is still very much a skeleton (with many limbs missing too!). I am committing this early to get some feedback on the approach taken. (This used to be commit 40d5cae5ebbfe328e193eadb685df6a370730299)
2007-10-10r2403: got rid of a unnecessary mem_ctx in the simple backendAndrew Tridgell2-3/+0
(This used to be commit a4dcf005f30afcb2edd57d450ff9b90341c318a2)
2007-10-10r2326: remove definition and usage of struct socket_contextStefan Metzmacher1-1/+1
metze (This used to be commit 1854907da8d577db41de9aa14573d5c8c0092f47)
2007-10-10r2319: let event_merge_contexts() return a pointer to the final contextStefan Metzmacher1-4/+2
metze (This used to be commit 71aa5eeea73ea42e04ae224914b6815d72c1690a)
2007-10-10r2252: don't register the same name twiceAndrew Tridgell1-2/+2
(This used to be commit fdb675bbad1322ddd94c646f67803b9678468a64)
2007-10-10r2251: forgot to add vfs_posix.h in my last commitAndrew Tridgell2-2/+261
note that this is just a skeleton so far. More to come soon. (This used to be commit efc8850b9aa9348f5f7c4b342aa76dab1635e7d4)
2007-10-10r2249: got rid of some more mem_ctx elements in structuresAndrew Tridgell10-79/+94
(This used to be commit 21ef338cbbe96acc8594ffc550ef60c6a40fb951)
2007-10-10r2247: talloc_destroy -> talloc_freeTim Potter1-3/+3
(This used to be commit 6c1a72c5d667245b1eec94f58e68acd22dd720ce)
2007-10-10r2055: Add PRINTF_ATTRIBUTE to many more parts of the code, and a newAndrew Bartlett1-0/+3
--enable-developer warning for when they are missing. Andrew Bartlett (This used to be commit 8115e44d47bcd65edba08d10117180ae508cdbc1)
2007-10-10r2030: quick hack to allow the simple NTVFS backend to handler base ↵Andrew Tridgell1-1/+1
directories with mixed case names (This used to be commit efecc3306efb17f586b781112886d9416b355d65)
2007-10-10r1983: a completely new implementation of tallocAndrew Tridgell4-6/+6
This version does the following: 1) talloc_free(), talloc_realloc() and talloc_steal() lose their (redundent) first arguments 2) you can use _any_ talloc pointer as a talloc context to allocate more memory. This allows you to create complex data structures where the top level structure is the logical parent of the next level down, and those are the parents of the level below that. Then destroy either the lot with a single talloc_free() or destroy any sub-part with a talloc_free() of that part 3) you can name any pointer. Use talloc_named() which is just like talloc() but takes the printf style name argument as well as the parent context and the size. The whole thing ends up being a very simple piece of code, although some of the pointer walking gets hairy. So far, I'm just using the new talloc() like the old one. The next step is to actually take advantage of the new interface properly. Expect some new commits soon that simplify some common coding styles in samba4 by using the new talloc(). (This used to be commit e35bb094c52e550b3105dd1638d8d90de71d854f)
2007-10-10r1916: return a more clear error, we are miss configure in this caseStefan Metzmacher1-1/+1
metze (This used to be commit a908f831cb9dd265f9b183512053f9e608feec3d)
2007-10-10r1654: rename cli_ -> smbcli_Stefan Metzmacher1-36/+36
rename CLI_ -> SMBCLI_ metze (This used to be commit 8441750fd9427dd6fe477f27e603821b4026f038)
2007-10-10r1578: the first stage of the async client rewrite.Andrew Tridgell1-16/+13
Up to now the client code has had an async API, and operated asynchronously at the packet level, but was not truly async in that it assumed that it could always write to the socket and when a partial packet came in that it could block waiting for the rest of the packet. This change makes the SMB client library full async, by adding a separate outgoing packet queue, using non-blocking socket IO and having a input buffer that can fill asynchonously until the full packet has arrived. The main complexity was in dealing with the events structure when using the CIFS proxy backend. In that case the same events structure needs to be used in both the client library and the main smbd server, so that when the client library is waiting for a reply that the main server keeps processing packets. This required some changes in the events library code. Next step is to make the generated rpc client code use these new capabilities. (This used to be commit 96bf4da3edc4d64b0f58ef520269f3b385b8da02)
2007-10-10r1499: combine struct user_struct and struct smbsrv_userStefan Metzmacher1-2/+2
to a struct smbsrv_session that the same as cli_session for the client we need a gensec_security pointer there (spnego support will follow) prefix some related functions with smbsrv_ metze (This used to be commit f276378157bb9994c4c91ce46150a510de5c33f8)
2007-10-10r1486: commit the start of the generic server infastructureStefan Metzmacher1-3/+3
the idea is to have services as modules (smb, dcerpc, swat, ...) the process_model don't know about the service it self anymore. TODO: - the smbsrv should use the smbsrv_send function - the service subsystem init should be done like for other modules - we need to have a generic socket subsystem, which handle stream, datagram, and virtuell other sockets( e.g. for the ntvfs_ipc module to connect to the dcerpc server , or for smb or dcerpc or whatever to connect to a server wide auth service) - and other fixes... NOTE: process model pthread seems to be broken( but also before this patch!) metze (This used to be commit bbe5e00715ca4013ff0dbc345aa97adc6b5c2458)
2007-10-10r1470: Get the smb_trans2 structure out of the rap_cli_call struct.Volker Lendecke4-1/+524
Initial attempt at RAP server infrastructure. Look at rap_server.c for the dummy functions that are supposed to implement the core functionality. ipc_rap.c contains all the data shuffling. _rap_shareenum and _rap_serverenum2 in ipc_rap.c are (I think) regular enough to be auto-generated. I did not test all the corner cases yet, but nevertheless I would like some comments on the general style. Volker P.S: samba-3 smbclient now doesn't freak out anymore, although the results are not entirely correct :-) (This used to be commit 08140cc1a838b4eaa23c897b280a46c95b7ef3e0)
2007-10-10r1355: Add const (I missed this when I changed the function prototype earlier)Andrew Bartlett1-1/+1
Andrew Bartlett (This used to be commit dbe484a0c2c1ef99b71621208fb3fec68fe4fada)
2007-10-10r1294: A nice, large, commit...Andrew Bartlett1-3/+3
This implements gensec for Samba's server side, and brings gensec up to the standards of a full subsystem. This means that use of the subsystem is by gensec_* functions, not function pointers in structures (this is internal). This causes changes in all the existing gensec users. Our RPC server no longer contains it's own generalised security scheme, and now calls gensec directly. Gensec has also taken over the role of auth/auth_ntlmssp.c An important part of gensec, is the output of the 'session_info' struct. This is now reference counted, so that we can correctly free it when a pipe is closed, no matter if it was inherited, or created by per-pipe authentication. The schannel code is reworked, to be in the same file for client and server. ntlm_auth is reworked to use gensec. The major problem with this code is the way it relies on subsystem auto-initialisation. The primary reason for this commit now.is to allow these problems to be looked at, and fixed. There are problems with the new code: - I've tested it with smbtorture, but currently don't have VMware and valgrind working (this I'll fix soon). - The SPNEGO code is client-only at this point. - We still do not do kerberos. Andrew Bartlett (This used to be commit 07fd885fd488fd1051eacc905a2d4962f8a018ec)