1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-22 22:04:08 +03:00

134 Commits

Author SHA1 Message Date
Andrew Tridgell
3e670e4057 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.
(This used to be commit 65ab9adaa0d356b8041ed8a507ea52117f2a284e)
1997-10-20 08:46:00 +00:00
Andrew Tridgell
f4b4b3e6e3 casting cleanups
(This used to be commit ab849a97821c9e1f199eea8ea2ec477687bed947)
1997-10-20 02:50:12 +00:00
Andrew Tridgell
62b73f0913 move calls to smbhash() inside smbdes.c (for legal reasons)
(This used to be commit 9dfab27da3634539e99eb48c85dd5a64212e7005)
1997-10-20 01:00:08 +00:00
Luke Leighton
54ffd7f5c9 Makefile :
added srvparse.o and pipesrvsvc.o

smb.h :

	mods to the Net Share Enum stuff

srvparse.c :

	Net Share Enum parsing support.  more srvsvc pipe parsing to go here...

pipenetlog.c util.c:

	modified standard_sub_basic() so that you can set a global boolean
	and use a different string for the %U username substitution.

proto.h:

	the usual.
(This used to be commit 22b86b6499b2680d16cb4180a736b4e750147409)
1997-10-19 15:33:25 +00:00
Jeremy Allison
07c507728b After talking with Andrew added "interfaces only" parameter that
turns off the filtering on the broadcast socket by default.
Jeremy (jallison@whistle.com)
(This used to be commit db9aad07481f48c0fe2108d4ab0b2bc9b632816c)
1997-10-18 00:22:04 +00:00
Jeremy Allison
c336a2f081 .cvsignore: Added make_smbcodepage
interface.c: Added is_local_net().
locking.c: Added Fix for zero length share files from Gerald Werner <wernerg@mfldclin.edu>
           plus a race condition fix for the fix.
nameannounce.c: Made function static.
namedbresp.c: extern int ClientDGRAM removed - not used.
namedbserver.c: extern int ClientDGRAM removed - not used.
namedbsubnet.c: Added code to make sockets per subnet.
namepacket.c: Added code to read from all sockets & filter.
nameresp.c: extern int ClientDGRAM removed - not used.
nameserv.c: Indentation tidyup :-).
nameserv.h: Added sockets to struct subnet.
nameservresp.c: Improved debug message.
nmbd.c: Changed to terminte on listen_for_packets exiting.
nmbsync.c: extern int ClientDGRAM & ClientNMB removed - not used.
proto.h: The usual.
util.c: Fixed debug message.
Jeremy (jallison@whistle.com)
(This used to be commit 6904c2de080b2a9702800e9e4126386ced20569d)
1997-10-17 23:08:07 +00:00
Jeremy Allison
359d42c08d 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)
(This used to be commit 16fd4337f79ce33f91050c96c4a566221c5d9126)
1997-10-15 21:53:59 +00:00
Luke Leighton
d838452413 smb.h smbparse.c pipenetlog.c :
whoops, the SAM Logon structure was wrong.  updated this, and
	cifsntdomain.txt.  more debug info in pipenetlog.c.  the crash
	is somewhere around deal_with_credentials().

byteorder.h :

	put in uint8, uint16 and uint32 typecasts around debug info, because
	sign extending was resulting in ffffffe8 being displayed instead of e8.

credentials.c :

	some debugging info, because i'm tracking a coredump.  without gdb.
	nothing like making things difficult.

reply.c :

	whoops, missed this (important) bit from paul's code, which tells
	the NT workstation that the MACHINE$ entry doesn't already exist,
	and we're going to create a default entry with a password "machine"
	right now.

proto.h:

	the usual.
(This used to be commit ed606bc7d4e6fb1091e527ea70a3e950d50a1db4)
1997-10-15 19:16:38 +00:00
Luke Leighton
df4afea583 added srvsvc basic pipe, straight from paul's code. does NETSHAREENUM
and NETSERVERGETINFO.
(This used to be commit 96b17b829fc787c15cd366eca604c09d68b5b900)
1997-10-15 16:51:03 +00:00
Andrew Tridgell
1860d62d0d the usual proto.h update
(This used to be commit bdf3155418be02e2fe4daa1d2538f236be414e98)
1997-10-15 09:18:39 +00:00
Luke Leighton
6084046eed credentials, query info reply.
(This used to be commit 9b095887df204393090d7da9a47508685ddd5163)
1997-10-14 17:01:43 +00:00
Luke Leighton
1035aa9c73 split pipes.c down into util, netlog and ntlsa.
(This used to be commit 8fe02c239d70497af449ed0cdf1a32de10021ba1)
1997-10-13 15:55:54 +00:00
Luke Leighton
db20ab9bbd getting somewhere.
ipc.c :

	removed srvsvc pipe reference: have to do that.

