1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-28 00:49:42 +03:00

415 Commits

Author SHA1 Message Date
Jeremy Allison
46ac5928d9 chgpasswd.c:
includes.h: SCO changes.
server.c: Added code in open_sockets to allow 'bind interfaces only' to
          work as documented.
Jeremy (jallison@whistle.com)
-
Andrew Tridgell
267b56de10 damn, I spelt EACCES wrong.
actually it's wrong in the linux man page for utime ...
-
Andrew Tridgell
afd7592ffd check for EPERM or EACCESS in file_utime() -
Andrew Tridgell
454802d592 don't check lp_alternate_permissions() in the new utime workaround
code. lp_alternate_permissions() is intended only to affect the
display of file permissions, not what you can actually do with the
files.
-
Andrew Tridgell
8e90e1ef27 fix the order of become_uid() and become_gid() in become_root(). This
was a harmless bug but left log entries

code cleanup in reply_lanman2()
-
Andrew Tridgell
11de90f972 rewrote the password server code using the new clientgen.c client
interface

The new code uses a source netbios name equal to the Samba servers
name, not the client name. It also uses NetWkstaUserLogon to do a full
network logon. This means it will honour the servers logon
restrictions (such as login times etc).
-
Jeremy Allison
41a1d81c11 loadparm.c: Changed 'interfaces only' parameter to 'bind interfaces only'. Added
'dos filetimes' parameter for UTIME fix.
locking_shm.c: Fixed typo (sorry Andrew :-).
namepacket.c: Changed lp_interfaces_only() to lp_bind_interfaces_only().
proto.h: The usual.
reply.c: Made filetime calls use new file_utime call (wrapper for sys_utime).
server.c: Made filetime calls use new file_utime call (wrapper for sys_utime).
system.c: Added Andrew's sanity checks to times in sys_utime().
time.c: Moved set_filetime() to server.c. Made null_mtime()global.
trans2.c: Made filetime calls use new file_utime call (wrapper for sys_utime).
Jeremy (jallison@whistle.com)
-
Andrew Tridgell
65ab9adaa0 a major share modes reorganisation.
The shares modes code is now split into separate files. The shared
memory implementation is in locking_shm.c. The slow implementation is
in locking_slow.c

It is all controlled by a struct share_ops structure that has function
pointers to the implementation of all the functions needed by a share
modes implementation. An initialisation function sets up this
structure. This will make adding new implementations easy and clean.

This also allowed me to get rid of the ugly code in smbstatus. Now
status.c links to the locking code and calls methods in share_ops.

I also renamed some things and generally organised things in a much
cleaner fashion. Defines and structures specific to each
implementation have been moved to the appropriate file and out of
smb.h.
-
Jeremy Allison
16fd4337f7 ipc.c: Adding Andrews become_root code to the main branch.
locking.c: Adding Andrews become_root code to the main branch.
pipes.c: Fixing the close_file issue.
proto.h: The usual.
reply.c: Move smb_pass into NTDOMAIN defined code. Fixing the close_file issue.
server.c: Fixing the close_file issue.
trans2.c: Fixing the close_file issue.
uid.c: Adding Andrews become_root code to the main branch.
Jeremy (jallison@whistle.com)
-
Luke Leighton
87a0a94485 Makefile:
added credentials.c to smbd

credentials.c:

	using credential structures instead of char*

password.c uid.c server.c:

	added sid and attr to user_struct.

smbdes.c:

	smbhash and str_to_key make public instead of private.

pipes.c smb.h:

	lsa structures, sub-functions.

proto.h:

	usual.
-
Jeremy Allison
7624722889 local.h: Fix spelling mistake :-).
namedbsubnet.c: Stop registering 1x name unless we can be a local master.
reply.c: Remove ERRbaddirectory code.
server.c: Remove abort() - use exit_server() instead.
trans2.c: Remove ERRbaddirectory code.
Jeremy (jallison@whistle.com)
-
Andrew Tridgell
e10ba4b97a bracket some macros
change MAX_PASSWORD_LENGTH to MAX_PASS_LEN to prevent conflict on some
systems

