kai/samba.git
25 years agoThis is a first step toward moving long namelists into a database. I
Christopher R. Hertel [Tue, 9 Jun 1998 01:56:18 +0000 (01:56 +0000)]
This is a first step toward moving long namelists into a database.  I
split the name_record structure into pieces.  The goal is that the key
(the name) be separate from the data associated with the key.  Databases
such as gdbm store information in [key,content] pairs.

There is no functional change in with this update.  It's just a step in
the direction that Jeremy and I have been discussing.

Chris -)-----

25 years agoMoved the ubiqx stuff above nameserv.h so that ubiqx typedefs could be
Christopher R. Hertel [Mon, 8 Jun 1998 20:07:40 +0000 (20:07 +0000)]
Moved the ubiqx stuff above nameserv.h so that ubiqx typedefs could be
seen by the nameserve.h header.

25 years agoproto.h
Christopher R. Hertel [Mon, 8 Jun 1998 19:38:57 +0000 (19:38 +0000)]
proto.h
  *Not* the usual.  I did make proto to add the #ifndef..#endif block.
  Just to be safe, I did a cvs diff and found no prototype changes.

ubiqx/sys_includes.h
  More fudging.  I want to use binary tree typdefs in nameserv.h, but
  nameserv.h is included in includes.h which is included by all of the
  ubiqx modules.  The result is that the types are referenced before
  they are declared.  My solution is to prevent nameserv.h and proto.h
  from being included in the ubiqx modules (where they are not needed
  anyway).

Chris -)-----

25 years agoAdded code to add the Samba names onto the remote_broadcast subnet,
Jeremy Allison [Mon, 8 Jun 1998 19:09:47 +0000 (19:09 +0000)]
Added code to add the Samba names onto the remote_broadcast subnet,
as NT 4.x does directed broadcast node status requests for the *<0x0> name.
Jeremy.

25 years agoAdded code to generate
Christopher R. Hertel [Mon, 8 Jun 1998 14:59:30 +0000 (14:59 +0000)]
Added code to generate

#ifndef _PROTO_H_
#define _PROTO_H_
:
:
#endif /* _PROTO_H_ */

in the appropriate places.  This required that I add an END rule.
I generated a new proto.h and diff'ed it against the previous.  There were
no differences except for the added lines.

Chris -)-----

25 years agoCosmetic. Added a cast to (void) to a call to add_name_to_subnet() since
Christopher R. Hertel [Mon, 8 Jun 1998 03:44:13 +0000 (03:44 +0000)]
Cosmetic.  Added a cast to (void) to a call to add_name_to_subnet() since
the return value was being ignored anyway.  SGI's lint said:

function returns value which is sometimes ignored
    add_name_to_subnet

Chris -)-----

25 years agoloadparm.c: Did it ! Changed defaults for 'case preserve' and 'short case preserve'.
Jeremy Allison [Fri, 5 Jun 1998 20:46:05 +0000 (20:46 +0000)]
loadparm.c: Did it ! Changed defaults for 'case preserve' and 'short case preserve'.
            Also removed 'domain allow/deny' parameters.
shmem_sysv.c: Added strerror code so I can see why sysV calls are failing.
lib/rpc/server/srv_netlog.c: Removed code that used 'domain allow/deny' parameters -
                             replaced with a comment so I will remember to fix this later.
Jeremy.

25 years agoclient.c: Allowed client to proceed even if it gets error 234 (more data
Jeremy Allison [Thu, 4 Jun 1998 18:49:13 +0000 (18:49 +0000)]
client.c: Allowed client to proceed even if it gets error 234 (more data
          available) when scanning server/workgroup/share lists.
ipc.c: Removed redundent definition of ERROR_MORE_DATA (234) we already have
       ERRmoredata in smb.h
Jeremy.

25 years agohad what would be a compile error if it wasn't #if 0'd out in passdb_ops
Luke Leighton [Thu, 4 Jun 1998 17:48:21 +0000 (17:48 +0000)]
had what would be a compile error if it wasn't #if 0'd out in passdb_ops

25 years agoadded "domain admin group" and "domain guest group" parameters. this is
Luke Leighton [Thu, 4 Jun 1998 15:24:20 +0000 (15:24 +0000)]
added "domain admin group" and "domain guest group" parameters.  this is
because "domain admin users" and "domain guest users" was overloaded.

incorrectly.

25 years agoFixed file descriptor leak in open_socket_out - this could
Jeremy Allison [Thu, 4 Jun 1998 01:50:28 +0000 (01:50 +0000)]
Fixed file descriptor leak in open_socket_out - this could
cause nmbd to run out of fd's. Test case found by Eloy Paris.
Jeremy.

25 years agoincludes.h: Fixes for NetBSD and BSDI.
Jeremy Allison [Thu, 4 Jun 1998 00:49:32 +0000 (00:49 +0000)]
includes.h: Fixes for NetBSD and BSDI.
smbpass.c: Fixed irix warnings.
Jeremy.

25 years agoIt occurred to me that the samba includes.h file should be included in the
Christopher R. Hertel [Wed, 3 Jun 1998 21:38:51 +0000 (21:38 +0000)]
It occurred to me that the samba includes.h file should be included in the
header files used by the ubiqx modules, instead of being hidden in the .c
files.  This would ensure that anything in includes.h would be "seen" by
the ubiqx headers.  I also had to put an #ifdef around the includes for
ubi_SplayTree.h and ubi_Cache.h in includes.h to prevent the header of the
descendant type from being included before its parent type.

Chris -)-----

