summaryrefslogtreecommitdiff
path: root/source3/nmbd
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2000-01-03 03:17:16 +0000
committerAndrew Tridgell <tridge@samba.org>2000-01-03 03:17:16 +0000
commit574788039f53fada4769731ea3fafe9710417b71 (patch)
tree98e454727d3fe01fc12b921cb7b3fe0b9e2ce8ad /source3/nmbd
parentc0ad729de6a09cb6334f49ca31d606c215f30632 (diff)
downloadsamba-574788039f53fada4769731ea3fafe9710417b71.tar.gz
samba-574788039f53fada4769731ea3fafe9710417b71.tar.bz2
samba-574788039f53fada4769731ea3fafe9710417b71.zip
added the unexpected packet database (unexpected.tdb)
this means "nmblookup -S" now always works, even with broken servers the database stores all unexpected replies and these can be accessed by any client. while doing this I cleaned up a couple of functions, and put in place a better trn_id generator. in most places the code got quite a bit simpler due to the addition of simple helper functions. I haven't yet put the code in to take advantage of this for pdc replies - that will be next. Jeremys pdc finding code will then work :) (This used to be commit 280e6359d36c9bc8dcded302f15c3a1db8e3feeb)
Diffstat (limited to 'source3/nmbd')
-rw-r--r--source3/nmbd/nmbd.c5
-rw-r--r--source3/nmbd/nmbd_packets.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/source3/nmbd/nmbd.c b/source3/nmbd/nmbd.c
index 533c06351f..3ba8acc5e0 100644
--- a/source3/nmbd/nmbd.c
+++ b/source3/nmbd/nmbd.c
@@ -458,6 +458,11 @@ static void process(void)
sync_all_dmbs(t);
/*
+ * clear the unexpected packet queue
+ */
+ clear_unexpected(t);
+
+ /*
* Reload the services file if we got a sighup.
*/
diff --git a/source3/nmbd/nmbd_packets.c b/source3/nmbd/nmbd_packets.c
index 0a7696a466..77bdb29816 100644
--- a/source3/nmbd/nmbd_packets.c
+++ b/source3/nmbd/nmbd_packets.c
@@ -1402,8 +1402,9 @@ static struct subnet_record *find_subnet_for_nmb_packet( struct packet_struct *p
rrec = find_response_record( &subrec, nmb->header.name_trn_id);
if(rrec == NULL)
{
- DEBUG(0,("find_subnet_for_nmb_packet: response record not found for response id %hu\n",
+ DEBUG(3,("find_subnet_for_nmb_packet: response record not found for response id %hu\n",
nmb->header.name_trn_id));
+ unexpected_packet(p);
return NULL;
}