add #ifdef around soft link dependent code (for systems that don't
have soft links)
-
Jeremy Allison
b8ff5543b9 Makefile: Split definitions for SGI4,5,6.
includes.h: Split definitions for SGI4,5,6.
pipes.c: Moved Luke's #ifdef to remove warnings.
quotas.c: Two changes for FreeBSD and SGI.
server.c: Quota changes for large filesystems.
Jeremy (jallison@whistle.com)
-
Jeremy Allison
cc50955a27 ipc.c: Added ERROR_MORE_DATA error if client buffer too small.
server.c: Allow admin_user on read only shares. I think this is
safe but it needs looking at.
Jeremy (jallison@whistle.com)
-
Jeremy Allison
1e1366ddc5 locking.c: Added fix for race condition in slow share mode code.
lsaparse.c: #ifdef'ed out code so this will compile - LUKE PLEASE CHECK THIS.
pipes.c: #ifdef'ed out code so this will compile - LUKE PLEASE CHECK THIS.
server.c: Fixed last known oplock race condition.
smb.h: Re-removed USE_OPLOCK defines - someone checked in an old version.
smbparse.c: #ifdef'ed out code so this will compile - LUKE PLEASE CHECK THIS.
Jeremy (jallison@whistle.com)
-
Jeremy Allison
b93509846d client.c: Changed shadowed variable.
locking.c: Removed USE_OPLOCKS - now the default.
params.c: Removed unused variable.
proto.h: Updated.
reply.c: Removed USE_OPLOCKS - now the default.
server.c: Removed USE_OPLOCKS - now the default.
smb.h: Removed USE_OPLOCKS - now the default.
smbparse.c: Changed shadowed variable.
status.c: Removed USE_OPLOCKS - now the default.
util.c: Removed USE_OPLOCKS - now the default.
Jeremy (jallison@whistle.com)
-
Andrew Tridgell
25b7ada358 fix some "shadows global" errors. -
Jeremy Allison
23eeab7aa2 Race condition with multiple oplock break requests happens
more often than you might think (reproduced here with 4 clients
and netbench :-).
Raising debug log level for report from 1 to 3.
Jeremy (jallison@whistle.com)
-
Jeremy Allison
97ee4a5f69 locking.c: Fixed incorrect parameter count in debug statements. May explain
solaris crashes.
reply.c: Added NT specific error code. Put oplock break code in correct place
         in reply_lockingX.
server.c: Removed unneeded error mapping stuff.
          Fixed race condition in oplock code.
trans2.c: Added NT specific error code.
util.c: Added paranoia check in interpret_addr. Some core dumps
        reported here. Upped fcntl debug levels.

Andrew. Please check the NT specific error code handling (search
for the string "/* Ugly - NT specific hack - but needed (JRA) */",
this makes NT and 95 clients behave correctly here - please check
your Visual Basic apps with this code.

Jeremy (jallison@whistle.com).
-
Andrew Tridgell
c7f09ffd4a add "static" to a couple of functions that are only used locally.
set granted_oplock=False at the start of open_file(). This is
paranoia.
-
Jeremy Allison
bc4b70c566 proto.h: Updated.
server.c: Updated after netbench observation. Oplocks must be
broken *before* share modes are checked, not after. Netbench seems
to be working now.
smb.h: Added offsets for oplock break time fields.
trans2.c: Upped debug messages.
util.c: Upped debug messages.
Jeremy (jallison@whistle.com)
-
Andrew Tridgell
1ed901ddff change a debug level in reply.c
change from ERRbaddirectory to ERRbadpath for ENOTDIR errors. This
reverts to the old Samba code. I've done quite a bit of testing
against NT4 and have yet to get it to produce the ERRbaddirectory
error code. Producing ERRbaddirectory made a visual basic application
that was sent to me not run. This might explain some of the "it
doesn't work any more" complaints we've got about 1.9.17.

Jeremy, can you remember how you got NT to produce ERRbaddirectory?
There might be some specific circumstances we need to cover.
-
Jeremy Allison
4f29dfbc79 Added debug message for oplock_break().
Jeremy (jallison@whistle.com)
-
Andrew Tridgell
44bc9f239a change the semantics of hosts allow/hosts deny so that a global
setting applies to all shares regardless of any settings on other
shares. This allows us to immediately drop a connection if it does not
come from a allowed host, without even parsing the first SMB
packet. The next time we get a nasty security hole we can offer people
the option of just setting their hosts allow line.

If we drop a connection in this way we generate a "Not listening for
calling name" response and then exit.


add a per share "oplocks" option in smb.conf. I think its important to
be able to disable oplocks on a per-share basis as there are occasions
then they are definately not wanted, for example when sharing data
between a windows box and a unix application. This also allows us to
tell people "try disabling oplocks" when diagnosing problems.


fix a bug in process_smb(). It was taking the length of the packet
from outbuf, not inbuf (this bug was introduced with the oplocks
code). Jeremy, I assume this wasn't deliberate?
-
Jeremy Allison
cb83c74a6c Modified some debug messages, moved from 5 -> 8.
Jeremy (jallison@whistle.com)
-
Jeremy Allison
90484db0bf Fixed problem with oplock_type being set with no port.
Jeremy (jallison@whistle.com)
-
Jeremy Allison
4c83d37239 OPLOCK CHECK-IN - oplocks are now *OPERATIONAL* !!!!
Yipeee. At least as far as I can check in a short time :-).

