1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-23 11:17:06 +03:00

1015 Commits

Author SHA1 Message Date
Andrew Tridgell
df03c7480d converted a bunch more trans2 calls for unicode. This got quite tricky :(
(This used to be commit ddee55087756db2a2ac0ee92471d9fea53f38bee)
2001-03-14 07:29:53 +00:00
Andrew Tridgell
ff0462cde8 simpler and more correct srvstr_push()
it now uses outbuf not inbuf for the unicode flag, which
allows for some server fns to be ascii and means one less
parameter in push calls
(This used to be commit a6dd6662267eeddf368ff0ffba76b45761bf4eeb)
2001-03-13 22:00:46 +00:00
Andrew Tridgell
f869164a16 converted findnext to unicode
(This used to be commit 84fc5a7795fe6e3b993649ecc05f6685f8295c02)
2001-03-13 01:51:44 +00:00
Andrew Tridgell
23e5cf060d this patch does a number of things:
- removes SMB_ALIGNMENT. That macro caused all sorts of problems with
  getting unicode aligned right in sub-protocols (such as SMBtrans and
  SMBtrans2). I believe the performance reasons for having
  SMB_ALIGNMENT has gone away with the new variants of the SMB
  protocol anyway, as newer commands tend to have their own internal
  alignment.

- fix the locations where we set smb_flg2 to absolute values. We must
  never do this if we want a hope of coping with unicode.

- add initial support for unicode on the wire in smbd. Currently
  enabled using SMBD_USE_UNICODE environment variable.
(This used to be commit b98b1435e9d8f8622444c9ff33082977e661f16b)
2001-03-13 00:55:19 +00:00
Jeremy Allison
da3053048c Merge of new 2.2 code into HEAD (Gerald I hate you :-) :-). Allows new SAMR
RPC code to merge with new passdb code.
Currently rpcclient doesn't compile. I'm working on it...
Jeremy.
(This used to be commit 0be41d5158ea4e645e93e8cd30617c038416e549)
2001-03-11 00:32:10 +00:00
Jeremy Allison
201753ddc6 Fixed file descriptor leak in error processing of print jobs.
NT sends "delete on close" to cancel a print job copied from the command line.
Deal with this. Merged JohnR's fixes for print job errors.
Jeremy.
(This used to be commit 2060d74e48d62c99a1689ee02ac435b71918ddf0)
2001-02-22 01:31:55 +00:00
Andrew Tridgell
b652abf923 reverted *.* patch until someone explains to me what the test case is
that requires this.

i _know_ that this isn't the right solution and it breaks things,
which is why I am reverting now.
(This used to be commit c2a82a33da1b717b16fb71e597587c806bcf68b3)
2001-02-08 23:33:50 +00:00
Gerald Carter
01634eaf12 merge from SAMBA_2_2
(This used to be commit 9347121ce6888afeae3cdf256b5f0c5b9c58b0bc)
2001-02-08 20:47:09 +00:00
Jeremy Allison
327e2b3029 Fix from Kenichi Okuyama for memory leak on Realloc fail.
Jeremy.
(This used to be commit 6e568332254cf60d6a1f411df960ac2ec5f4bf8e)
2001-01-23 22:21:46 +00:00
Jeremy Allison
60337746ea Fix for short names not being returned correctly with non-mangled shares.
Jeremy.
(This used to be commit bcf0a5c316ee8cf333d9d838b041e44a11cb5f1b)
2000-12-11 22:31:25 +00:00
Jeremy Allison
6f58dd5871 Ok - fixed a bug in our levelII oplock code. We need to break a level II on
a byte range lock (write lock only, but Win2k breaks on read lock also so I
do the same) - if you think about why, this is obvious. Also fixed our client
code to do level II oplocks, if requested, and fixed the code where we would
assume the client wanted level II if it advertised itself as being level II
capable - it may not want that.
Jeremy.
(This used to be commit 213cd0b5192307cd4b0026cae94b2f52fb1b0c02)
2000-11-16 00:59:18 +00:00
Jeremy Allison
abf055046f Ok - this is a big patch - and it may break smbd a bit (although
I hope not). If you encounter strange file-serving behavior after this
patch then back it out. I analysed our stat() usage and realised we
were doing approx. 3 stat calls per open, and 2 per getattr/setattr.
This patch should fix all that. It causes the stat struct returned
from unix_convert() (which now *must* be passed a valid SMB_STRUCT_STAT
pointer) to be passed through into the open code. This should prevent
the multiple stats that were being done so as not to violate layer
encapsulation in the API's.

