following a cvs error, i am rewriting this monster-commit. with bad grace.
authorLuke Leighton <lkcl@samba.org>
Thu, 6 Nov 1997 23:03:58 +0000 (23:03 +0000)
committerLuke Leighton <lkcl@samba.org>
Thu, 6 Nov 1997 23:03:58 +0000 (23:03 +0000)
commit1bd084b3e690eb26a1006d616075e53d711ecd2f
tree95009b9c5961f64c71ae4cc5def941929f4aa410
parentc45369217169fac261b32db71469c007db4b4a03
following a cvs error, i am rewriting this monster-commit.  with bad grace.

Modified Files:
---------------

Makefile:

adding extra files

ipc.c :

send_trans_reply() - alignment issue.  this makes the alignment
the same as that in NT.  this should be looked at by people who
understand the SMB stuff better than i.

api_fd_commands[] - added samr and wkssvc pipes.

loadparm.c :

lp_domain_controller() changed to mean "samba is a domain controller".
it's a "yes/no" parameter, now.  no, it isn't used _anywhere_.

namedbwork.c nameelect.c :

if "domain controller = yes" then add SV_TYPE_DOMAIN_CTRL to the
host _and_ workgroup announcements.  yes, you must do both: nt does.

namelogon.c :

important NETLOGON bug in SAMLOGON request parsing, which may be
the source of some people's problems with logging on to the Samba PDC.

password.c :

get_smbpwnam() renamed to get_smbpwd_entry().

pipes.c :

added samr and wkssvc pipes.

proto.h :

usual.  can we actually _remove_ proto.h from the cvs tree, and
have it as one of the Makefile dependencies, or something?

reply.c :

get_smbpwnam() renamed to get_smbpwd_entry() - also changed response
error code when logging in from a WORKSTATION$ account.  yes, paul
is right: we need to know when to return the right error code, and why.

server.c :

added call to reset_chain_pnum().

#ifdef NTDOMAIN added call to init_lsa_policy_hnd() #endif.  jeremy,
you'd be proud: i did a compile without NTDOMAIN, and caught a link
error for this function.

smb.h :

defines and structures for samr and wkssvc pipes.

smbpass.c :

modified get_smbpwnam() to get_smbpwd_entry() and it now takes
two arguments.  one for the name; if this is null, it looks up
by smb_userid instead.

oh, by the way, smb_userids are actually domain relative ids
(RIDs).  concatenate a RID with the domain SID, and you have
an internet globally unique way of identifying a user.

we're using RIDs in the wrong way....

added mod_smbpwnam() function.  this was based on code in smbpasswd.c

rpc_pipes/lsaparse.c :

added enum trusted domain parsing.  this is incomplete: i need
a packet trace to write it properly.

rpc_pipes/pipe_hnd.c :

added reset_chain_pnum() function.

rpc_pipes/pipenetlog.c :

get_smbpwnam() function renamed to get_smbpwd_entry().

arcfour() issues.

removed capability of get_md4pw() function to automatically add
workstation accounts.  this should either be done using
smbpasswd -add MACHINE$, or by using \PIPE\samr.

rpc_pipes/pipe_util.c :

create_pol_hnd() - creates a unique LSA Policy Handle.  overkill
function: uses a 64 bit sequence number; current unix time and
the smbd pid.

rpc_pipes/smbparse.c :

arcfour() issues.

smb_io_unistr2() should advance by uni_str_len not uni_max_len.

smb_io_smb_hdr_rb() - request bind uses uint16 for the context
id, and uint8 for the num_syntaxes.  oops, i put these both as
uint32s.

Added Files:
------------

rpc_pipes/lsa_hnd.c :

on the samr pipe, allocate and associate an LSA Policy Handle
with a SID.  you receive queries with the LSA Policy Handle,
and have to turn this back into a SID in order to answer the
query...

rpc_pipes/pipesamr.c rpc_pipes/samrparse.c

\PIPE\samr processing.  samr i presume is the SAM Replication pipe.

rpc_pipes/pipewkssvc.c rpc_pipes/wksparse.c

\PIPE\wkssvc processing.  the Workstation Service pipe?

holy cow.
12 files changed:
source/include/proto.h
source/include/smb.h
source/namedbwork.c
source/nameelect.c
source/namelogon.c
source/param/loadparm.c
source/passdb/smbpass.c
source/smbd/ipc.c
source/smbd/password.c
source/smbd/pipes.c
source/smbd/reply.c
source/smbd/server.c