25 years agoipc.c: Fix bug where we don't return the correct error code when client
Jeremy Allison [Wed, 3 Jun 1998 01:04:45 +0000 (01:04 +0000)]
ipc.c: Fix bug where we don't return the correct error code when client
       gives a too-small buffer for share info. Fix from Gil Kloepfer <gil@arlut.utexas.edu>
smb.h:
server.c: Fix for a nastly little security problem with multi-user Windows NT
          servers and Samba where the contents of the open-file cache can end
          up being served out to users who shouldn't have access. This is some
          *seriously* ugly code.
Jeremy.

25 years agoChanged the mechanism for including the Samba includes.h in the ubiqx code
Christopher R. Hertel [Tue, 2 Jun 1998 03:27:16 +0000 (03:27 +0000)]
Changed the mechanism for including the Samba includes.h in the ubiqx code
to something less hurried, simpler, and (I believe) more acceptable to
all.  The ubi_*.c files all now #include sys_include.h which, for Samba,
contains only comments and the line

#include "../includes.h"

That will make sure that the Samba header is there, allows me to
distribute a different default header with the main ubiqx set, and allows
others to write their own sys_includes.h for their own purposes.

Thanks to Andrew and Jeremy for hammering this out with me.

Chris -)-----

25 years agoclientutil.c: Don't core dump if no controlling terminal available for password.
Jeremy Allison [Mon, 1 Jun 1998 18:50:27 +0000 (18:50 +0000)]
clientutil.c: Don't core dump if no controlling terminal available for password.
passdb.c:
lib/rpc/include/rpc_misc.h: First cut at automatic uid/gid to rid mapping.
We can change this at a later date to make more bits available if neccessary.
Jeremy.

25 years agopoint people at the main web site for a up to date list of mirrors
Andrew Tridgell [Mon, 1 Jun 1998 06:28:12 +0000 (06:28 +0000)]
point people at the main web site for a up to date list of mirrors

25 years agoThis change ensures that only the processes/locked files that
Paul Blackman [Sat, 30 May 1998 02:25:11 +0000 (02:25 +0000)]
This change ensures that only the processes/locked files that
belong to -uUsername are printed when running 'smbstatus -uUsername'
PaulB

25 years agoAdded Paul Eggerts LocalTime patch.
Jeremy Allison [Fri, 29 May 1998 19:18:43 +0000 (19:18 +0000)]
Added Paul Eggerts LocalTime patch.
Jeremy.

25 years agoAdding Greek and Icelandic codepages from :
Jeremy Allison [Fri, 29 May 1998 18:25:43 +0000 (18:25 +0000)]
Adding Greek and Icelandic codepages from :

Manousaridis Haris <genesis@the.forthnet.gr>
and Magnús Gíslason <magnus@hi.is>

respectively.

Jeremy.

25 years agolatest messing about: probably doesn't compile; doesn't matter.
Luke Leighton [Thu, 28 May 1998 16:55:12 +0000 (16:55 +0000)]
latest messing about: probably doesn't compile; doesn't matter.

25 years agoOoops - fixed Win95 crash bugs with earlier code.
Jeremy Allison [Wed, 27 May 1998 23:50:30 +0000 (23:50 +0000)]
Ooops - fixed Win95 crash bugs with earlier code.
Jeremy

25 years agoNewly re-written do_match and mask_match functions, with the
Jeremy Allison [Wed, 27 May 1998 22:48:22 +0000 (22:48 +0000)]
Newly re-written do_match and mask_match functions, with the
help of Ums Harald <Harald.Ums@pro-sieben.de>, who has been
testing our 8.3 wildcards with a test suite.
With his new code for 8.3 matching, this is the test done
(I'm quoting from his email)

"I tested it by generating a directory with about 7600 Files and run
automatc tests with about 4000 patterns. The result from Win95 -> WinNT
and Win95 -> Samba where identical according to diff."

I have also re-written the long filename wildcard code,
so that doing DIR a*z now matches files :

AAA.BBB.CCCC....ZZZZ

correctly, and other fixes besides.

I sincerely hope I can lay this (horrid) issue to rest
now :-).

Jeremy.

25 years agoremoved "domain sid = " parameter instructions
Luke Leighton [Wed, 27 May 1998 14:22:52 +0000 (14:22 +0000)]
removed "domain sid = " parameter instructions

25 years agoloadparm.c: Added machine password timeout parameter - set to 7 days be default.
Jeremy Allison [Wed, 27 May 1998 00:30:52 +0000 (00:30 +0000)]
loadparm.c: Added machine password timeout parameter - set to 7 days be default.
password.c: Added code to tell server.c when machine password needs changing.
server.c: Change machine password in idle cycles if it needs it.
smbpassfile.c: Fixed up length calculations for machine password file.
smbpasswd.c: Moved domain joining code/machine password changing code.
lib/rpc/client/cli_netlogon.c: And this is where it now lives.
Jeremy.