Herb - if you could run a NetBench test with this code and do a
padc/par syscall test and also run with the current 2.2.0 code
and test the padc/par syscalls I'd appreciate it - you should
find the number of stat calls reduced - not sure by how much.

The patch depends on unix_convert() actually finding the file
and returning a stat struct, or returning a zero'd out stat
struct if the file didn't exist. I believe we can guarentee this
to be the case - I just wasn't confident enough to make this
an assertion before.

Ok ok - I did write this whilst at the Miami conference.....
sometimes you get a little free time at these things :-).

Jeremy.
(This used to be commit 66a5c05ec46b641224fbe01b30bd7e83571a2a1b)
2000-10-19 02:58:24 +00:00
Herb Lewis
8719c27726 changes to sync with 2.2. tree
.cvsignore              remove config.h - not in this directory
include/profile.h       profile changes
lib/messages.c          added message to return debug level
libsmb/clierror.c       cast to get rid of compiler warning
libsmb/smbencrypt.c     cast to get rid of compiler warning
profile/profile.c       add flush profile stats changes for profile struct
rpc_parse/parse_samr.c  fix for compiler warning
rpc_server/srv_samr.c   cast to get rid of compiler warning
smbd/ipc.c              profile stats
message.c               profile stats
smbd/negprot.c          profile stats
smbd/nttrans.c          profile stats
smbd/trans2.c           profile stats
utils/smbcontrol.c      new flush stats command
(This used to be commit bbb24daa25dca4e4b6b1f8942cd84ee3aa1bed8e)
2000-10-11 05:31:39 +00:00
Jeremy Allison
636f146abf Restructuring of vfs layer to include a "this" pointer - can be an fsp or
a conn struct depending on the call.
We need this to have a clean NT ACL call interface.
This will break any existing VFS libraries (that's why this is pre-release
code).
Andrew gets credit for this one :-) :-).

In addition - added Herb's WITH_PROFILE changes - Herb - please examine
the changes I've made to the smbd/reply.c code you added. The original
code was very ugly and I have replaced it with a
START_PROFILE(x)/END_PROFILE(x) pair using the preprocessor.
Please check this compiles ok with the --with-profile switch.
Jeremy.
(This used to be commit b07611f8159b0b3f42e7e02611be9f4d56de96f5)
2000-10-06 03:21:49 +00:00
Jeremy Allison
6692d0905e Fixes for the fact that UNICODE sizes are no always 2*no of chars when
in multibyte codepages. Fix from Hiroshi MIURA, Samba User Group Japan staff.
Jeremy.
(This used to be commit f2f373df67a3c6b0bd431c19e3494d45ef0a263c)
2000-10-03 19:15:05 +00:00
Jeremy Allison
3ad2ee22bb utf-8 and EUC3 patch from Hiroshi Miura Samba User Group Japan staff.
mkdir high bits patch from Robert Dahlem" <Robert.Dahlem@gmx.net>.
jeremy.
(This used to be commit b40191d27180ab1e59935086073c4d312552f717)
2000-10-03 02:12:14 +00:00
Shirish Kalele
8a86541e28 Changed MS_DFS to WITH_MSDFS throughout.
Fixed trans2 calls on IPC$ to let dfs referral calls through.
(This used to be commit e0965a80bdca5239886b11ef55dc29fed261bfc0)
2000-05-26 17:10:40 +00:00
Jeremy Allison
295b2d31a5 Did a proper fix for the file access on IPC$. Denied all pipe opens on
trans2 open calls as we don't have the pipe open response coded up yet.
Jeremy.
(This used to be commit 8142e27c9c32aba5a7dabc48a676b93cf680151b)
2000-05-23 17:57:51 +00:00
Jeremy Allison
3cbaf59726 Fixed bug where file access was allowed on IPC$ share.
Return correct error codes on invalid share name.
Jeremy.
(This used to be commit 420d6bc4809cef9d74354175d0fa956ab4e8ac3c)
2000-05-23 01:27:19 +00:00
Shirish Kalele
651946153e The new msdfs implementation that uses symlinks to point to other
servers. Very intuitive.

