From b50ff657ddc29b81b4aa02a597e5affab197e4f2 Mon Sep 17 00:00:00 2001 From: Samba Release Account Date: Sun, 7 Jul 1996 12:36:18 +0000 Subject: 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 --- source/namequery.doc | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 source/namequery.doc (limited to 'source/namequery.doc') diff --git a/source/namequery.doc b/source/namequery.doc new file mode 100644 index 00000000000..77a75714e53 --- /dev/null +++ b/source/namequery.doc @@ -0,0 +1,56 @@ +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(). + -- cgit