Age | Commit message (Collapse) | Author | Files | Lines |
|
The ./configure & build now seem to work ok.
Jeremy.
(This used to be commit 7c1a5ed1c2a55543d3f3c8bbd38e6c9c35b80390)
|
|
Fixed bugs in readline autoconf.
param/loadparm.c smbd/open.c smbd/oplock.c: Started on kernel oplock
code - checking forced by above issue. Should not be used
currently.
Jeremy.
(This used to be commit f939efac9e6c45331b17e3d3aa6bc2235e886c1a)
|
|
surrounded by a OLD_DOTARPUT.
(This used to be commit 00ba54d4ee9ad875c5cfbee09d4b745df5f116ab)
|
|
structures that only apply on some platforms.
(This used to be commit 926591067cd8646426ca06df0b00a1d6f6dd5752)
|
|
SOFF_T() macro for setting an SMB_OFF_T variable
also limited mmap based reads to MAX_MMAP_SIZE. We really can't mmap
2^50 bytes due to virtual address space problems.
(This used to be commit 4e784b18899eddd2399a51fa7d8c219560432922)
|
|
#ifdefs for LARGE_OFF_T.
(This used to be commit 724b9508c2d15bafdad5912fce702108fdd4cac3)
|
|
lib/system.c: Can't assume every system has a statvfs varient.
Return -1 for those that don't.
smbd/reply.c: Fixed printf warning.
Jeremy.
(This used to be commit 14c134e8316687aa5a4ee089c2acfa6428faceae)
|
|
script/mkproto.awk: Added SMB_BIG_UINT.
Jeremy.
(This used to be commit c22c40f0caa7d6a9e8120e6415fa728db708db3e)
|
|
widening (I hope :-).
include/config.h.in: Added #undef STAT_STATVFS64.
include/includes.h: Added SMB_STRUCT_STATVFS type, Changed SMB_BIG_INTEGER to
SMB_BIG_UINT and SMB_BIG_INT types.
include/smb.h: Added flag defines from CIFS spec.
lib/debug.c: Fixed one more mode_t issue.
lib/system.c: Added sys_statvfs wrapper.
lib/util.c: Changed trim_string to use size_t.
param/loadparm.c: Moved "blocking locks" into locking section. Alphabetised
locking options. Question - shuld we do this for all options ?
passdb/ldap.c: Changed SMB_BIG_INTEGER to SMB_BIG_UINT.
passdb/nispass.c: Changed SMB_BIG_INTEGER to SMB_BIG_UINT.
passdb/smbpass.c: Changed SMB_BIG_INTEGER to SMB_BIG_UINT.
smbd/dfree.c: Changed to use 64 bit types if available. Moved to use unsigned
types.
smbd/dosmode.c: Fixed one more mode_t issue.
smbd/negprot.c: Changed literals to be FLAG_ #defines.
smbd/nttrans.c: Removed dead code.
smbd/open.c: Changed disk_free call.
smbd/process.c: Changed literals to be FLAG_ #defines.
smbd/reply.c: Changed disk_free call.
smbd/trans2.c: Fixed but in SMB_QUERY_FS_VOLUME_INFO call. Was using
UNICODE - should use ascii.
tests/summary.c: Added STAT_STATVFS64 check.
Jeremy.
(This used to be commit c512b1b91fb7f2a7a93b9033a33e06d966daadb4)
|
|
config.h.in: Added fseek64 and ftell64.
includes.h: Added definition of SMB_BIG_INTEGER.
smb.h: Changed (*getsmbpwpos) and (*setsmbpwpos) to use SMB_BIG_INTEGER.
access.c: Tidyup of dbug statement.
system.c: Added sys_fseek and sys_ftell. Changed mode calls to use mode_t.
asyncdns.c: Tidyup of comment.
loadparm.c: Tidyup of set_default_server_announce_type() function definition.
ldap.c: Changed (*getsmbpwpos) and (*setsmbpwpos) to use SMB_BIG_INTEGER.
nispass.c: Changed (*getsmbpwpos) and (*setsmbpwpos) to use SMB_BIG_INTEGER.
smbpass.c: Changed (*getsmbpwpos) and (*setsmbpwpos) to use SMB_BIG_INTEGER.
smbpassfile.c: Use sys_fseek().
chgpasswd.c: Tidyup of debug statement.
dosmode.c: Changed mode calls to use mode_t.
ipc.c: Removal of dead code.
nttrans.c: Changed mode calls to use mode_t.
open.c: Changed mode calls to use mode_t.
pipes.c: Removal of dead code.
reply.c: Removal of dead code.
trans2.c: Removal of dead code. Changed mode calls to use mode_t.
Jeremy.
(This used to be commit c381d32e3dc23fe887408016cae821aceb30da2c)
|
|
In sig_term() we were calling wins_write_database(0) which would fork a
child. This child might then get killed by the same process killing
off the parent. That process would then fork another child etc.
The solution is to pass a "background" flag to wins_write_database(0)
and only fork if this is set.
(This used to be commit 1e1a512e3ff59f962fb3de382f671618bed60839)
|
|
directories (NTTrans/Create with Security Descriptor for
a directory). It turns out the CIFS spec is bogus (what a
suprise) and the 'is a directory' flag is actually embedded
in the create_options field.
Jeremy.
(This used to be commit 68750d8153f01bd0802bb86e93c3ca5d11acb199)
|
|
Problems were just dumb bugs like (defining sys_lseek to return 'int' DOH !).
Jeremy.
(This used to be commit 54dd51176fbab18af0b21bdee71b53f8f86573a8)
|
|
I have tested it by creating a 'holey' 20GB file - checking that
it shows up correctl in the NT file view (it does) and am busily
copying it to NULL: on the NT box. All good so far.... :-).
Also implemented NT 'delete on close' semantics.
Jeremy.
(This used to be commit 1654faee80648583e6a47ab7eda990fefdf85124)
|
|
Got 'religion' about using size_t and ssize_t for read/write stuff
as part of the code to expose 64 bits to the client.
This checkin does all the 'easy' stuff - such as all the read/write/lock
calls - but now comes the harder parts (open & friends) and all the
file enquiry functions.....
Jeremy.
(This used to be commit 36544fe5476f7770bd5748574fc54be7b3ee4d4a)
|
|
files.c: Removed fd bitmap - not needed. Added code to do use arrays rather
than linked list - disabled by default but can be enabled to check
performance.
Jeremy.
(This used to be commit 069efc04545d5fdfc5c40467b8b7554ed5226a2e)
|
|
tactics :-). Protected by #ifdef until used.
Fixed bug in fd_attempt_close() where a pointer to potentially
free'd memory was returned. I hate that.
Added "blocking locks" as a per-share option for performance testing.
Changed is_mangled() so it will return true if called with a pathname
and any component of the pathname was mangled (it was already attempting
to do this, but not checking for a '/' as end-of-mangle).
This should be a better fix for the wierd stat cache bug Andrew identified.
Jeremy.
(This used to be commit 0de01f45980c7bc261248a9cead972a8d8cbd594)
|
|
I think we need this so we can rule out stat cache bugs when dealing
with bug reports. If we ask a user to disable the stat cache and the
problem persists then we know it isn't a stat cache bug. The stat
cache code is sufficiently complicated that it can be pretty hard to
tell if it is causing problems or not.
(This used to be commit c83f3775cd8a7aad13571926cdd5949a07538771)
|
|
source directory! This adds a new "trivial" test that makes sure that
the autoconf tests are working. It aborts the configure run if not.
(This used to be commit ead0338ad27f29f1abbbe9f6302d6bf633bf98b2)
|
|
prompted by the interpret_security() dead code that Jean-Francois
pointed out I added a make target "finddead" that finds potentially
dead (ie. unused) code. It spat out 304 function names ...
I went through these are deleted many of them, making others static
(finddead also reports functions that are used only in the local
file).
in doing this I have almost certainly deleted some useful code. I may
have even prevented compilation with some compile options. I
apologise. I decided it was better to get rid of this code now and add
back the one or two functions that are needed than to keep all this
baggage.
So, if I have done a bit too much "destroying" then let me know. Keep
the swearing to a minimum :)
One bit I didn't do is the ubibt code. Chris, can you look at that?
Heaps of unused functions there. Can they be made static?
(This used to be commit 2204475c87f3024ea8fd1fbd7385b2def617a46f)
|
|
Added "nt smb support" parameter to allow NT SMB's to be turned off.
Jeremy.
(This used to be commit 63f65f5027d5022153fa2757b49c56829db1725b)
|
|
out it is no longer used (replaced by enumerated types in loadparm.c)
(This used to be commit 88df8a8b25921389ee9d017b770bbae143cc51b8)
|
|
to oplock break message passing). I think that smbd/nmbd are now
inode and offset size independent (at least for 32 bit and 64 bit
systems).
Now to expose all this new functionality to NT clients.....
Jeremy.
(This used to be commit 5910d07bbf45a34d3c901461f74704c029a79474)
|
|
Nearly at the stage where I can expose the 64-bit-ness to
the NT clients....
Jeremy.
(This used to be commit 422f1dd45074c0e28203aca5952e57bbe56676b6)
|
|
to check for stat64 and friends, and then changes much of Samba
to use the data type SMB_OFF_T for file size information.
stat/fstat/lstat/lseek/ftruncate have now become sys_stat etc. to hide
the 64 bit calls if needed.
Note that this still does not expose 64 bit functionality to the
client, as the changes to the reply_xxx smb's are not yet done.
This code change should make these changes possible.
Still to do before full 64 bit-ness to the client:
fcntl lock code.
statfs code
widening of dev_t and ino_t (now possible due to SMB_DEV_T and SMB_OFF_T
types being in place).
Let me know if wierd things happen after this check-in and I'll
fix them :-).
Jeremy.
(This used to be commit 14500936c321d15995c963766aac67bf1f4e3824)
|
|
mangling a name can't increase it's size which isn't true. (imagine a
file called "L B" which mangles to "LB~XX")
The symptoms were that users couldn't run batch files from short
directory names that contained non 8.3 characters (such as spaces).
(This used to be commit c319d8ea3f8b42bb3a8e501642971ed0bdb21583)
|
|
bit file interface for the NT SMB's.
Created a new define, SMB_STRUCT_STAT that currently is
defined to be struct stat - this wil change to a user
defined type containing 64 bit info when the correct
wrappers are written for 64 bit stat(), fstat() and lstat()
calls.
Also changed all sys_xxxx() calls that were previously just
wrappers to the same call prefixed by a dos_to_unix() call
into dos_xxxx() calls. This makes it explicit when a pathname
translation is being done, and when it is not.
Now, all sys_xxx() calls are meant to be wrappers to mask
OS differences, and not silently converting filenames on
the fly.
Jeremy.
(This used to be commit 28aa182dbffaa4ffd86047e608400de4b26e80eb)
|
|
include/smb.h: Moved old typedefs of uint8 etc. into include/includes.h where
all the other defines live (changed them from typedefs to
defines).
Other changes : changed from using uint32 to SMB_DEV_T and SMB_INO_T
in preparation for moving to size independed (ie. 64 bit clean) device
and inode access. Stat call wrapper comes next :-).
Jeremy.
(This used to be commit 3d9ec96de5e04e83abafe9c5d980bd39eee856ea)
|
|
(This used to be commit 560ed560f46e69255b6437e50ba0865b642c38b1)
|
|
The previous code was strictly correct, but not very practical. self
names were only refreshed every 3 days. I hit a situation where the
Samba WINS server was restarted after deleting wins.dat and didn't
notice some remote subnets (also running Samba). I realised that the
complete database wouldn't have been rebuilt for 3 days, which is way
too long. In order to recover from WINS restarts we need a much
shorter maximum refresh time.
(This used to be commit 1d23dd0912e81ff72695bd043e8e2aee32da18a8)
|
|
(This used to be commit 3eade55dc7c842bdc50205c330802d211fae54d3)
|
|
the correct port in environments like ip masq.
(This used to be commit 7d455ee637b6ff70c95845f89d71573ca07b83f3)
|
|
to work (not a lot of testing yet though).
Now we just need to deal with people worried about having more than
two nmbd processes sometimes. (the async processes are created on
demand for browse sync, so you'll only see more than 2 occasionally)
(This used to be commit a350a54680e4170e2adf571b010ea508e7291780)
|
|
are now sorted by the number of common leading bits in the IP address
with the address of the querying host.
(This used to be commit 4460a1bc6aa7666d1c71d32ba73855d6ed32320a)
|
|
It now has a line like this:
VERSION 1 251152
the first number is a version #define in nmbd_winsserver.c and will be
used if we ever have to change the format again.
The second number is a hash of the current interfaces setting. It is
used to detect the case where nmbd is restarted on a machine after the
IP of the machine has changed (or the interfaces list has changed in
any way). When that happens we need to discard the old wins.dat cache
or you end up with chaos. This has bitten quite a few people, they
find that when they move a machine it continues using the old IP for
some things for the next week until the wins entries time out!
I've checked, and the old nmbd can handle the new format, although it
does spit out a spurious error message about the VERSION line. So
users can safely run 2.0alpha then switch back to 1.9.18 without
problems.
(This used to be commit c4a8cdc60a5b01894ab2456e77b6d89d4c16a088)
|
|
to account for padding/alignment issues. Eventually I'd like to find a
way to get rid of this construct altogether as it is a bit error
prone and hard to debug.
also added a new macro:
ZERO_STRUCTP() that takes a pointer to a structure and zeros the
structure. Used in nmbd to zero allocated structures before freeing
them to try to catch bugs a bit faster.
(This used to be commit d3dda65d5177154e2128f50ca3dd34e8e13b6b08)
|
|
correctly. Added new parameter "stat cache size" - set to 50 by default.
I now declare the statcache code officially "open" for business :-).
It gets a hit rate of 97% with a NetBench run and seems to make
using a case insensitive run as efficient as a case sensitive run.
Also tidied up our sys_select usage - added a maxfd parameter and
also added an implementation of select in terms of poll(), for systems
where poll() is much faster. This is disabled by default.
Jeremy.
(This used to be commit 779b924ec1f6c81ff578d22295b20fece698d1fc)
|
|
NetBench testing though.... :-). Attempts to efficiently reduce
the number of stat() calls Samba does.
Jeremy.
(This used to be commit d0e48a2d8072c3e77a57ac6a2fb5044c05f03b41)
|
|
arrays. This prevents (harmless) warnings from some compilers
(This used to be commit c2da46d1d0820a86e7f77506563cfe7f67b08fee)
|
|
(This used to be commit afe98165a261a740cd0ee88bf041d69721ec72e6)
|
|
needs them and what should really be there.
(This used to be commit c2bf18fb8d2fea5af86ba8cf5d92b1dc076dd7d5)
|
|
rpcsvc/ypclnt.h wants a struct dom_binding. knock-on include effect under
freebsd 2.1.
(This used to be commit d1005b5692e41660a2a7230231b0591aa0773485)
|
|
(This used to be commit e4f81f4a230130f53857e3664e6d83ce252c207e)
|
|
if ((sbuf->st_mode & S_IWUSR) == 0)
result |= aRONLY;
rather than the very complex user/group permissions checks we do
currently. This is equivalent ot setting "alternate permissions = yes"
in the old code. The change is motivated by three main reasons:
1) it's basically impossible to second guess whether a file is
writeable without trying to open it for writing. ACLs, root squash etc
just make it too hard.
2) setting it not RONLY if the owner can write is closer to what NT
does (eg. look at a cdrom - files are not marked read only).
3) it prevents the silly problem of copying files from a read only
share to a writeable share and then finding you can't write to them as
windows preserves the RONLY flag. Lots of people get bitten by this
when they drag a folder from a Samba drive. It also hurts some install
programs.
I have also added a new flag type for loadparm.c called
FLAG_DEPRECATED which I've set for "alternate permissions". I'll soon
add code to testparm to give a warning about deprecated options.
(This used to be commit c4363a12fdc0be329ca2bfeb1d7b89bfe90031dc)
|
|
have an ASSERT macro defined.
Jeremy.
(This used to be commit dbe6ad014a8b5dcbf17d7cd9865650c2e040d666)
|
|
(This used to be commit e94ab03a4f97ff7ee7bb938245cf054a00f950fd)
|
|
in the rpc code.
(This used to be commit e6ce1c5b5a9f29d8fcbbd23019186ff5c600e795)
|
|
(This used to be commit bd9290c36c9993a994e485da0a81df926f8662e4)
|
|
explanation.
(This used to be commit c6899df44c34088a4d2bf1edc840320b0ba7e32e)
|
|
structures declared on the stack.
(This used to be commit f323af8fce54cd5d51c848aa7ea7be4dd3538f2e)
|