local.h: Changed OPLOCK_BREAK_TIMEOUT to 30 seconds.
locking.c: Big changes to delete oplocks on a share mode entry.
proto.h: updated.
reply.c: Added oplock break code in lockingX reply & readbraw reply.
server.c: Add batch oplock code. Force server shutdown if client fails
          to respond to oplock break.
smb.h: Fix silly slow share mode oplock define bug.
status.c: Add oplock status info.

Jeremy (jallison@whistle.com)
-
Jeremy Allison
92f1553db2 dir.c: more pstrcpys.
local.h: Add OPLOCK_BREAK_TIMEOUT.
password.c: Fix for paranoia password server security bug.
proto.h: Updated.
reply.c: Oplock changes.
server.c: Massive oplock changes - nearly there....
smb.h: oplock definitions.
util.c: Add local message processing queues for oplocks.
Jeremy (jallison@whistle.com)
-
Jeremy Allison
7e3d4c8b21 Syncing up current oplock work in progress. #ifdef'ed out
so should have no effect on other work.
Jeremy (jallison@whistle.com)
-
Jeremy Allison
e7eb1f044d Adding Andrews buffer overflow fixes into the main branch.
Jeremy (jallison@whistle.com)
-
Jeremy Allison
f46dbaf08e Makefile: Removed earlier errors.
includes.h: Added INADDR_LOOPBACK define.
locking.c: More code to support oplocks.
proto.h: Updated.
server.c: More code to support oplocks. Moved processing of an SMB out of
process() into a separate function so it is easier to call from an oplock
break.
smb.h: Added oplock fields.
Jeremy (jallison@whistle.com)
-
Jeremy Allison
7dce7d8447 Checkin to sync up oplock development code so that NT
domain development code won't diverge.

Makefile: Fixed make proto (again). Added GLIBC2 fixes for Linux.
includes.h: Added GLIBC2 fixes for Linux.
proto.h: Much tidier.
quotas.c: OSF/1 quota fix.
reply.c: Fix from Ray Frush <frush@engr.colostate.edu> for zero NT timestamps.
server.c util.c: First oplock checkin - nowhere near finished so bracketed
with #ifdef USE_OPLOCKS. Done to make sync with NT domain code easier.
Jeremy (jallison@whistle.com)
-
Andrew Tridgell
db917c62c1 This commit does 3 main things:
1) put the encryption code in by default, with no #ifdef. It is still
disabled by default so you need to add "encrypt passwords = yes" in
smb.conf but at least all binaries will have it.

2) cleanup the kanji code so it compiles with no warnings