pipes.c lsaparse.c smbparse.c :

	more debugging info.  looks a bit like netmon output.
(This used to be commit e02aa88e25ae6d4da7953aaff04ff2ae9a656d05)
1997-10-12 19:02:55 +00:00
Luke Leighton
60575a888a ipc.c:
debugging info.  found that data = NULL because of short packet length
	indicated from the ntlsaRPC pipe _royally_ stuffs NT's packet handling.
	maybe this should go down as a service denial bug to the ntbugtraq list.

pipes.c lsaparse.c smbparse.c :

	added more debug stuff.  added length of header to data_len in MSRPC
	fragment_length field (0x18 bytes short) which caused the above bug
	from NT 4.0.  oops.
(This used to be commit a6f8de6815e0b85bb23b302980730501ac0b87e5)
1997-10-12 14:17:55 +00:00
Luke Leighton
a26037ac7c added debugging macros (suitable eventually for use in tcpdump, hopefully)
(This used to be commit 946d73cf838976b905550288cac3aea7c43959f6)
1997-10-12 11:46:42 +00:00
Luke Leighton
9160c85a78 namelogon.c :
added NTLOGON.  (fixed the case 0:)

namepacket.c:

	call to NTLOGON mailslot

nameserv.h

	defines for NETLOGON and NTLOGON mailslot

util.c:

	added andrew's dump_data() function.
(This used to be commit 1eaad1c99463dcd42eb8ff4ea5686ad9ec6fc42e)
1997-10-11 15:10:57 +00:00
Luke Leighton
7fcc737ae9 the usual
(This used to be commit 2ade5b2706b884fbca2a5794912280a58bc41a08)
1997-10-10 19:49:17 +00:00
Luke Leighton
b94ddf082d ipc.c :
#if NTDOMAIN
		call to api_netlogRPC
	#endif

lsaparse.c :

	renamed lsa_io_q_auth2 to lsa_io_q_auth_2.

pipes.c :

	added api_lsa_reply_auth_2() and api_netlogRPC.

proto.h :

	the usual.
(This used to be commit e2e1979b6215080593728942d414a273505877df)
1997-10-10 16:40:23 +00:00
Luke Leighton
c5e739febe 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.
(This used to be commit 87a0a944855a673d693d934e446bdc231b1c7f02)
1997-10-10 14:48:05 +00:00
Luke Leighton
3dd03e4bb7 added #ifdef NTDOMAIN. added call to api_ntLsarpc instead of api_Lsarpc
in ipc.c iff NTDOMAIN is defined.
(This used to be commit 7bc4c4c27bf18ce3f632d230dc919ea341b5abb0)
1997-10-09 16:14:53 +00:00
Luke Leighton
ad54a56714 credentials.c:
use UTIME structure (defined and commented in smb.h to be time, secs,
                         since 01jan1970)

pipes.c:

	another sub-function.

util.c:

	added char *unistr2(uint16 *buff) function.  same as unistr except
    it takes uint16* instead of char*.

smbparse.c smb.h:

	more structure sorting.

proto.h:

	the usual.
(This used to be commit 72a86f514f0c92b69499718e63f5dd73ebece56e)
1997-10-09 14:40:46 +00:00
Luke Leighton
8871297885 loadparm.c proto.h:
added lp_domainsid()

lsaparse.c smb.h:

	debugging structures and parsing functions

pipes.c:

	finally got to the functions that will go into the RPC switch statement.
(This used to be commit d15aed8a9c58a7cc90befaee2d5a2752708f9327)
1997-10-08 17:12:07 +00:00
Luke Leighton
a3b7bdd7b9 pipes.c:
some routines to create LSA RPC packets.  none of them are used.