25 years agosmb.h: More NT SMB stuff (just defines).
Jeremy Allison [Tue, 26 May 1998 19:37:31 +0000 (19:37 +0000)]
smb.h: More NT SMB stuff (just defines).
smbpass.c: Do *NOT* make this function static. It breaks the compile on gcc
util.c: Getting closer to MS wildcard semantics. A trailing '*' matches
        any trailing dot-separated components.
trans2.c: Removed hacks that change multiple '?' -> '*' as this
          breaks things now.
trans2.h: Removed NT_FILE_ATTRIBUTE_NORMAL - now FILE_ATTRIBUTE_NORMAL is defined
          in smb.h.
Jeremy.

25 years agoadded set logon, logoff, kickoff etc time functions.
Luke Leighton [Mon, 25 May 1998 13:39:08 +0000 (13:39 +0000)]
added set logon, logoff, kickoff etc time functions.

25 years agoi wondered why nisppass.c came up with a linker error "pdb_set_last_set_time"
Luke Leighton [Mon, 25 May 1998 13:24:36 +0000 (13:24 +0000)]
i wondered why nisppass.c came up with a linker error "pdb_set_last_set_time"
not found.  this gave me a clue...

#if 0 /* commented out until someone uses them jra */

...

#endif

25 years agomore warnings, from Tim Winders
Luke Leighton [Sun, 24 May 1998 17:47:49 +0000 (17:47 +0000)]
more warnings, from Tim Winders

25 years ago- created pdb_sethexpwd(), to be called from all pwd apis that need to
Luke Leighton [Sun, 24 May 1998 13:36:43 +0000 (13:36 +0000)]
- created pdb_sethexpwd(), to be called from all pwd apis that need to
  store passwords in ascii format

- dealt with lots of signed/unsigned char thingies spotted by Tim Winders.

25 years agoAdded more NT definitions, getting ready for nttrans code.
Jeremy Allison [Sat, 23 May 1998 02:00:21 +0000 (02:00 +0000)]
Added more NT definitions, getting ready for nttrans code.
Jeremy.

25 years agoadd_nisp21pwd_entry() finished but not tested. module now compiles.
Luke Leighton [Fri, 22 May 1998 12:12:16 +0000 (12:12 +0000)]
add_nisp21pwd_entry() finished but not tested.  module now compiles.

25 years agodoesn't compile: don't care. checking this in so people can see what's
Luke Leighton [Fri, 22 May 1998 11:28:32 +0000 (11:28 +0000)]
doesn't compile: don't care.  checking this in so people can see what's
going on.

25 years agoI've put the ubiqx headers back into includes.h, and removed them from
Christopher R. Hertel [Fri, 22 May 1998 07:46:39 +0000 (07:46 +0000)]
I've put the ubiqx headers back into includes.h, and removed them from
dir.c & mangle.c.  This was possible after I checked the tree code to make
sure that the tree code did not reference functions by macro name.  Also,
note that the AVL module has been removed to prevent conflict with the
SplayTree macro defines.

Chris -)-----

25 years agoThese two are not being used, and they would cause conflict under Andrew's
Christopher R. Hertel [Fri, 22 May 1998 06:32:07 +0000 (06:32 +0000)]
These two are not being used, and they would cause conflict under Andrew's
include scheme.  Removing them works around the problem.  If someone
does need them sometime (can't imagine why, since the splay tree is
typically faster), let me know and we can work something else out.

Chris -)-----

25 years agoRemoved all ubiqx includes from includes.h. So far, this was only a problem
Christopher R. Hertel [Fri, 22 May 1998 05:16:27 +0000 (05:16 +0000)]
Removed all ubiqx includes from includes.h.  So far, this was only a problem
for dir.h, which I've fixed.  Andrew did not add includes.h to the ubiqx
headers, which is good because it would cause internal conflicts within the
ubiqx tree modules.  It's also bad because the definitions and includes
that are part of includes.h are now in the ubiqx C files, but not in the
header files.  So, if includes.h were to redefine int, for example, the
new definition would be in the ubiqx C files, but not in the headers.

So, until Andrew and I can work something out that we both agree upon,
there are three basic rules:

1) Don't include includes.h in the ubiqx headers.  Problems may arise.
2) The ubiqx headers must follow includes.h in any Samba module that
   uses them.

This can and should all be worked out.  We just have to talk about it.

Chris -)-----

25 years agoAdded a disclaimer regarding the changes Andrew wants.
Christopher R. Hertel [Fri, 22 May 1998 04:43:04 +0000 (04:43 +0000)]
Added a disclaimer regarding the changes Andrew wants.

25 years agoPut a do_global_tests() function that will be expanded to
Jeremy Allison [Fri, 22 May 1998 01:51:14 +0000 (01:51 +0000)]
Put a do_global_tests() function that will be expanded to
test all the heuristics we know about for validating smb.conf
file.
Jeremy.

