1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-23 09:57:40 +03:00
samba-mirror/source/namequery.doc
Samba Release Account b50ff657dd tidied up: code shuffling and documentation.
created namedb*.c nameservresp.c nameservreply.c and namepacket.c
added modules to Makefile, downloading dan's current version first :-)
shuffled docs to match source
created more docs

fixed bug in announce_backup() discovered when going nameannounce.doc:
backup list requests to the master browser should be used when samba is
not a master browser; backup list requests to the primary domain
controller should be used when samba is not a primary domain controller.

fixed bug in sync_server: it would never send MasterAnnounce packets.

removed the code that ignored special browser names: these should only
be ignored (except 0x1b names) when broadcasted name queries are sent,
not when directed registration or directed queries are sent samba as a
WINS server. (note: exactly what's going on is still uncertain).

renamed NAME_QUERY_MST_SRV_CHK  to NAME_QUERY_PDC_SRV_CHK  (more accurate).
renamed NAME_STATUS_MST_SRV_CHK to NAME_STATUS_PDC_SRV_CHK (more accurate).

added secured WINS name registration: a new 'state' NAME_REGISTER_CHALLENGE;
functions send_name_response(), response_name_query_register(); added
sending of WAIT ACKNOWLEDGEMENT packet; added a reply_to_ip field to
the response record structure so that after the name query challenge,
you know who to inform of the outcome of that challenge.

note: these are all currently untested modifications (yikes!)

lkcl
-

57 lines
2.2 KiB
Plaintext

this module contains non-threaded versions of name status and name
query functions. if a multi-threaded nmbd was to be written, these
functions would be the starting point.
at the moment, the expected response queueing system is used to
replace these functions without needing to multi-thread nmbd.
these functions are used in smbclient and nmblookup at present to
avoid having the vast quantities of complex and unused code needed
to support even a simple name query (or providing stubs for the
unused side of these functions).
there is a down-side to these functions, which is all microsoft's
fault. microsoft machines always always reply to queries on the
priveleged ports, rather than following the usual tcp/ip mechanism
of replying on the client's port (the exception to this i am led
to believe is windows nt 3.50).
as a result of this, in order to receive a response to a name
query from a microsoft machine, we must be able to listen on
the priveleged netbios name server ports. this is simply not
possible with some versions of unix, unless you have root access.
it is also not possible if you run smbclient or nmblookup on an
interface that already has been claimed by the netbios name server
daemon nmbd.
all in all, i wish that microsoft would fix this.
a solution does exist: nmbd _does_ actually reply on the client's
port, so if smbclient and nmblookup were to use nmbd as a proxy
forwarder of queries (or to use samba's WINS capabilities) then
a query could be made without needing access to the priveleged
ports. in order to do this properly, samba must implement secured
netbios name server functionality (see rfc1001.txt 15.1.6).
/*************************************************************************
name_query()
*************************************************************************/
/*************************************************************************
name_status()
*************************************************************************/
/*************************************************************************
_interpret_node_status()
*************************************************************************/
this is a older version of interpret_node_status().