Tim Potter [Fri, 11 Jan 2002 05:33:45 +0000 (05:33 +0000)]
Always query the PDC for the list of trusted domains rather than interating
the list received at startup or we get an out of date list. I thought
there might be some sequence number that is incremented when a trusted
domain is added or removed - perhaps there is but I just haven't found it
yet.
- Renamed get_domain_info() to init_domain_list()
- Made an accessor function to return the list of trusted domains rather
than using a global so we don't have to remember to put a magic init
function
- The getent state can not keep a pointer to a winbind_domain structure as
it may be freed if init_domain_list() is called again so we keep the
domain name instead
Andrew Bartlett [Fri, 11 Jan 2002 05:29:09 +0000 (05:29 +0000)]
Back out the crazy notion that the NTLMSSP flags actually mean anything...
Replace this with some flags that *we* define. We can do a mapping later
if we actually get some more reliable info about what passwords are actually
valid.
Andrew Bartlett [Fri, 11 Jan 2002 04:50:45 +0000 (04:50 +0000)]
Fix up 'net ads join' to delete and rejoin if the account already exists.
This fixes up a problem where a machine would join (or downgrade by trust
password change) to NT4 membership and not be able to regain full ADS
membership until a 'net ads leave'.
Tim Potter [Thu, 10 Jan 2002 23:45:29 +0000 (23:45 +0000)]
Since AB has been changing the winbind interface it's time to add the "mock
swedish" test to client calls. This is putting a length field at the
start of a request so we can disconnect clients talking with an out of date
libnss_winbind.so rather than deadlock them.
Misc cleanups:
- made some int values uint32
- moved WINBIND_INTERFACE_VERSION to start of cmd list
Andrew Bartlett [Thu, 10 Jan 2002 11:28:14 +0000 (11:28 +0000)]
Return the winbind separator over the socket, so programs don't have to parse
smb.conf to get it right.
While wb_client needs its lp_load() for samba dependency reasons, it now uses
the new method both to example and test the new code.
Also add an interface version function, and return the winbind's samba version
string.
In preperation for default domains, its now up to winbindd to reject plaintext
auths that don't have a seperator, but NTLM (CRAP) auths now have two feilds,
hence need parsing.
Tim Potter [Thu, 10 Jan 2002 06:20:03 +0000 (06:20 +0000)]
A big tidyup while thinking about getting trusted domains being re-read
when they are added or removed on the PDC.
- renamed GETPWNAM_FROM_{UID,USER} constants and functions to GETPW{NAM,UID}
- renamed GETGRNAM_FROM_{GID,GROUP} constants and functions to GETGR{NAM,GID}
- use SIGUSR2 in winbindd for debugging/logging instead of SIGUSR1 in
preparation for moving to smbcontrol type messages (not sure whether to
ditch this altogether or not)
- tidy debugging messages in top level winbind user and group routines
- convert talloc_init() to talloc_init_named()
- make enumerations of the domain list use the same local variable names
Tim Potter [Thu, 10 Jan 2002 01:32:57 +0000 (01:32 +0000)]
Although configure.in and configure were checked in at the same time
I think configure.in just beat it to the repository so the timestamp of
configure.in is newer than configure. )-:
Jeremy Allison [Wed, 9 Jan 2002 21:30:37 +0000 (21:30 +0000)]
Added tests for st_blocks in struct stat, and added a (hateful) constant
the specifies the units that st_blocks is in. The reason for this is
that HPUX uses 8k, AIX uses a #defined constant and everyone else (tm)
uses 512 byte units.
Needed for the CIFS UNIX extensions - coming to a Samba server near
you soon.... :-).
Jeremy.
Martin Pool [Wed, 9 Jan 2002 08:27:15 +0000 (08:27 +0000)]
Add two more memory-debug smbcontrol messages: these ones should
prompt dmalloc to log information about what happening, so you can see
in flight why smbd is getting bloated.
Martin Pool [Wed, 9 Jan 2002 08:17:12 +0000 (08:17 +0000)]
FIXME: At the moment, if the user should happen to give the options
ahead of the service name (in standard Unix fashion) then smbclient
just spits out the usage message with no explanation of what in
particular was wrong. Is there any reason we can't just parse out the
service name and password after running getopt??
Martin Pool [Wed, 9 Jan 2002 07:52:51 +0000 (07:52 +0000)]
Better explanation message for dmalloc.
Also more insertion of parenthesis to handle struct members called
'free'.
You can now get useful dmalloc output, as long as it is compatible
with your C library. On RH7.1 it looks like you have to rebuild
dmalloc to allow free(0) by default, because something in libcrypt
does that. (sigh)
Tim Potter [Wed, 9 Jan 2002 04:17:24 +0000 (04:17 +0000)]
For hysterical raisins you must use string_set() to set the value of a
string in the loadparam Globals struct. Using pstrcpy was causing every
NULL string was being set to the name of the winbindd log file. (-:
Jeremy Allison [Tue, 8 Jan 2002 23:50:14 +0000 (23:50 +0000)]
My previous fix had a bug....
This is SO NASTY as some drivers need this to change, others need it
static. This value will change every second, and I must hope that this
is enough..... DON'T CHANGE THIS CODE WITHOUT A TEST MATRIX THE SIZE OF
UTAH !
Jeremy.
Jeremy Allison [Tue, 8 Jan 2002 00:46:56 +0000 (00:46 +0000)]
Added get_called_name() function, which replaces global_myname in printing
code (one less global, hurrah !) - to allow NetBIOS aliasing to be used
with point and print.
Jeremy.
Tim Potter [Sun, 6 Jan 2002 09:03:48 +0000 (09:03 +0000)]
Converted enumprinters and enumports cmd functions to use WERROR
values returned from cli functions. They are converted to NTSTATUS codes
using the error map functions.
Do buffer size loop checks by setting offered = 0 and using the return
value of needed in the next call.
Andrew Bartlett [Sun, 6 Jan 2002 01:37:14 +0000 (01:37 +0000)]
Get this code back to where it belongs...
Apparently (and I will doublecheck) its legal to do an annoymous session setup
when we negoitiated SPNEGO, but we can't do an authenticated one becouse we
didn't give a challange.
Andrew Bartlett [Sat, 5 Jan 2002 04:55:41 +0000 (04:55 +0000)]
I've decided to move the auth code around a bit more...
The auth_authsupplied_info typedef is now just a plain struct - auth_context,
but it has been modified to contain the function pointers to the rest
of the auth subsystem's components.
(Who needs non-static functions anyway?)
In working all this mess out, I fixed a number of memory leaks and moved the
entire auth subsystem over to talloc().
Note that the TALLOC_CTX attached to the auth_context can be rather long-lived,
it is provided for things that are intended to live as long. (The
global_negprot_auth_context lasts the whole life of the smbd).
I've also adjusted a few things in auth_domain.c, mainly passing the domain as
a paramater to a few functions instead of looking up lp_workgroup(). I'm
hopign to make this entire thing a bit more trusted domains (as PDC) freindly
in the near future.
Other than that, I moved a bit of the code around, hence the rather messy diff.
Jeremy Allison [Fri, 4 Jan 2002 21:11:35 +0000 (21:11 +0000)]
Re-wrote the guts of the rename_internals code to cope with a reported
bug (renaming name -> name was failing, on W2K it succeeds). Simplified
the common case, did a lot of work to ensure NT error codes are correctly
reported back to client.
Jeremy.