25 years agoadded:
Andrew Tridgell [Fri, 22 May 1998 00:32:27 +0000 (00:32 +0000)]
added:

#ifdef HAVE_INCLUDES_H
#include "../includes.h"
#endif

we want _all_ code in Samba to include this file to ensure that we can
override definitions, typedefs and includes in one place.

25 years agoFixed 'revalidate' parameter so it's only considered in security=share
Jeremy Allison [Thu, 21 May 1998 23:59:04 +0000 (23:59 +0000)]
Fixed 'revalidate' parameter so it's only considered in security=share
mode.
Jeremy.

25 years agoprinting.c: Fixed overflow by one problem in LPRng.
Jeremy Allison [Thu, 21 May 1998 23:50:16 +0000 (23:50 +0000)]
printing.c: Fixed overflow by one problem in LPRng.
reply.c: Fixed password length modifiers to always be done
         is none-encrypted mode used. This fixes Samba for
         people who are using non-encrypted passwords with
         security=server.
Jeremy.

25 years agoAlong the lines that Andrew suggested, I added a header called ubi_null.h.
Christopher R. Hertel [Thu, 21 May 1998 17:14:20 +0000 (17:14 +0000)]
Along the lines that Andrew suggested, I added a header called ubi_null.h.
This header tries four different locations for a definition of NULL.  If
NULL still hasn't been found, it defaults to ((void *)0).  All of the
includes can be, essentially, overridden by defining NULL on the command
line, as in -DNULL=((void *)0).  I have faith that this will avoid the
problem of NULL being in different places on different systems.  If there
is a system out there that doesn't define NULL in any of the headers I've
included, then let me know *where* it's defined and I'll add another
header.  Chris -)-----

25 years agofixed signed / unsigned warnings spotted by tim winders. also fixed
Luke Leighton [Thu, 21 May 1998 12:18:52 +0000 (12:18 +0000)]
fixed signed / unsigned warnings spotted by tim winders.  also fixed
unnecessary "address of" warnings.

25 years agojean-francois calling the right function for the "net t.o.d" dce/rpc support
Luke Leighton [Thu, 21 May 1998 11:54:40 +0000 (11:54 +0000)]
jean-francois calling the right function for the "net t.o.d" dce/rpc support
does gmtime() not LocalTime() now.

25 years agofix slprintf for sunos4 in head branch
Andrew Tridgell [Wed, 20 May 1998 21:29:32 +0000 (21:29 +0000)]
fix slprintf for sunos4 in head branch

25 years agodce/rpc net time command from jean-francois. does not support timezones
Luke Leighton [Wed, 20 May 1998 13:17:26 +0000 (13:17 +0000)]
dce/rpc net time command from jean-francois.  does not support timezones

25 years agoFixed incorrect last arg to safe_strcpy in new wildcard code.
Jeremy Allison [Wed, 20 May 1998 04:20:31 +0000 (04:20 +0000)]
Fixed incorrect last arg to safe_strcpy in new wildcard code.
Jeremy.

25 years agoMinor tweak for wcard compatibility paranoia.
Jeremy Allison [Wed, 20 May 1998 02:07:57 +0000 (02:07 +0000)]
Minor tweak for wcard compatibility paranoia.
Jeremy.

25 years agoFixed Samba's wildcard algorithm to be *exactly* the same
Jeremy Allison [Wed, 20 May 1998 02:01:21 +0000 (02:01 +0000)]
Fixed Samba's wildcard algorithm to be *exactly* the same
as NT.
You do not want to know how this code works :-).
Jeremy

25 years agoFix to do NT wildcard matching.
Jeremy Allison [Tue, 19 May 1998 22:06:41 +0000 (22:06 +0000)]
Fix to do NT wildcard matching.
Jeremy.

25 years agopassdb.c: Fixed typo in coment.
Jeremy Allison [Tue, 19 May 1998 20:08:37 +0000 (20:08 +0000)]
passdb.c: Fixed typo in coment.
smb.h: Removed comments no longer valid.
smbpass.c: Stopped dummy function from being prototyped.
util.c: Fix for multibyte char problems with strlower, strupper
and string_replace.
Jeremy.

25 years agomade mod_smbfilepwd_entry() and getsmbfilepwent() static. they need not
Luke Leighton [Tue, 19 May 1998 19:50:49 +0000 (19:50 +0000)]
made mod_smbfilepwd_entry() and getsmbfilepwent() static.  they need not
be exposed.

25 years agooops - got some of the default (conversion) functions wrong.
Luke Leighton [Tue, 19 May 1998 19:41:22 +0000 (19:41 +0000)]
oops - got some of the default (conversion) functions wrong.

25 years agoremoved "default" system for password database api: all functions must
Luke Leighton [Tue, 19 May 1998 19:17:35 +0000 (19:17 +0000)]
removed "default" system for password database api: all functions must
be supported.  there are some stub routines in passdb.c which can be
copied into a password database api which do conversion.  the module
writer can choose which of these to provide full support for instead
of using the conversion routines.

25 years agoldap.c :
Luke Leighton [Tue, 19 May 1998 17:48:40 +0000 (17:48 +0000)]
ldap.c :

