diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-02-04 01:55:50 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:09:31 -0500 |
commit | 9eb33fc21236942c4b518557be920d4208e6b168 (patch) | |
tree | 3b21825351052ea60adf067c673eceacabdc86d3 /source4/nbt_server/interfaces.c | |
parent | bd22848ad80dbe10551129325a59114d9a612f91 (diff) | |
download | samba-9eb33fc21236942c4b518557be920d4208e6b168.tar.gz |
r5211: added broadcast name defense against both registration and refresh
requests
(This used to be commit 9eafe2cacaef64384febe6bb0938294f7c1ee6bf)
Diffstat (limited to 'source4/nbt_server/interfaces.c')
-rw-r--r-- | source4/nbt_server/interfaces.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source4/nbt_server/interfaces.c b/source4/nbt_server/interfaces.c index a9041706c6d..9c26925b323 100644 --- a/source4/nbt_server/interfaces.c +++ b/source4/nbt_server/interfaces.c @@ -33,10 +33,23 @@ static void nbtd_request_handler(struct nbt_name_socket *nbtsock, struct nbt_name_packet *packet, const char *src_address, int src_port) { + /* if its a WINS query then direct to our WINS server */ + if ((packet->operation & NBT_FLAG_RECURSION_DESIRED) && + !(packet->operation & NBT_FLAG_BROADCAST)) { + nbtd_query_wins(nbtsock, packet, src_address, src_port); + return; + } + + /* the request is to us in our role as a B node */ switch (packet->operation & NBT_OPCODE) { case NBT_OPCODE_QUERY: nbtd_request_query(nbtsock, packet, src_address, src_port); break; + + case NBT_OPCODE_REGISTER: + case NBT_OPCODE_REFRESH: + nbtd_request_defense(nbtsock, packet, src_address, src_port); + break; } } |