mirror of
https://github.com/samba-team/samba.git
synced 2025-02-23 09:57:40 +03:00
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
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().
|
|
|