- added support for some of the new passdb_ops functions.

- removed functions that are supported "indirectly" through passdb.c

nisppass.c :

- modified make_nisname_from_xxx() functions to take a "file" arg.

- turned getnisp21pwuid() into getnisp21pwrid().  getnisp21pwuid()
  functionality is available through "indirect" support in passdb.c

- removed functions that are supported "indirectly" through passdb.c

- added support for some of the new passdb_ops functions.

passdb.c :

- created getsam21pwrid() function to go alongside getsam21pwuid.
  it is not expected that getsam21pwuid ever be used, certainly
  not from the lib/rpc code.

- created getsamdisprid() and getsamdispent().  these are primarily
  for support of SamrQueryDisplayInfo, however given that they
  [struct sam_disp_info] return username, rid and fullname, there may
  be further instances where these functions will be useful.

- added support where either the get/add/mod-smb or get/add/mod-sam21
  functions are optional.  this can be done very easily by checking
  whether the struct passdb_ops table functions are NULL or not.

  documented this capability in the notes at the top of the module.

- where unix uid was referenced, use uid_t.

- where unix gid was referenced, use gid_t.

smb.h :

- added sam_disp_info functions to passdb_ops.

- added getsam21pwrid() function.

smbpass.c :

- added reference to iterate_getsam21pwrid().

lib/rpc/server/srv_samr.c :

- removed group rid code added to get_user_info_21() code: this
  had been added in the wrong place.  the client / server should
  already know whether it wants to do a lookup by user rid or
  by group rid.

  the test of whether the rid is a user or group rid has been left
  in because this may become useful consistency-check code.

- converted back to getsam21pwrid() not
  getsam21pwuid(pdb_user_rid_to_uid()).

  this is because the unix uid to user rid mapping can be non-monotonic
  in some password database systems, and monotonic in others.  imposing
  the restriction by converting immediately from rid to uid at this
  point is inadviseable, and will place this potential restriction on
  _all_ password database systems, not just some which, for whatever
  reason, do not support user rids.

  it should be up to the individual password database writer to
  convert from user rid to unix uid, should that module not support
  rids.

lib/rpc/server/srv_util.c :

- got lookup_user_name() to call getsamdisprid() not getsmbpwuid().
  a bug was introduced (or at least the bug already there was not
  fixed) whereby the nt user rid was converted to a unix uid, and
  then not used.

25 years agoFixed signed/unsigned warning.
Jeremy Allison [Tue, 19 May 1998 04:49:56 +0000 (04:49 +0000)]
Fixed signed/unsigned warning.
Jeremy.

25 years agoForgot to add the initialize_password_db() call to nmbd also.
Jeremy Allison [Tue, 19 May 1998 04:45:40 +0000 (04:45 +0000)]
Forgot to add the initialize_password_db() call to nmbd also.
Jeremy.

25 years agoAbstracted all the crappy password interfaces through an indirect
Jeremy Allison [Mon, 18 May 1998 23:57:28 +0000 (23:57 +0000)]
Abstracted all the crappy password interfaces through an indirect
function table, selectable at compile time. This should make the
code that implements all the password functions much cleaner, as
it's now very clear exactly what a particular password database
needs to provide to Samba.
Jeremy.

25 years agochgpasswd.c: Changed back to getsmb... from getsam...
Jeremy Allison [Mon, 18 May 1998 21:30:57 +0000 (21:30 +0000)]
chgpasswd.c: Changed back to getsmb... from getsam...
ldap.c: Stoped dummy_function being prototyped.
loadparm.c: Fixed slprintf sizes.
nisppass.c: Fixed safe_strcpy sizes.
nmbd_processlogon.c: Changed back to getsmb... from getsam...
nttrans.c: Just a dump of new code.
passdb.c: Moved stuff around a lot - stopped any lookups by rid. This
          needs to be indirected through a function table (soon).
password.c: Changed back to getsmb... from getsam...
reply.c: Changed back to getsmb... from getsam...
slprintf.c: Fixed prototype problems.
smb.h: Fixed prototype problems.
smbpass.c: Changed to getsmbfile....
smbpasswd.c: Changed back to getsmb... from getsam...
lib/rpc/server/srv_netlog.c: Changed back to getsmb... from getsam...
lib/rpc/server/srv_samr.c: Fixed rid lookup - use uid or gid lookup.
lib/rpc/server/srv_util.c: Changed back to getsmb... from getsam...
Jeremy.

25 years agolinker errors with -DUSE_NISPLUS_DB - difficult to spot when you're not
Luke Leighton [Mon, 18 May 1998 17:15:21 +0000 (17:15 +0000)]
linker errors with -DUSE_NISPLUS_DB - difficult to spot when you're not
using nis+ on your system, so you get 100 linker errors...

25 years agosorting out removal of some smb_passwd functions by calling pdb_smb_to_sam()
Luke Leighton [Mon, 18 May 1998 17:10:57 +0000 (17:10 +0000)]
sorting out removal of some smb_passwd functions by calling pdb_smb_to_sam()
instead, for use by nisppass.c

