diff options
author | Andrew Tridgell <tridge@samba.org> | 2000-01-03 03:17:16 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2000-01-03 03:17:16 +0000 |
commit | 574788039f53fada4769731ea3fafe9710417b71 (patch) | |
tree | 98e454727d3fe01fc12b921cb7b3fe0b9e2ce8ad /source3/nmbd | |
parent | c0ad729de6a09cb6334f49ca31d606c215f30632 (diff) | |
download | samba-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.c | 5 | ||||
-rw-r--r-- | source3/nmbd/nmbd_packets.c | 3 |
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; } |