lsaparse.c:
smbparse.c:
smb.h:

	more tidy-up.
(This used to be commit b37e21273e81b875876e8e8ddf6804714044ffd8)
1997-10-07 14:58:07 +00:00
Jeremy Allison
2e92be3aaf 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)
(This used to be commit b93509846d6291771787af457500eec8984ee6bd)
1997-10-06 17:52:25 +00:00
Luke Leighton
8429cec72f lsaparse.c smb.h: added 32 bit "return status" to the response structures.
(This used to be commit 5bc75c6c626251dc8ba04ff4a83e81b92d93d2d6)
1997-10-06 14:52:26 +00:00
Luke Leighton
0e151792c3 Makefile: added lsaparse.c and smbparse.c
lsaparse.c, smbparse.c, smb.h: more functions / structures.
proto.h:                       the usual.
(This used to be commit a1c718728c46ebf8916af8985b4dae4d099f4ec2)
1997-10-06 13:30:54 +00:00
Luke Leighton
84e362dd13 updating lsa and smb parsing routines and structures.
(This used to be commit 2f722fe289051558dbe77aeb0a830bb3ded10a83)
1997-10-05 14:17:53 +00:00
Luke Leighton
07cc8fd8e8 proto.h:
- recreated, as usual.

smb.h:

- added RPC_HDR structure - the 18 byte MSRPC header

smbparse.c:

- added smb_io_rpc_hdr() function to read/write the RPC_HDR structure.

util.c:

- added align2, align4, align_offset functions.
- added skip_unicode_string, unistrcpy, unistrncpy functions.
- modified unistrcpy and unistrncpy to return the number of unicode
  characters returned, effectively making skip_unicode_string redundant.
(This used to be commit b0ad811cda3dcffed5b24104229813cdb17b014f)
1997-10-04 16:51:43 +00:00
Andrew Tridgell
2534e0688b 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.
(This used to be commit c7f09ffd4a00ef7266e3f54536ee6aaca9335fb8)
1997-10-03 03:34:19 +00:00
Jeremy Allison
4438d7b57e 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)
(This used to be commit bc4b70c566ed5fa926441fb64a0f756a6137d8d0)
1997-10-03 03:15:24 +00:00
Andrew Tridgell
85097a7c17 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?
(This used to be commit 44bc9f239aa0b3cdf6cf9ad8d3911e397eba7335)
1997-10-02 03:14:32 +00:00
Jeremy Allison
5864551aef 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)
(This used to be commit 4c83d37239f15f855fc10f01d7b4bf4217fb9eda)
1997-10-01 23:32:22 +00:00
Jeremy Allison
a0cd12e221 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)
(This used to be commit 92f1553db2cdf6f32881eb984a87050cf3e4760b)
1997-09-30 02:38:19 +00:00
Jeremy Allison
dff16872ca Syncing up current oplock work in progress. #ifdef'ed out
so should have no effect on other work.
Jeremy (jallison@whistle.com)
(This used to be commit 7e3d4c8b21f63a06d32605d230129e36883ad08c)
1997-09-26 19:26:56 +00:00
Jeremy Allison
6dd6b1383c 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)
(This used to be commit f46dbaf08eb8e06a7545d2c19dce9e2dda9dcc78)
1997-09-25 00:25:44 +00:00
Jeremy Allison
81eb442e88 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)
(This used to be commit 7dce7d84473beb5663b14a8ab32781970819c19d)
1997-09-23 19:19:06 +00:00
Jeremy Allison
a2d2206cc9 Makefile: Changed proto: target to not include c files not used currently.
Caused proto.h to be from a sorted list of C files.
arcfour.h: Added prototypes.
client.c: Added username%password in environment patch from John Blair <jdblair@frodo.tucc.uab.edu>
loadparm.c: Added username manipulation code from Peter McCool [SMTP:peter@qimr.edu.au]
username.c: Added username manipulation code from Peter McCool [SMTP:peter@qimr.edu.au]
mkproto.awk: Added arc4_key type.
proto.h: Updated & sorted.
Jeremy (jallison@whistle.com)
(This used to be commit 97ed4fea67095dfb83227e7b5fffc236ff277e02)
1997-09-19 17:12:08 +00:00
Jeremy Allison
1590983eb0 Added 'delete veto files' paremeter. Ugly - but the only
way to allow Samba client users to delete directories
containing Mac metafile information (.AppleDouble directories).

