diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/nameservreply.c | 19 | ||||
-rw-r--r-- | source3/param/loadparm.c | 3 | ||||
-rw-r--r-- | source3/smbd/password.c | 6 |
3 files changed, 20 insertions, 8 deletions
diff --git a/source3/nameservreply.c b/source3/nameservreply.c index 81ffe9ffae..e5976bb742 100644 --- a/source3/nameservreply.c +++ b/source3/nameservreply.c @@ -138,11 +138,22 @@ void reply_name_release(struct packet_struct *p) if (n && (n->source != SELF) && (NAME_GROUP(n->ip_flgs[0].nb_flags) == NAME_GROUP(nb_flags))) { success = True; - - DEBUG(5, ("reply_name_release: Removing name %s on subnet %s\n", + + /* If it's a group name not ending in 1c (not an internet name) + then just allow it to fade out of existance by timing out. */ + if(NAME_GROUP(nb_flags) && (n->name.name_type != 0x1c)) + { + DEBUG(5, ("reply_name_release: Allow group name %s(%d) to fade out on \ +subnet %s\n", namestr(&nmb->question.question_name), n->name.name_type, + inet_ntoa(d->bcast_ip))); + } + else + { + DEBUG(5, ("reply_name_release: Removing name %s on subnet %s\n", namestr(&nmb->question.question_name), inet_ntoa(d->bcast_ip))); - remove_name(d,n); - n = NULL; + remove_name(d,n); + n = NULL; + } } if (bcast) return; diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 69204cc13f..df4d72cf20 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -371,6 +371,8 @@ static BOOL handle_announce_as(char *pszParmValue, int *val); static BOOL handle_coding_system(char *pszParmValue,int *val); #endif /* KANJI */ +static void set_default_server_announce_type(void); + struct parm_struct { char *label; @@ -1992,7 +1994,6 @@ BOOL lp_load(char *pszFname,BOOL global_only) { pstring n2; BOOL bRetval; - static void set_default_server_announce_type(void); add_to_file_list(pszFname); diff --git a/source3/smbd/password.c b/source3/smbd/password.c index 23c29104e3..67f32d376c 100644 --- a/source3/smbd/password.c +++ b/source3/smbd/password.c @@ -54,7 +54,7 @@ void generate_next_challenge(char *challenge) v2 = (counter++) * getpid() + tval.tv_usec; SIVAL(challenge,0,v1); SIVAL(challenge,4,v2); - E1(challenge,"SAMBA",(char *)saved_challenge); + E1((uchar *)challenge,(uchar *)"SAMBA",(uchar *)saved_challenge); memcpy(challenge,saved_challenge,8); challenge_sent = True; } @@ -944,7 +944,7 @@ BOOL password_ok(char *user,char *password, int pwlen, struct passwd *pwd) DEBUG(4,("Checking NT MD4 password\n")); if(smb_password_check(password, smb_pass->smb_nt_passwd, - (char *)challenge)) + (unsigned char *)challenge)) { update_protected_database(user,True); return(True); @@ -957,7 +957,7 @@ BOOL password_ok(char *user,char *password, int pwlen, struct passwd *pwd) if (smb_password_check(password, smb_pass->smb_passwd, - (char *)challenge)) { + (unsigned char *)challenge)) { update_protected_database(user,True); return(True); } |