Removed the dfs map parsing code and tdb maintenance code (files
msdfs/parse_dfs_map.c & msdfs/msdfs_tdb.c), dfs map loading and unloading
calls (param/loadparm.c smbd/server.c).

Added code to display msdfs format symlinks as directories in a
transact2_findfirst/findnext. (smbd/trans2.c)

Modified msdfs/msdfs.c to use the msdfs symlinks to
create dfs referrals.

Changed msdfs/README to reflect new operability.
(This used to be commit 6803d2574fab9e5931786d5c9aa5dc5867bb5f05)
2000-05-16 01:13:16 +00:00
Jeremy Allison
612738a9e1 lib/util_unistr.c:
libsmb/clilist.c:
rpc_server/srv_spoolss_nt.c:
smbd/trans2.c: Changed unistr_to_ascii to unistr_to_dos - do codepage conversion.
msdfs/msdfs.c: Removed stub unistr_to_dos.
libsmb/pwd_cache.c: Removed obfuscation functions as they don't do anything and
					don't add any security.
Jeremy.
(This used to be commit 1ed146467e764e6a81d8f78cd58fb5765ebf5d21)
2000-05-10 22:47:09 +00:00
Andrew Tridgell
49a0e6d598 more merging voodoo
this adds "#define OLD_NTDOMAIN 1" in lots of places. Don't panic -
this isn't permanent, it should go after another few merge steps have
been done
(This used to be commit 92109d7b3c06f240452d39f669ecb8c9c86ab610)
2000-05-10 10:41:59 +00:00
Andrew Tridgell
0f35ded18e go back to ascii in SMB_FIND_FILE_BOTH_DIRECTORY_INFO
NT gives out unicode, but NT clients can't handle a unicode response!
(This used to be commit 85d634974f4f8841bf68cd2b22d134fbc010b568)
2000-04-30 14:30:47 +00:00
Andrew Tridgell
700f72453e - removed all our old wildcard matching code and replaced it with a
call to ms_fnmatch(). This also removes all the Win9X semantics stuff
and a bunch of other associated cruft.

- moved the stat cache code into statcache.c

- fixed the uint16 alignment requirements of ascii_to_unistr() and
  unistr_to_ascii()

- trans2 SMB_FIND_FILE_BOTH_DIRECTORY_INFO returns the short name as
  unicode always (at least thats what NT4 does)

- fixed some errors in the in-memory tdb code. Still ugly, but doesn't
  crash as much
(This used to be commit 03e9cea004bbba72161a5323cf3b4556c94aed8e)
2000-04-30 11:04:28 +00:00
Andrew Tridgell
00e3fe1324 moved trans2.h and nterr.h into includes.h with all our other includes
(This used to be commit d7cd7c88fdabb01d9e40ae8a657737907a21ac37)
2000-04-25 14:06:57 +00:00
Jeremy Allison
e82dbfcbe9 Now that fsp's are created on successful file open, the structure member
fsp->open is no longer needed (if an fsp pointer is valid, then it's open :-).

NB for Luke, this patch also did not apply to TNG. TNG is not yet
identical w.r.t file serving with HEAD. This makes it impossible for
me to help maintain TNG. Please fix asap.

lib/substitute.c: Removed unused variable (pidstr).

Jeremy.
(This used to be commit 389b700a26e8a308a0dff6fc038c38068aa0119a)
2000-04-24 19:23:51 +00:00
Andrew Tridgell
7fcdb8fb7e fixed two uninitialised memory references
(This used to be commit e4ddd1a4a96b7f723d3d92e4334f4033e1dbc8a8)
2000-04-23 07:44:01 +00:00
Jeremy Allison
6259f51dd9 This is a *big* checkin that may break some things, but implements the
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)
2000-04-22 00:33:16 +00:00
Andrew Tridgell
2fa922611b finally got sick of the "extern int Client" code and the stupid
assumption that we have one socket everywhere

