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 | 4ab3d1682789319965a55edb37212b7671a743bb (patch) | |
tree | fe8317ae6ed3abd88ed532e213a865a503879c3e /source | |
parent | a38d903d2016202d470f1405e593be3c20404d72 (diff) | |
download | samba-4ab3d1682789319965a55edb37212b7671a743bb.tar.gz |
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.
Diffstat (limited to 'source')
-rw-r--r-- | source/nmbd/nmbd_elections.c | 3 | ||||
-rw-r--r-- | source/nmbd/nmbd_namelistdb.c | 4 | ||||
-rw-r--r-- | source/nmbd/nmbd_subnetdb.c | 19 | ||||
-rw-r--r-- | source/rpc_server/srv_netlog.c | 7 |
4 files changed, 26 insertions, 7 deletions
diff --git a/source/nmbd/nmbd_elections.c b/source/nmbd/nmbd_elections.c index ceef961d5e9..5c85191ec2c 100644 --- a/source/nmbd/nmbd_elections.c +++ b/source/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/source/nmbd/nmbd_namelistdb.c b/source/nmbd/nmbd_namelistdb.c index b7f185deeb4..29d822550c4 100644 --- a/source/nmbd/nmbd_namelistdb.c +++ b/source/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/source/nmbd/nmbd_subnetdb.c b/source/nmbd/nmbd_subnetdb.c index 40ae1db1b35..36a3ee9a27c 100644 --- a/source/nmbd/nmbd_subnetdb.c +++ b/source/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/source/rpc_server/srv_netlog.c b/source/rpc_server/srv_netlog.c index 8bcf1682bcb..cb22cfddf02 100644 --- a/source/rpc_server/srv_netlog.c +++ b/source/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. */ |