Needed for clean integration with netatalk.

Jeremy (jallison@whistle.com)
(This used to be commit 29c6c037dc62e44784e9d127d1e7ef3dd1506733)
1997-09-17 01:29:53 +00:00
Andrew Tridgell
57c2578cb2 - change generate_challenge() to use md4 instead of des
- move routines about a bit between smbencrypt.c and smbdes.c. Ensure
that there is no entry point for normal DES operation

- add the following comment:

   This code is NOT a complete DES implementation. It implements only
   the minimum necessary for SMB authentication, as used by all SMB
   products (including every copy of Microsoft Windows95 ever sold)

   In particular, it can only do a unchained forward DES pass. This
   means it is not possible to use this code for encryption/decryption
   of data, instead it is only useful as a "hash" algorithm.

   There is no entry point into this code that allows normal DES operation.

   I believe this means that this code does not come under ITAR
   regulations but this is NOT a legal opinion. If you are concerned
   about the applicability of ITAR regulations to this code then you
   should confirm it for yourself (and maybe let me know if you come
   up with a different answer to the one above)
(This used to be commit 35b92e725f351c9a9f2846a6b55f71c234f187c7)
1997-09-16 04:41:16 +00:00
Andrew Tridgell
ddb2ce9d81 rewrote md4.c from scratch. This implementation should be portable and
doesn't have any worries about RSA copyright.
(This used to be commit a1569971663f01c245c145b18290d9dba965dc36)
1997-09-15 02:49:38 +00:00
Andrew Tridgell
33a003de40 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.
(This used to be commit db917c62c14315afe6f0745a8097c1bca25cbf07)
1997-09-14 16:37:18 +00:00
Andrew Tridgell
6da700d77c prototype updates for new functions
(This used to be commit dbf662436031759b205f0140223da6a1d08c16df)
1997-09-11 02:19:35 +00:00
Jeremy Allison
f5302af621 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)
(This used to be commit 99080705a2d0adcb25e1eecbe517a2fac2779baa)
1997-09-04 20:26:07 +00:00
Jeremy Allison
82290216ad 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)
(This used to be commit fa1305d1894a28331ba80d9de038ebf31ba902d6)
1997-09-03 20:15:40 +00:00
Luke Leighton
918cc5f033 use of recursion_available and recursion_desired flag in netbios responses.
(This used to be commit 8235db6b4fbeced750c4c30edc84a61a35b39278)
1997-09-01 18:34:00 +00:00
Jeremy Allison
06dc98f220 Makefile: New program and support for dynamic codepage loading.
charset.c: Dynamic codepage loading code.
charset.h: Defines for file format.
proto.h:   Updated.
Jeremy (jallison@whistle.com)
(This used to be commit 550e98f2d49a101654b3abde278a7f7edf347ed8)
1997-08-30 01:30:25 +00:00
Samba Release Account
7971fb1feb charset.c: Added patch for client code page 852 (Eastern European) from
Leos Bitto <bitto@altec.cz>.
clitar.c:
proto.h: Fixed proto mismatch for strslashcmp().
Jermey (jallison@netcom.com)
(This used to be commit c7a4647b7a84641f5fed6b67d45c241fff19c2b3)
1997-08-27 20:20:58 +00:00
Samba Release Account
7df4b93bed Put back the smb_shm_ proto's that Luke keeps breaking !
Jeremy (jallison@whistle.com)
(This used to be commit 660a3ef70c36e6675c8cc63b97e9d251428f9b40)
1997-08-27 19:53:03 +00:00
Samba Release Account
38dc53828e doing that irritating compiler clash warning with the protos for standard_sub
and standard_sub_basic.  again.

lkcl
(This used to be commit b60ef755cf594ee9751660467709ea4f7a669a2c)
1997-08-27 19:27:25 +00:00
Samba Release Account
bce14d3642 Kanji fixes for upper/lower case conversion with sjis characters.
Code from Takashi Fujita <fujita@ainix.isac.co.jp>.
Jeremy (jallison@whistle.com)
(This used to be commit 07f7e378c4839d0ca4bb79c8755481f4bf5637de)
1997-08-21 20:03:45 +00:00