25 years agoremoved references to some of the smb_passwd routines from ldap and nis+
Luke Leighton [Mon, 18 May 1998 15:50:56 +0000 (15:50 +0000)]
removed references to some of the smb_passwd routines from ldap and nis+
code, use pdb_sam_to_smb(...sam21...) calls instead.  this is a lot simpler.

25 years agocreating and using some pdb_init_(sam/smb) routines. putting ldap headers
Luke Leighton [Mon, 18 May 1998 14:55:17 +0000 (14:55 +0000)]
creating and using some pdb_init_(sam/smb) routines.  putting ldap headers
back in (they had been taken out of includes.h because they are only
local to ldap.c.

25 years agono include headers in ldap.c.
Luke Leighton [Mon, 18 May 1998 14:43:06 +0000 (14:43 +0000)]
no include headers in ldap.c.
passdb.c sam_passwd <-> smb_passwd conversion routines

25 years agoresolving compilation errors
Luke Leighton [Mon, 18 May 1998 14:17:47 +0000 (14:17 +0000)]
resolving compilation errors

25 years agoreceived update from jean francois for ldap.c: he is doing add / mod
Luke Leighton [Mon, 18 May 1998 14:06:49 +0000 (14:06 +0000)]
received update from jean francois for ldap.c: he is doing add / mod
functions

25 years ago- renamed some of the passdb.c functions: they have a prefix pdb_ on them
Luke Leighton [Mon, 18 May 1998 12:27:04 +0000 (12:27 +0000)]
- renamed some of the passdb.c functions: they have a prefix pdb_ on them

- split smbpass.c "password file lock" routines into smbpassfile.c: moved
  trust account routines into smbpassfile.c as well

25 years agooops. pressed ctrl-z while editing the previous cvs message: this was
Luke Leighton [Mon, 18 May 1998 11:59:19 +0000 (11:59 +0000)]
oops.  pressed ctrl-z while editing the previous cvs message: this was
taken to mean ":x".

25 years agoMakefile:
Luke Leighton [Mon, 18 May 1998 11:54:00 +0000 (11:54 +0000)]
Makefile:

- added nisppass.c and NISPLUS_FLAGS

includes.h:

- renamed USE_LDAP to USE_LDAP_DB.  renamed NISPLUS to USE_NISPLUS_DB.
added default define of USE_SMBPASS_DB.

- removed ldap headers: they are local only to ldap.c

ldap.c :

- made all ldap-specific functions static.

- added dummy sam21 functions

loadparm.c :

- renamed NISPLUS to NISPLUS_HOME

mkproto.awk

- commented out ldap-specific #ifdef generation code: it's not
  needed now that ldap-specific functions in ldap.c are static

nisppass.c :

- first attempt at an add function from

25 years agoChange getpwnam to Get_Pwnam(xx , True) to allow lazy matching
Jeremy Allison [Fri, 15 May 1998 23:10:46 +0000 (23:10 +0000)]
Change getpwnam to Get_Pwnam(xx , True) to allow lazy matching
in /etc/passwd. Fix from "Mike Black" <mblack@csihq.com>.
Jeremy.

25 years agoFix from "Gerald W. Carter" <cartegw@eng.auburn.edu>, we were
Jeremy Allison [Fri, 15 May 1998 22:29:42 +0000 (22:29 +0000)]
Fix from "Gerald W. Carter" <cartegw@eng.auburn.edu>, we were
copying from a parameter into an unitialized variable (doh !).
Jeremy.

25 years agosome databases have search capabilities. acknowledging this in design
Luke Leighton [Fri, 15 May 1998 14:50:35 +0000 (14:50 +0000)]
some databases have search capabilities.  acknowledging this in design
of passdb.c api.

25 years agofirst non-compiling, unused, mostly stub version of NIS+ password database.
Luke Leighton [Fri, 15 May 1998 14:49:48 +0000 (14:49 +0000)]
first non-compiling, unused, mostly stub version of NIS+ password database.
based on Benny Holmgren's samba patch (copyright acknowledged).

25 years agoadding copyright messages for Benny Holmgren
Luke Leighton [Fri, 15 May 1998 14:48:25 +0000 (14:48 +0000)]
adding copyright messages for Benny Holmgren

25 years agotwo scripts from benny holmgren which a) create NIS+ table b) populate it
Luke Leighton [Fri, 15 May 1998 14:47:01 +0000 (14:47 +0000)]
two scripts from benny holmgren which a) create NIS+ table b) populate it
from private/smbpasswd.

25 years agoutil.c: Re-seed the crypto random number generator after a fork, so all
Jeremy Allison [Fri, 15 May 1998 00:39:46 +0000 (00:39 +0000)]
util.c: Re-seed the crypto random number generator after a fork, so all
        smbds started from the same parent won't use the same sequence.
Jeremy.

25 years agopassdb.c
Jeremy Allison [Thu, 14 May 1998 21:10:49 +0000 (21:10 +0000)]
passdb.c
server.c: Moved generate_machine_sid() into passdb.c for Jean-Francois
          (who might want an LDAP version). Changed locking to free exclusive
          lock as soon as possible to prevent contention.