3) get rid of lots of uses of ugly non-portable C code. The main
offender being things like "register" but also remove uses of the
"const" keyword as there are compilers out there that don't support it
and even those that do often complain about its usage. Users don't
like warnings :-(

There is still some work to do. We need to replace the md4 code with
our own implementation. The current code (from rfc1186) is PD but is
not very portable. The new RFC (rfc1320) is more portable but adds
copyright restrictions. I'll do a from-scratch MD4 soon.

We also need to test that what I've implemented is portable. It should
be, but I'm too tired right now to test it on anything other than
intel linux.
-
Jeremy Allison
8a12b6a4f0 client.c: Made sure myhostname was initialised before substitutions.
status.c: Made sure myhostname was initialised before substitutions.
server.c
trans2.c: Moved OS/2 WPS fix.
Jeremy (jallison@whistle.com)
-
Jeremy Allison
99080705a2 Fixed up determination of client type for PROTOCOL_NT1. Uses client
capabilities bits in session_setup_and_X to decide. Made remote_arch
an enum as well as a string, for easier use.
Jeremy (jallison@whistle.com)
-
Jeremy Allison
fa1305d189 nameannounce.c
nameresp.c
nameserv.c
nameservreply.c
proto.h : Removed broadcast and recurse parameters in the
queue_netbios_pkt_wins() call - they are not needed as they
should always be 'false' and 'true' respectively.
Also fixed a bug with secure name registration (WINS
server code).
server.c: Finally fixed problem with error 267 being
returned to Win95. It is needed by NT. This is a horrid
fix and I would appreciate a better one :-).

Jeremy (jallison@whistle.com)
-
Jeremy Allison
dadb1ffb4c reply.c: Removed unused variables. Caught by gcc -Wall -Werror
server.c: Fix for old DOS clients not understanding ERRbaddirectory - map to ERRbadpath.
util.c: Fix for systems with no LOG_DAEMON facility.
Jeremy (jallison@whistle.com)
-
Jeremy Allison
3909576849 mangle.c: Fixed bug that caused string to run off the end of the mangled map.
server.c: Changed comparison from dname to name2 - seems correct - don't know why
          I changed it originally. hmmmmm.
trans2.c: Made lanman2 code more similar to scan_directory(). I should
          make the trans2 code call scan_dir as they are so similar.
Jeremy(jallison@whistle.com).
-
Samba Release Account
b60ef755cf doing that irritating compiler clash warning with the protos for standard_sub
and standard_sub_basic.  again.

lkcl
-
Samba Release Account
28b3c6db8a Changes to allow Samba to return the same error code as Windows NT.
Takes care of the cases where a Windows program is parsing a pathname
component by component and expects 2 different errors.
ERRbadpath - if a component in the path doesn't exist.
ERRbaddirectory - if a component in the path exists but is not a directory.
Extra error code added to smb.h to support this.
Code based on suggestions from "Christian Groessler" <chris@fast-ag.de>.

Jeremy (jallison@whistle.com)
-
Samba Release Account
de38a0b34f Fix suggested by "Christian Groessler" <chris@fast-ag.de>
dir.c: Cause dptr_create to return -2 when failing on unix error.
reply.c: Use UNIXERROR in more cases.
server.c: Add ENOTDIR mapping to error table.
trans2.c: Correctly determine UNIX error on dptr_create.
Jeremy (jallison@whistle.com)
-
Samba Release Account
bf1c79f7fd Makefile: Changed for HPUX10 tidyup.
includes.h:	Changed for HPUX10 tidyup.
ipc.c:		Fixed bug where getting local server list from NT browsers would
            fail.
nmbsync.c:	Fixed bug where getting local server list from NT browsers would
            fail.
proto.h:	Changed for crash bug on SCO with USE_MMAP.
quotas.c:	Added OSF quotas (patch from Bret Giddings <bret@essex.ac.uk>).
            Rolled back solaris uid change - I think it was wrong.
reply.c:	Changed for crash bug on SCO with USE_MMAP.
server.c:	Removed Lukes changes. Changed for crash bug on SCO with USE_MMAP.
smb.h:		Changed for crash bug on SCO with USE_MMAP.
smbpasswd.c:Fixed crash bug with Lukes changes.
uid.c:		Removed Lukes changes.
util.c:		Fixed I18N bug with extended char filenames and widelinks = no.
Jeremy (jallison@whistle.com)
-
Samba Release Account
3852656960 connecting to IPC$ goes under the guest account. the IPC$ share should
be treated no differently than any other share (for any security setting:
user, server or share).

this will clear up a bug where, when clients connect to the IPC$ share, this
used to be done under the guest account.  the standard_sub_basic() macros
will substitute the _guest_ account for %U, causing the samba server to
look different from when the client then connects to any other share.

