Jeremy Allison [Thu, 31 Jan 2002 23:26:12 +0000 (23:26 +0000)]
Fix from Michael Steffens <michael_steffens@hp.com> to make signal
processing work correctly in winbindd. This is a really good patch
that gives full select semantics to the Samba modified select.
Jeremy.
Tim Potter [Thu, 31 Jan 2002 11:44:00 +0000 (11:44 +0000)]
Added administrator access check for server side add, delete and setform
rpcs. The only one I have been able to verify is addform - can't get the
client side routines working properly yet. )-:
Tim Potter [Thu, 31 Jan 2002 11:42:16 +0000 (11:42 +0000)]
Added make functions for SPOOL_Q_{ADD,SET,DELETE}FORM.
I'm pretty sure that the useless_ptr in spoolss_io_q_setform() needs to be
initialised to 1 otherwise the form isn't marshalled at all. JF, can you
verify this? If so then this probably applies to the io functions for
setform and deleteform.
Tim Potter [Thu, 31 Jan 2002 11:36:30 +0000 (11:36 +0000)]
Added addform, setform and deleteform commands. The only one I could get
to actually work was addform. )-:
Removed a whole bunch of calls to werror_to_ntstatus() because there isn't
a one-to-one mapping of NTSTATUS values to WERROR values. This function
maps WERR_ACCESS_DENIED to NTSTATUS_INVALID_LOCK_SEQUENCE or something
silly like that.
Andrew Tridgell [Thu, 31 Jan 2002 09:37:26 +0000 (09:37 +0000)]
this fixes the problem of not being able to add a SD to a file on a
non-domain Samba server from a NT4 client.
Note that this exactly reverses a change by Jeremy on the 18th of
December 2001, reverting the code back to what JF originally wrote. I
have looked carefully with a sniffer and JFs original NULL sid is
correct (ie. it matches what NT4 does) and also fixes the problem.
Sending a blank sid (which is what jeremy's patch did) causes NT4 to
give a classic "parameter is incorrect error" and prevents the
addition of new ACLs.
Andrew Bartlett [Wed, 30 Jan 2002 12:06:22 +0000 (12:06 +0000)]
Back out herb's changes (to allow smbpasswd -x to work on accounts outside
/etc/passwd) and replace them with a version that works. Unfortunetly HEAD and
2.2 have different passdb interfaces and different local_password_change
functions...
Andrew Bartlett [Wed, 30 Jan 2002 10:50:07 +0000 (10:50 +0000)]
An attempt at producing the correct Makefile magic for wrepld_proto.h to be
automatically generated on first 'make'. This wasn't being picked up by the
build farm becouse of the explicit 'make proto'.
The 'make proto' bit isn't somthing our alpha testers know about (its certainly
not clearly documented) and its meant to be automatic.
Herb Lewis [Wed, 30 Jan 2002 04:07:42 +0000 (04:07 +0000)]
merge change from @_2 to allow smbpasswd -x to delete user even if no
entry in /etc/passwd.
There are still differences in the local_password_change function. I'm
not sure which was the latest so I didn't change any thing else. Someone
needs to take a look and sync these up.
Tim Potter [Tue, 29 Jan 2002 01:01:14 +0000 (01:01 +0000)]
Since we have dynamic initialisation in the group mapping code, make
init_group_mapping() a static function and don't call it from any client
programs.
Not sure whether I've made a bigger mess here or not...
Andrew Bartlett [Sat, 26 Jan 2002 12:24:18 +0000 (12:24 +0000)]
- Provide sid->name lookup support for non-unix accounts.
- Rework the name -> sid lookup function to always try local lookup first (for
local domain names) before trying winbind. This seems to eliminate my winbind
feedback loop problems. (I don't use winbind for nsswitch, where there are
almost certainly further issues).
Andrew Bartlett [Sat, 26 Jan 2002 11:48:42 +0000 (11:48 +0000)]
Back out some of the less well thought out ideas from last weeks work on
winbind default domains, particulary now I understand whats going on a lot
better. This ensures that the RPC client code does as little 'magic' as
possible - this is up to the application/user. (Where - for to name->sid code
- it was all along). This leaves the change that allows the sid->name code to
return domains and usernames in seperate paramaters.
Andrew Bartlett [Sat, 26 Jan 2002 10:10:25 +0000 (10:10 +0000)]
Bring this code into line with new winbind_lookup_name() interface. I think
this might need a bit more work - or at least documentation.
This is certainly a worthwile little hack, as it avoids the need to invert the
group database. I don't think we should allow unqualified domains here - as
that allows us to distinguish between (at least some) usernames and these
'special' groups.
Andrew Bartlett [Sat, 26 Jan 2002 10:06:23 +0000 (10:06 +0000)]
Make a talloc'ed copy of this strings so we can pass the right kind of pointer
to the function. This fixes a nice little segfault the brute-force-casting
created. :-)
Andrew Bartlett [Sat, 26 Jan 2002 10:05:10 +0000 (10:05 +0000)]
Rework lookup_name() to take seperate username/domain args, and to remove
varioius crazy 'if winbind didn't find it' cases. This makes winbind default
domain support easier to intergrate with smbd.
Andrew Bartlett [Sat, 26 Jan 2002 09:50:28 +0000 (09:50 +0000)]
Remove the 'direct to winbind' hacks, as they should (if I understand
correctly) be no longer needed. This is in aid of the 'winbind default domain'
code - which works much better when smbd always goes via the standard unix
interfaces.
Andrew Bartlett [Sat, 26 Jan 2002 06:24:53 +0000 (06:24 +0000)]
Fix up a security issue with the way we handle domain groups retuned on the
info3. These are RIDs, and it only makes sense to combine them with the domain
SID returned with them. This is important for trusted domains, where that sid
might be other than the one we currently reterive from the secrets.tdb.
Also remove the become_root()/unbecome_root() wrapper from around both
remaining TDB users: Both are now initialised at smbd startup.
Andrew Bartlett [Sat, 26 Jan 2002 06:02:28 +0000 (06:02 +0000)]
These changes commited on a 'no less broken' basis.
The previous code attempted to call winbind to find out the domain sid. This
couldn't work for a number of reasons - not the least of which was that both
the client and server ends would reject any name (in this case domain name)
without a \ in it (or lp_winbind_seperator()).
I think this is what was intended to occour. If there is still some need to
contact winbind for this information, I suggest a new call be created for this
- as it the server-side code doesn't allow for this information to be extracted
easily in any case.
Finally, it gets in the way of the default domain code a bit - hence why I was
actually looking at it...
Andrew Bartlett [Sat, 26 Jan 2002 05:52:20 +0000 (05:52 +0000)]
Try to move towards slightly sane linking for Samba by removing some pdb_...()
calls from rpc_parse/parse_net.c - instead these values are passed as a
paramater.
Unfortunetly some there is still some samr work to be done before this is
actually useful.
rewrote nmbd's wins backend to use a tdb instead of a flat text file.
Changed the way the wins record are handled in memory. Now they are living
much longer with the different states: active, released and tombstone.
Also added a version ID, some wins flags and the wins owner ip address to
the namrec->data struct, and a function to process messages sent by the
wins replication daemon.
the initiate_wins_processing() function is not correct, I'll fix it later.