lib/rpc/parse/parse_samr.c
lib/rpc/server/srv_samr.c: Changed last SID-as-string manipulation
                           function to use DOM_SID structure.
Jeremy.

25 years agosync with 1.9.18 branch (clean up comments)
Herb Lewis [Thu, 14 May 1998 19:04:29 +0000 (19:04 +0000)]
sync with 1.9.18 branch (clean up comments)

25 years agosome pretty horrible formatting in standard_sub_basic(): makes the function
Luke Leighton [Thu, 14 May 1998 14:01:09 +0000 (14:01 +0000)]
some pretty horrible formatting in standard_sub_basic(): makes the function
unreadable and unmaintainable

25 years agorobert frank - some Next3 compilation errors detected.
Luke Leighton [Thu, 14 May 1998 11:16:18 +0000 (11:16 +0000)]
robert frank - some Next3 compilation errors detected.

25 years agoFixed dce/rpc to use global_machine_sid (auto generated in server.c if
Jeremy Allison [Thu, 14 May 1998 03:32:21 +0000 (03:32 +0000)]
Fixed dce/rpc to use global_machine_sid (auto generated in server.c if
not present in smb.conf).
Jeremy.

25 years agonamequery.c: Fixed SGI IRIX 5.x compiler problem.
Jeremy Allison [Thu, 14 May 1998 03:20:42 +0000 (03:20 +0000)]
namequery.c: Fixed SGI IRIX 5.x compiler problem.
server.c: Added MACHINE.SID file generation - use lp_domain_sid() be default.
smbpass.c: Exposed do_file_lock() as I now use it in server.c
Jeremy.

25 years agochgpasswd.c: Added comments to #ifdefs
Jeremy Allison [Thu, 14 May 1998 01:30:40 +0000 (01:30 +0000)]
chgpasswd.c: Added comments to #ifdefs
ipc.c: Caused samba password changing not to be done if UNIX password
       changing requested and not successful.
util.c: Added string_to_sid() and sid_to_string() functions.
lib/rpc/client/cli_samr.c:
lib/rpc/include/rpc_misc.h:
lib/rpc/parse/parse_lsa.c:
lib/rpc/parse/parse_misc.c:
lib/rpc/parse/parse_net.c:
lib/rpc/parse/parse_samr.c:
lib/rpc/server/srv_lsa.c:
lib/rpc/server/srv_lsa_hnd.c:
lib/rpc/server/srv_netlog.c:
lib/rpc/server/srv_samr.c:
lib/rpc/server/srv_util.c: Changes so that instead of passing SIDs
around as char *, they are converted to DOM_SID at the earliest
opportunity, and passed around as that. Also added dynamic memory
allocation of group sids. Preparing to auto-generate machine sid.
Jeremy.

25 years agoFixed up HPUX entry.
Jeremy Allison [Wed, 13 May 1998 18:36:12 +0000 (18:36 +0000)]
Fixed up HPUX entry.
Jeremy.

25 years agoinitialise some variables (stops warning)
Andrew Tridgell [Wed, 13 May 1998 05:07:55 +0000 (05:07 +0000)]
initialise some variables (stops warning)

25 years agotest for overflow in nmb name parsing code
Andrew Tridgell [Wed, 13 May 1998 05:03:17 +0000 (05:03 +0000)]
test for overflow in nmb name parsing code

25 years agoinitialise a variable
Andrew Tridgell [Wed, 13 May 1998 05:02:31 +0000 (05:02 +0000)]
initialise a variable

25 years agowe don't need a typedef for string
Andrew Tridgell [Wed, 13 May 1998 05:01:36 +0000 (05:01 +0000)]
we don't need a typedef for string

25 years agoincludes.h: SunOS doesn't have strcasecmp, solaris versions prior to 2.6 don't
Jeremy Allison [Tue, 12 May 1998 22:11:24 +0000 (22:11 +0000)]
includes.h: SunOS doesn't have strcasecmp, solaris versions prior to 2.6 don't
            have vsnprintf.
locking_slow.c: slight tidy.
make_smbcodepage.c: Use safe_strcpy instead of pstrcpy.
nmbd_winsserver.c: Use pstrcpy instead of fstrcpy.
smbmount.c: Fixed reported bug.
util.c: Removed old fstrcpy/fstrcat functions.
Jeremy.

25 years ago- removed ldap_get_trust()
Luke Leighton [Tue, 12 May 1998 16:49:26 +0000 (16:49 +0000)]
- removed ldap_get_trust()

- #ifdef around putting 16 byte hashes instead of plaintext password.

25 years agofunction comments wrong
Luke Leighton [Tue, 12 May 1998 16:43:52 +0000 (16:43 +0000)]
function comments wrong

25 years agoremoved lp_domain_workstation() parameter
Luke Leighton [Tue, 12 May 1998 14:04:46 +0000 (14:04 +0000)]
removed lp_domain_workstation() parameter

25 years agoretired this file: it's not actually needed now that passdb.c provides
Luke Leighton [Tue, 12 May 1998 14:01:56 +0000 (14:01 +0000)]
retired this file: it's not actually needed now that passdb.c provides
the interface point.

25 years agoa new slprintf() function. This one is totally portable but a bit of a
Andrew Tridgell [Tue, 12 May 1998 12:48:54 +0000 (12:48 +0000)]
a new slprintf() function. This one is totally portable but a bit of a
kludge. It is a safe kludge with our current code but I would like to
revisit it at some point in the future.

The problem with the one I committed yesterday is it used non-portable
functions. (it also had a bug in it, but that's another matter)

This one works by just using vsprintf() into a 8k buffer and a memcpy
from there. No memory protection tricks or other non-portable
stuff. This is safe because all calls to slprintf() in samba use
strings which have been through a pstrcpy and thus are less than 1024
bytes. No call uses more than 2 of these strings. See what I mean by
kludge? Note that the 8k is way overkill but I like overkill :)

Someday (after autoconf) we will replace this with something better,
but meanwhile this is simple, secure and portable.

25 years agoThis is a security audit change of the main source.
Jeremy Allison [Tue, 12 May 1998 00:55:32 +0000 (00:55 +0000)]
This is a security audit change of the main source.
It removed all ocurrences of the following functions :

sprintf
strcpy
strcat

The replacements are slprintf, safe_strcpy and safe_strcat.

It should not be possible to use code in Samba that uses
sprintf, strcpy or strcat, only the safe_equivalents.

Once Andrew has fixed the slprintf implementation then
this code will be moved back to the 1.9.18 code stream.

Jeremy.

25 years agopassword back-end database support
Luke Leighton [Mon, 11 May 1998 18:03:01 +0000 (18:03 +0000)]
password back-end database support

ldap.c :

- added getldap21pwent() function

passdb.c :

- getsam21pwent() no longer a stub: calls ldap21 or smb21

smbpass.c :

- added getsmb21pwent() function (he he :-)

lib/rpc/server/srv_samr.c :

- removed "specific" calls to ldap functions; replaced with
  call to get_sampwd_entries instead (which is unfinished).

- rewrote get_user_info_21 function to call getsam21pwrid.

25 years agoreply.c: Added code to not overwrite sesssetup_user when in share level security
Jeremy Allison [Mon, 11 May 1998 17:53:37 +0000 (17:53 +0000)]
reply.c: Added code to not overwrite sesssetup_user when in share level security
and null session setup done.
smbpasswd.c: Fix from Gerald Carter <cartegw@Eng.Auburn.EDU> to fix incorrect
             use of pointer.
Jeremy.

25 years agoadd lp_domain_workstations() parameter. this is a list of workstation names
Luke Leighton [Mon, 11 May 1998 17:34:39 +0000 (17:34 +0000)]
add lp_domain_workstations() parameter.  this is a list of workstation names
from which an NT user can log in from.  empty (default) indicates no
restrictions.  exactly how this is enforced is unknown.  from past experience
it's likely that the enforcement is left to the client to carry out...

25 years agoldap back-end database development
Luke Leighton [Mon, 11 May 1998 15:56:01 +0000 (15:56 +0000)]
ldap back-end database development

Makefile:

created PASSBD_OBJ group

includes.h:

added #ifdef USE_LDAP to #include <ldap> headers

ldap.c:

- renamed "_machine" to "_trust" everywhere.
- added sam_passwd support routines
- removed get_ldappwd_entry function: replaced with get_sampwd_entry
- removed getldappwnam/uid: replaced with getsampwnam/uid
- other messing about bits which are probably going to annoy the
  hell out of jean-francois (sorry!)

mkproto.awk:

- added stuff to wrap ldap.c protos with #ifdef USE_LDAP
- added uid_t and gid_t return results to the prototype generation

passdb.c:

- created getsam21pwent, add_sam21pwd_entry, mod_sam21pwd_entry.
- modified getsampwnam/uid and created getsam21pwnam/rid functions
  to replace the local get_smbpwd_entry() and get_ldappwd_entry()
  functions, which jeremy didn't like anyway because they were
  dual-purpose.
- added utility routines which are or may be useful to all the
  password database routines.

password.c:

- renamed "machine_" to "trust_" everywhere.

smbpass.c:

- removed get_smbpwd_entry function: replaced it with get_sampwd_entry
  functions in passdb.c
- moved code that decoded acct_ctrl into passdb.c
- moved encode_acct_ctrl into passdb.c
- removed getsmbpwnam/uid: replaced with getsampwnam/uid
- renamed "machine_" to "trust_" everywhere.

smbpasswd.c:

- renamed "machine_" to "trust_" everywhere.

util.c:

- moved gethexpwd function into passdb.c

lib/rpc/server/srv_util.c:

- moved user_rid_to_uid, group_rid_to_rid etc etc into passdb.c

25 years agodon't use system functions as arguments to qsort() as otherwise you
Andrew Tridgell [Mon, 11 May 1998 08:41:09 +0000 (08:41 +0000)]
don't use system functions as arguments to qsort() as otherwise you
get stuck on systems with broken headers (like SunOS4). In this case
use StrCaseCmp instead of strcasecmp