lkcl
-
Samba Release Account
d21a166277 loadparm.c: Changed default create mask to 755 to support MAP_ARCHIVE.
server.c:	Added check for MAP_ARCHIVE before we set archive bit.
Jeremy (jallison@whistle.com)
-
Samba Release Account
9afa36f787 Makefile: Added UNIXWARE 2.x with shadow passwords from fja@extratech.com
client.c:	Made prompt appear at debug level 0. Fixed strcasecmp redefinition.
            Caused client to use set_blocking rather than making fcntl calls itself.
dir.c:		Removed redundent snum parameters.
includes.h:	Added SCO fixes.
loadparm.c:	Made default 'files to hide' a null string.
nmbd.c:		Removed O_NONBLOCK from pid file open for platforms that dont have it.
proto.h:	Changed snum to cnum where needed. Changed is_xx_path to is_in_path
            (now called via MACRO).
quotas.c:	Swapped setuid/seteuid calls when restoring uid.
reply.c:	Removed redundent snum parameters.
server.c:	Changed snum to cnum where needed. Setup new veto_list, hide_list
            namelists. Added standard_sub changes from
            Stefaan A Eeckels <Stefaan.Eeckels@ecc.lu> and
            Paul Rippin <pr3245@nopc.eurostat.cec.be>
shmem.c:	Changed cast for sizeof to be int before negating.
smb.h:		Added new veto_list, hide_list entries to connections.
            Added IS_PRINT, IS_HIDDEN_PATH, IS_VETO_PATH macros.
trans2.c:	Removed redundent snum parameters.
util.c:		Added standard_sub_basic changes from
            Stefaan A Eeckels <Stefaan.Eeckels@ecc.lu> and
            Paul Rippin <pr3245@nopc.eurostat.cec.be>
            Fixed up veto/hidden path processing so the paths are
            pres-parsed and checked for wildcards (for speed).
Jeremy (jallison@whistle.com)
-
Samba Release Account
937f0fbf87 Removed lp_killunused() call from server main loop. This
WAS A MAJOR BUG THAT CAN CAUSE IPC$ to be removed !!!!!
Not sure how this one got introduced (but I have my
suspicions :-). lp_killunused() MUST ONLY BE CALLED from
reload_services().
Jeremy (jallison@whistle.com)
-
Samba Release Account
2a28a6e5e4 charset.c: Split charset_initialise() into 2 - a charset_initialise() and
a codepage_initialise(). Fixes problem with initialising dos map
            twice.
charset.h:  Changes to support charset changes.
client.c:   Changes to support charset changes.
loadparm.c:	follow symlinks parameter from David Clerc <David.Clerc@cui.unige.ch>
nmbd.c:		Changes to support charset changes.
nmblookup.c:Changes to support charset changes.
proto.h:	Changes to support charset changes.
reply.c:	Don't call security=server with no user/no password guest. Fix from
            Stefaan A Eeckels <Stefaan.Eeckels@ecc.lu>
server.c:   follow symlinks code from David Clerc <David.Clerc@cui.unige.ch>
smbpasswd.c:Changes to support charset changes.
status.c:	Changes to support charset changes.
testparm.c: Changes to support charset changes.
testprns.c: Changes to support charset changes.
uid.c:		Fixed log message with no \n.
Jeremy (jallison@whistle.com)
-
Samba Release Account
256afb7648 Makefile: Added krb5 option from Nathan Neulinger <nneul@umr.edu>
includes.h:	Added krb5 option from Nathan Neulinger  <nneul@umr.edu>, added SGI5 fix.
password.c: Added krb5 option from Nathan Neulinger  <nneul@umr.edu>
quotas.c: Added inode quote fix.
reply.c: removed redundent code.
server.c: Changed error debug to 0, removed redundent check.
util.c: Added close_low_fd() to become_daemon - fix for rsh from Johnathan Knight.
Jeremy (jallison@whistle.com)
-
Samba Release Account
b47121624c local.h: Removed ununsed SHARE_MODES_XXX defines. Upped SMBD_RELOAD_CHECK
from 10 to 60.
server.c:	Removed unused code (was If 0'ed out).
trans2.c:	Backed out Luke's ctime->mtime change. I don't think it
            is correct. Left the other fixes, though.
util.c:		Changed veto/hide files separator back to '/'.
Jeremy (jallison@whistle.com)
-
Samba Release Account
c881dff3bf counter loop % usage only worked if counters were an exact multiple of
SMBD_LOOP time.  used >= instead.

lkcl
-