while doing so I discovered a few bugs!

1) the clientgen session retarget code if used from smbd or nmbd would
cause a crash as it called close_sockets() which closed our main
socket! fixed by removing close_sockets() completely - it is unnecessary

2) the caching in client_addr() and client_name() was bogus - it could
easily get fooled and give the wrong result. fixed.

3) the retarget could could recurse, allowing an easy denial of
service attack on nmbd. fixed.
(This used to be commit 5937ab14d222696e40a3fc6f0e6a536f2d7305d3)
2000-04-11 13:55:53 +00:00
Andrew Tridgell
689ec46450 the bulk of the changes to get rid of fd_ptr and move print open
handling to printing/printing.c

most of this was just replacing things like fsp->fd_ptr->fd with fsp->fd

the changes in open.c are quite dramatic. Most of it is removing all
the functions that handled the fd multiplexing
(This used to be commit d1827a3648009fd0a0d165055015d9aeda7a1037)
2000-04-10 13:05:23 +00:00
Jeremy Allison
9d5ddab766 Removed strange optimisation (paranoia fix maybe ?) that stopped smbd
from returning '.' and '..' in a top level listing of a trans2 directory
scan. NT does return these entries.
Jeremy.
(This used to be commit 7325059a0940909ddd98b32d62423700545ef87e)
2000-04-04 01:13:54 +00:00
Jeremy Allison
b546035ba8 Win2k will only accept volume labels in UNICODE. Fixed.... :-(.
Jeremy.
(This used to be commit 676db02f1cd7cb81c58cbbdd3bc94da17dad5227)
2000-03-28 02:38:59 +00:00
Jeremy Allison
aaa8aadd35 Moved common code to set parameter offset field correctly oout of 'if'
statement into main function code path.
Jeremy.
(This used to be commit f15ca0d9273d718534ba2fdd2ccd14ab90a95c8b)
2000-03-28 02:20:57 +00:00
Andrew Tridgell
18bc76a0c6 changed the definition of dos_PutUniCode
the previous definition could result is us overflowing a buffer. The
null termination was always added yet the size returned did not
include the null termination.

the new function takes a BOOL null_terminate, and always returns the
total number of bytes consumed by the string.
(This used to be commit 426c90433396a95033eefcc4af97603abc934221)
2000-03-27 12:38:45 +00:00
Shirish Kalele
7d2a8cd4c6 Cleaning up call_trans2getdfsreferral.
Instead of a #ifdef MS_DFS in call_trans2getdfsreferral()... , now using a generic call leading to some #define problems.. hopefully I've corrected the last of them.
(This used to be commit b5a489fbb808cc7c8ff2338344ef2dae8e351e44)
2000-03-13 18:18:36 +00:00
Shirish Kalele
3e07f63b7c Cleaned up call_trans2getdfsreferral for when MS_DFS is not defined.
(This used to be commit 2b99318341a3f3a3ac138fe96ad271726bf1552c)
2000-03-13 17:38:13 +00:00
Jean-François Micouleau
530a01c2cb moved #endif to end of function to compile when dfs is disabled.
J.F.
(This used to be commit b534fb03b1ef39e5362c29a05cca53782cd157f7)
2000-03-13 11:05:59 +00:00
Shirish Kalele
0307b23a31 Cleaning up the warnings from configure.developer.
Found that Jeremy had already made some of the changes.
(This used to be commit ca02d9f8219265f80fe11236c8c146db1dbb1ae2)
2000-03-10 22:53:36 +00:00
Jeremy Allison
5e22394654 Fixups for compiles with gcc flags -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual
Partially implemented rpc daemon redirect (needs more work).
Jeremy.
(This used to be commit a462191698fa589ceac4afd14c652adf699eccad)
2000-03-10 19:50:03 +00:00
Shirish Kalele
952799d9af dded Microsoft Dfs services.
* added a new msdfs/ directory under source/
* added msdfs sources under this directory.
* modified configure setup to add a --with-msdfs configure time option

 Modified Files:
 	Makefile.in acconfig.h configure configure.in
 	include/config.h.in include/includes.h include/proto.h
 	include/smb.h include/smb_macros.h param/loadparm.c
 	smbd/negprot.c smbd/nttrans.c smbd/process.c smbd/reply.c
 	smbd/server.c smbd/trans2.c
 Added Files:
 	include/msdfs.h msdfs/README msdfs/msdfs.c msdfs/msdfs_tdb.c
 	msdfs/parse_dfs_map.c
 ----------------------------------------------------------------------
(This used to be commit 4684b4a188b54493dbe7f0de2909a8d3c5c3ebf9)
2000-03-08 22:14:30 +00:00
Jeremy Allison
8dcac9f8da Fix for reporting file system attributes correctly.
Jeremy.
(This used to be commit 801ed2389b97f921aa855513696d304c542fda04)
2000-02-18 03:54:26 +00:00
Tim Potter
16bb009dbb Mega-VFS merge. Yeah baby!
Synopsis: change every disk access function to work through a vfs_ops
structure contained in the connection_struct.
(This used to be commit 3aad500c0fb61232ed3431ff4b743b5d18ec852f)
2000-02-03 05:17:25 +00:00
Jeremy Allison
94bdf0572b useable_space does not include the alignment offset calculations.
Bugfix from Marc_Jacobsen@hp.com.
Jeremy.
(This used to be commit eb06c199163232453e2d9ca50d00765c90f8f3e2)
2000-01-14 23:50:38 +00:00
Jeremy Allison
3a6c2069d7 Added "inherit permissions" patch.
Fixed locking bug found by Andrew.
Jeremy.
(This used to be commit 38dffd360dc2e44bfc9e751f017e24f81ff0f2fa)
2000-01-14 01:41:04 +00:00
Jeremy Allison
44dc314fea Changed MAX to MIN in SET_FILE_BASIC_INFO as recommended by "Michael C. Adler" <Michael.Adler@compaq.com>
as this breaks the least number of programs.
Jeremy.
(This used to be commit 2cf408772f7b763a484fdd893da28999c8f9d025)
1999-12-21 19:14:17 +00:00
Andrew Tridgell
4e1291a83f converted all our existing shared memory code to use a tdb database
instead of either sysv or mmap shared memory or lock files.

this means we can now completely remove
	locking_shm.c
	locking_slow.c
	shmem.c
	shmem_sysv.c
and lots of other things also got simpler

locking.c got a bit larger, but is much better compartmentalised now
(This used to be commit e48c2d9937eea0667b8cd3332e49c06314ef31e7)
1999-12-21 09:25:59 +00:00
Jeremy Allison
80a180853d *Finally*. Correct patch to fix timestamp problems from Paul Eggert <eggert@twinsun.com>.
I wish I had written this one :-).
Jeremy.
(This used to be commit 8f93c08881c22d121c7337d11de070e2b8f7ba33)
1999-12-20 21:46:41 +00:00
Andrew Tridgell
3db52feb1f first pass at updating head branch to be to be the same as the SAMBA_2_0 branch
(This used to be commit 453a822a76780063dff23526c35408866d0c0154)
1999-12-13 13:27:58 +00:00
Luke Leighton
939f6d6794 more dfs stuff. this looks like it's going to be more appropriate to use
the vfs tables.  at the moment, i replaced all calls to unix_convert()
with unix_dfs_convert().

this does the job, but it's not very nice.
(This used to be commit 00d4aebce9f268a737ef9df9bdbe59f8fe831979)
1999-07-15 20:44:24 +00:00
Luke Leighton
2b354d7330 dfs issues
(This used to be commit d9ada8b55d539e555d25298e0a308ea952e2807e)
1999-07-15 17:52:44 +00:00