diff options
author | Jeremy Allison <jra@samba.org> | 1998-06-29 22:50:49 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 1998-06-29 22:50:49 +0000 |
commit | 06e42fa8659483495055eb3aab1982ebf3d0efa3 (patch) | |
tree | 5afeb9cb14c43cbaa418f0bc2291fce42ea1a4c5 /source3 | |
parent | fdb124c1cd0e91fa2a5f1c993a1df12fb866cca9 (diff) | |
download | samba-06e42fa8659483495055eb3aab1982ebf3d0efa3.tar.gz samba-06e42fa8659483495055eb3aab1982ebf3d0efa3.tar.bz2 samba-06e42fa8659483495055eb3aab1982ebf3d0efa3.zip |
nmbd_elections.c: Removed force elections code to bring into line with 1.9.18.
nmbd_namelistdb.c: Added comment for Chris.
nmbd_subnetdb.c: Went back to Chris's comparison code as with the make_nmb_name
change it all works now.
lib/rpc/server/srv_netlog.c: Ensure we return 'account disabled' for disabled
accounts, rather than crashing.
Jeremy.
(This used to be commit 4ab3d1682789319965a55edb37212b7671a743bb)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/nmbd/nmbd_elections.c | 3 | ||||
-rw-r--r-- | source3/nmbd/nmbd_namelistdb.c | 4 | ||||
-rw-r--r-- | source3/nmbd/nmbd_subnetdb.c | 19 | ||||
-rw-r--r-- | source3/rpc_server/srv_netlog.c | 7 |
4 files changed, 26 insertions, 7 deletions
diff --git a/source3/nmbd/nmbd_elections.c b/source3/nmbd/nmbd_elections.c index ceef961d5e..5c85191ec2 100644 --- a/source3/nmbd/nmbd_elections.c +++ b/source3/nmbd/nmbd_elections.c @@ -378,9 +378,6 @@ yet registered on subnet %s\n", namestr(&nmbname), subrec->subnet_name )); work->ElectionCount = 0; work->RunningElection = True; work->needelection = False; - - /* Send a force election packet to begin. */ - send_election_dgram(subrec, work->work_group, 0, 0, ""); } } } diff --git a/source3/nmbd/nmbd_namelistdb.c b/source3/nmbd/nmbd_namelistdb.c index b7f185deeb..29d822550c 100644 --- a/source3/nmbd/nmbd_namelistdb.c +++ b/source3/nmbd/nmbd_namelistdb.c @@ -288,7 +288,9 @@ void standard_success_register(struct subnet_record *subrec, /******************************************************************* Utility function automatically called when a name refresh or register - fails. + fails. Note that this is only ever called on a broadcast subnet with + one IP address per name. This is why it can just delete the name + without enumerating the IP adresses. JRA. ******************************************************************/ void standard_fail_register( struct subnet_record *subrec, diff --git a/source3/nmbd/nmbd_subnetdb.c b/source3/nmbd/nmbd_subnetdb.c index 40ae1db1b3..36a3ee9a27 100644 --- a/source3/nmbd/nmbd_subnetdb.c +++ b/source3/nmbd/nmbd_subnetdb.c @@ -74,6 +74,7 @@ static void add_subnet(struct subnet_record *subrec) } /* CRH!!! */ +#if 0 /* ************************************************************************** ** * This will go away when we move to a "real" database back-end. Note that we cannot use memcmp here as we have no control over how the struct nmb_name structures are packed in memory. JRA. @@ -97,6 +98,24 @@ int namelist_entry_compare( ubi_trItemPtr Item, ubi_trNodePtr Node ) return nmbname->name_type - NR->name.name_type; } /* namelist_entry_compare */ +#else +/* ************************************************************************** ** + * This will go away when we move to a "real" database back-end. + * ************************************************************************** ** + */ +int namelist_entry_compare( ubi_trItemPtr Item, ubi_trNodePtr Node ) + { + struct name_record *NR = (struct name_record *)Node; + + struct nmb_name *Iname = (struct nmb_name *)Item; + DEBUG(10, ("namelist_entry_compare: %d == memcmp( \"%s\", \"%s\", %d )\n", + memcmp( Item, &(NR->name), sizeof(struct nmb_name) ), + namestr(Iname), namestr(&NR->name), sizeof(struct nmb_name)) ); + + return( memcmp( Item, &(NR->name), sizeof(struct nmb_name) ) ); + } /* namelist_entry_compare */ + +#endif /* CRH!!! */ /**************************************************************************** diff --git a/source3/rpc_server/srv_netlog.c b/source3/rpc_server/srv_netlog.c index 8bcf1682bc..cb22cfddf0 100644 --- a/source3/rpc_server/srv_netlog.c +++ b/source3/rpc_server/srv_netlog.c @@ -252,7 +252,8 @@ static BOOL get_md4pw(char *md4pw, char *mach_name, char *mach_acct) smb_pass = getsmbpwnam(mach_acct); unbecome_root(True); - if (smb_pass != NULL) + if ((smb_pass) != NULL && !(smb_pass->acct_ctrl & ACB_DISABLED) && + (smb_pass->smb_nt_passwd != NULL)) { memcpy(md4pw, smb_pass->smb_nt_passwd, 16); dump_data(5, md4pw, 16); @@ -656,9 +657,9 @@ static void api_net_sam_logon( int uid, unbecome_root(True); if (smb_pass == NULL) - { status = 0xC0000000 | NT_STATUS_NO_SUCH_USER; - } + else if (smb_pass->acct_ctrl & ACB_DISABLED) + status = 0xC0000000 | NT_STATUS_ACCOUNT_DISABLED; } /* validate password. */ |