summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/nameservreply.c19
-rw-r--r--source/param/loadparm.c3
-rw-r--r--source/smbd/password.c6
3 files changed, 20 insertions, 8 deletions
diff --git a/source/nameservreply.c b/source/nameservreply.c
index 81ffe9ffae6..e5976bb7429 100644
--- a/source/nameservreply.c
+++ b/source/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/source/param/loadparm.c b/source/param/loadparm.c
index 69204cc13fe..df4d72cf207 100644
--- a/source/param/loadparm.c
+++ b/source/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/source/smbd/password.c b/source/smbd/password.c
index 23c29104e34..67f32d376cc 100644
--- a/source/smbd/password.c
+++ b/source/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);
}