Age | Commit message (Collapse) | Author | Files | Lines |
|
new open mechanism Andrew & I discussed.
config.sub:
configure: Included the QNX patch.
include/vfs.h:
smbd/vfs-wrap.c:
smbd/vfs.c: Added ftruncate vfs call (needed).
Note that we will also need locking calls in the vfs (to be added).
lib/util_unistr.c:
nmbd/nmbd_processlogon.c: Fix for NT domain logons causing nmbd to core dump.
Also fix for sidsize DOS bug.
locking/locking.c: Check value of ret before using it for memdup.
printing/printing.c: Convert print_fsp_open to return an allocated fsp.
rpc_server/srv_lsa.c: Fix for NT domain logons.
I have removed all use of lp_share_modes() from the code (although I
left the parameter in the table for backwards compatibility). It no longer makes
sense for this to exist.
smbd/close.c: Removed lp_share_modes().
smbd/fileio.c: Fixed parameters to unlock_share_entry call in panic code.
smbd/files.c: Correctly set the unix_ERR_code to ERRnofids on fsp allocation fail.
smbd/nttrans.c:
smbd/reply.c:
smbd/trans2.c: Changed all occurrences of open_file_shared/open_directory/
open_file_stat to return an fsp from the call.
smbd/open.c: Changed all occurrences of open_file_shared/open_directory/
open_file_stat to return an fsp from the call.
In addition I have fixed a long standing race condition in the deny mode
processing w.r.t. two smbd's creating a file. Andrew, please note that
your original idea of using open with O_EXCL in this case would not work
(I went over the races very carefully) and so we must re-check deny modes
*after* the open() call returns. This is because there is a race between
the open with O_EXCL and the lock of the share mode entry. Imagine the
case where the first smbd does the open with O_EXCL and a deny mode of DENY_ALL,
but is pre-empted before it locks the share modes and creates the deny
mode entry for DENY_ALL. A second smbd could then come in with O_RDONLY
and a deny mode of DENY_NONE and the two opens would be allowed.
The *only* way to fix this race is to lock the share modes after the
open and then do the deny mode checks *after* this lock in the case
where the file did not originally exist.
This code will need extensive testing but seems to initially work.
Jeremy.
(This used to be commit ab0ecc39d688f16b9692fe90b991f0b89287070a)
|
|
(This used to be commit 763704f78fc44976b2d977e8a08ffdeb727903c4)
|
|
spoolssd in tng)
(This used to be commit e2eacdd74c369fbbcd118148149321e36f3d0010)
|
|
(This used to be commit 95246a8432e04bcdeed962d1a6112dfd90518941)
|
|
- cleaned up the standard_sub_*() calls a lot
(This used to be commit 2c2d95d77d3667eaa9252506a82b9054b0d0e01c)
|
|
Jeremy.
(This used to be commit 8a99d824c0e9a43c8a8c81140f8c9005c7e2621a)
|
|
printing/printing.c: Cast tdb_delete to (tdb_traverse_func) to stop warning.
tmpfile gives mirror warning.
smbd/groupname.c: Remember to file_lines_free() on exit.
tdb/tdb.h: Add tdb_traverse_func typedef.
Jeremy
(This used to be commit 204ca1195c86499bd9beb273ce573db7a56ccead)
|
|
(This used to be commit 36fb5bc72fc6c0de719205ea34f497bfa0c4082f)
|
|
(This used to be commit 8b1afe7e1af0a62244632e0a58b9e513ab4366f0)
|
|
(This used to be commit e505a6ddf3df37ca485cae117c53fa96d736f897)
|
|
replaced with readdirname. ditto for OpenDir and CloseDir.
(This used to be commit a0afe0d5f8378463b1e47cd779aee3af98c1940a)
|
|
Not adding a Dfs junction to msdfs.tdb if it doesn't have any referred paths
as parsed from the dfsmap file.
(This used to be commit 462ea8b7fdaa528c3e9bfaca4fdd031888157124)
|
|
for token junction points in the Dfs. If not, create these mount points as
subdirectories of the service directory.
(This used to be commit 3b79df24687afce4780884b7a784661f69752fe1)
|
|
(This used to be commit f137648504362479143d50477fa38ebf7147968b)
|
|
(This used to be commit e8905a557a342ba3604a61663c6ff24887a9fd46)
|
|
(This used to be commit 030ec8e71f9ef533b5d6aece01e67d357e23b7d2)
|
|
added a new utility fn file_lines_slashcont() which is used to handle
files that treat a \ followed by a newline as a blank
(This used to be commit 384ecd9d66ccd31ee85000c0ca55d413d8f2cc53)
|
|
to support some of this I added the following functions in util_file.c
file_lines_pload : load lines from a pipe
file_pload : load a pipe into memory
(This used to be commit a09470817c5b21dba42f9ef4ce5e8b768a254c0b)
|
|
(This used to be commit 92f85cef8b4c283374edb726ff0b4999a2000b2a)
|
|
this also fixes a few security holes in that code. JF - you need to be
careful about open files for writing! symlinks can trap you.
note that I always unlink() the file first, then open with
O_EXCL. That is a cheap trick to avoid the symlink problems.
(This used to be commit ad56e3d7915100a83b33ad36e627e13325197942)
|
|
this is like fprintf() but operates on a file descriptor
combined with file_load_lines() this makes it really easy to get rid
of the use of fopen() in Samba.
(This used to be commit bd5cd502bf52164b95d7bfc026189e04988171db)
|
|
(This used to be commit 9f49d17d4cf904034ce3718626450dc25541b420)
|
|
(This used to be commit 5f5b79c9264510f5851ad1d6f3ce9e2b15e4a0da)
|
|
(This used to be commit e8418ab73667e011b15e00a844240723ff4a8cd6)
|
|
(This used to be commit 8af879b3f513e7e8ca5f63848d22824b05e68398)
|
|
- add helper fns to change from internal status codes to nt spoolss codes
(This used to be commit 917c4814fe076cc38b1becf7d219f2437cba6e60)
|
|
they are very useful for database versioning
(This used to be commit cc65914cdcceb1fdeeb5d6ec1cf2ea2f865c5092)
|
|
------------
The following series of commits are for the new tdb based printing
backend. This completely replaces our old printing backend.
Major changes include:
- all print ops are now done in printing/*.c rather than scattered all
over the place
- system job ids are decoupled from SMB job ids
- the lpq parsers don't need to be nearly so smart, they only need to
parse the filename, the status and system job id
- we can store lots more info about a job, including the full job name
- the queue cache control is much better
I also added a new utility routine file_lines_load() that loads a text
file and parses it into lines. This is used in out lpq parsing and I
also want to use it to replace all of our fgets() based code in other
places.
(This used to be commit d870542c2884510bd45fd5b54ff2157434d53f4c)
|
|
code. It now uses the new printing backend.
------------
The following series of commits are for the new tdb based printing
backend. This completely replaces our old printing backend.
Major changes include:
- all print ops are now done in printing/*.c rather than scattered all
over the place
- system job ids are decoupled from SMB job ids
- the lpq parsers don't need to be nearly so smart, they only need to
parse the filename, the status and system job id
- we can store lots more info about a job, including the full job name
- the queue cache control is much better
I also added a new utility routine file_lines_load() that loads a text
file and parses it into lines. This is used in out lpq parsing and I
also want to use it to replace all of our fgets() based code in other
places.
(This used to be commit 2df82862c061cca5644f5f69146c97302ccb42d5)
|
|
printing/load.c
so swat can get it without linking to the backend code
------------
The following series of commits are for the new tdb based printing
backend. This completely replaces our old printing backend.
Major changes include:
- all print ops are now done in printing/*.c rather than scattered all
over the place
- system job ids are decoupled from SMB job ids
- the lpq parsers don't need to be nearly so smart, they only need to
parse the filename, the status and system job id
- we can store lots more info about a job, including the full job name
- the queue cache control is much better
I also added a new utility routine file_lines_load() that loads a text
file and parses it into lines. This is used in out lpq parsing and I
also want to use it to replace all of our fgets() based code in other
places.
(This used to be commit a902caf8d78ae4cb11ea3776d10273cb37d5fcd0)
|
|
------------
The following series of commits are for the new tdb based printing
backend. This completely replaces our old printing backend.
Major changes include:
- all print ops are now done in printing/*.c rather than scattered all
over the place
- system job ids are decoupled from SMB job ids
- the lpq parsers don't need to be nearly so smart, they only need to
parse the filename, the status and system job id
- we can store lots more info about a job, including the full job name
- the queue cache control is much better
I also added a new utility routine file_lines_load() that loads a text
file and parses it into lines. This is used in out lpq parsing and I
also want to use it to replace all of our fgets() based code in other
places.
(This used to be commit be1e98b3f7a6007d2c9ac8e079724cb264e0dd3a)
|
|
------------
The following series of commits are for the new tdb based printing
backend. This completely replaces our old printing backend.
Major changes include:
- all print ops are now done in printing/*.c rather than scattered all
over the place
- system job ids are decoupled from SMB job ids
- the lpq parsers don't need to be nearly so smart, they only need to
parse the filename, the status and system job id
- we can store lots more info about a job, including the full job name
- the queue cache control is much better
I also added a new utility routine file_lines_load() that loads a text
file and parses it into lines. This is used in out lpq parsing and I
also want to use it to replace all of our fgets() based code in other
places.
(This used to be commit 4973b7e276ca75dcb63ccb54687d17f87aede7c1)
|
|
backend. This completely replaces our old printing backend.
Major changes include:
- all print ops are now done in printing/*.c rather than scattered all
over the place
- system job ids are decoupled from SMB job ids
- the lpq parsers don't need to be nearly so smart, they only need to
parse the filename, the status and system job id
- we can store lots more info about a job, including the full job name
- the queue cache control is much better
I also added a new utility routine file_lines_load() that loads a text
file and parses it into lines. This is used in out lpq parsing and I
also want to use it to replace all of our fgets() based code in other
places.
(This used to be commit 0b686601593bdc05778dcf70c391efd4fe017df7)
|
|
a connection structure
(This used to be commit f35fe3b4a175161128341fe30a61437c560180d1)
|
|
(This used to be commit a82a5acff2ad2120f5480f0cb08550e95d80c59e)
|
|
(This used to be commit 180312c4a6a92ed4b80691d7febade3ef02c8595)
|
|
3MB to 250k.
I split the table into 3 sections, after noticing that 5/6 of the
table was empty.
(This used to be commit c1496736bbdb7f6bf1eb43a54f883e5f41a4d39e)
|
|
in general we need to get rid of all uses of fopen(). The hard one
will be the debug code and dbf.
(This used to be commit 3992a5169c0b3805c38729c3856c41b1b2527765)
|
|
Modified to do checks in timeout processing not in main loop. This (IMHO)
is the correct place as (a) we are already root, and (b) it is guarenteed
to be called every 200 smb requests.
Jeremy.
(This used to be commit c3794fd29fdc4e5a0dbd725cdc24fe210934caf2)
|
|
offset should not (rpc header already consumed). This fix does not affect tng.
Jeremy.
(This used to be commit 018ec4fdd937994824f53cb956cea1ade9690f97)
|
|
(This used to be commit f65c6ec6db8e05685c719e23d7b06b3452fbbb4e)
|
|
smbd/reply.c: Fixed typo in debug.
Jeremy.
(This used to be commit c2aa6d66b3ca2a1a6dde8e9a1f6e761d98be517a)
|
|
Jeremy.
(This used to be commit 0216d81f061ee599a798fdbf25625fbbbd88ef08)
|
|
We now get/set/check POSIX locks, but I still need to code up the
close fd braindamage...
Jeremy.
(This used to be commit 3de058bd43976853b0ed2b6b5529e2a3a08909eb)
|
|
to either 63 or 31 bit POSIX ranges. Code to get these locks
not yet added.
Jeremy.
(This used to be commit 9c3b9146a3baff4b2e403ae8fac6c48df1b7e642)
|
|
but the structure is done enough so that Andrew can look it over and give
a yea/nay decision.
Jeremy.
(This used to be commit db96f83e34a139f47776fcbb5c1624fbf9d9943b)
|
|
advance over it and 4-byte align.
this _used_ to be "regardless of domainsidsize, advance by domainsidsize+3"
which is wrong.
(This used to be commit 5086e6425f3630d8f5ca1e25a333eb97fdf86e93)
|
|
Jeremy.
(This used to be commit d2fff2596ad1585fc6a5e033fe8410fe5438a57b)
|
|
code will be removed soon and a SID auto-generated from (probably) primary
hostname and never stored in a file will replace it.
Jeremy.
(This used to be commit fbfe94a799cda7f728bc920d4f0655d4f537e3b6)
|
|
Jeremy.
(This used to be commit f2a775d3fb605587d3ce134dec7a895de1fe562a)
|