summaryrefslogtreecommitdiff
path: root/source3/nmbd/nmbd_responserecordsdb.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-01-29 08:25:46 +0000
committerJeremy Allison <jra@samba.org>1998-01-29 08:25:46 +0000
commit89652787c3894c7a79345a2ea67a4de741a0f760 (patch)
tree2357832bc8bbb9e24642ff4fa9d266242df7543a /source3/nmbd/nmbd_responserecordsdb.c
parente525e29487dcc5e3e5a504dfae5d83def25f58e6 (diff)
downloadsamba-89652787c3894c7a79345a2ea67a4de741a0f760.tar.gz
samba-89652787c3894c7a79345a2ea67a4de741a0f760.tar.bz2
samba-89652787c3894c7a79345a2ea67a4de741a0f760.zip
Makefile: Fix for OSF1 typo.
asyncdns.c: Fixes that went into 1.9.18p2 - allow unclocking of sigterm. chgpasswd.c: char -> unsigned char fixes. includes.h: AIX fix to get prototype for inet_ntoa. local.h: Tune size of shared memory based on MAX_OPEN_FILES. nmbd_mynames.c: Fix for nmbd repeated refresh bug. nmbd_responserecordsdb.c: Fix for nmbd repeated refresh bug. nmbd_winsserver.c: Fix for multi-homed registration optimisation. smb.h: Moved default shared memory size to local.h Jeremy. (This used to be commit fa5466805685d461564054d7d9947948fc56ae93)
Diffstat (limited to 'source3/nmbd/nmbd_responserecordsdb.c')
-rw-r--r--source3/nmbd/nmbd_responserecordsdb.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/source3/nmbd/nmbd_responserecordsdb.c b/source3/nmbd/nmbd_responserecordsdb.c
index a075284a4a..ceace36a61 100644
--- a/source3/nmbd/nmbd_responserecordsdb.c
+++ b/source3/nmbd/nmbd_responserecordsdb.c
@@ -236,3 +236,28 @@ matching record.\n", id));
return NULL;
}
+
+/****************************************************************************
+ Check if a refresh is queued for a particular name on a particular subnet.
+ **************************************************************************/
+
+BOOL is_refresh_already_queued(struct subnet_record *subrec, struct name_record *namerec)
+{
+ struct response_record *rrec = NULL;
+
+ for (rrec = subrec->responselist; rrec; rrec = rrec->next)
+ {
+ struct packet_struct *p = rrec->packet;
+ struct nmb_packet *nmb = &p->packet.nmb;
+
+ if((nmb->header.opcode == NMB_NAME_REFRESH_OPCODE_8) ||
+ (nmb->header.opcode == NMB_NAME_REFRESH_OPCODE_9))
+ {
+ /* Yes it's a queued refresh - check if the name is correct. */
+ if(nmb_name_equal(&nmb->question.question_name, &namerec->name))
+ return True;
+ }
+ }
+
+ return False;
+}