1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-06 13:18:07 +03:00
samba-mirror/source/namebrowse.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
0001-01-01 00:00:00 +00:00

70 lines
2.7 KiB
Plaintext

this module deals with queueing servers that samba must sync browse
lists with. it will always issue a name query immediately before
actually carrying out the NetServerEnum call, to ensure that time
is not wasted by a remote server's failure.
this module was created to minimise the amount of NetServerEnum calls
that samba may be asked to perform, by maintaining the name of a server
for up to a minute after the NetServerEnum call was issued, and
disallowing further NetServerEnum calls to this remote server until
the entry is removed.
samba can ask for a NetServerEnum call to be issued to grab a remote
server's list of servers and workgroups either in its capacity as
a primary domain controller (domain master browser), as a local
master browser.
samba does not deal with becoming a backup master browser properly
at present.
/*************************************************************************
do_browser_lists()
*************************************************************************/
this function is responsible for finding an appropriate entry in the
sync browser cache, initiating a name query (which results in a
NetServerEnum call if there is a positive response), and then
removing all entries that have been actioned and have been around
for over a minute.
/*************************************************************************
start_sync_browse_entry()
*************************************************************************/
this function is responsible for initiating a name query. if a
positive response is received, then this will result in a
NetServerEnum api call.
samba will only initiate this process if it is a master browser
for this workgroup.
/*************************************************************************
add_browser_entry()
*************************************************************************/
this function is responsible for adding a browser into the list of
servers to sync browse lists with. if the server entry has already
been added and syncing browse lists has already been initiated, it
will not be added again.
/*************************************************************************
expire_browse_cache()
*************************************************************************/
this function is responsible for removing entries that have had the
sync browse list initiated (whether that succeeded or not is beyond
this function's scope) and have been in the cache for a while.
/*************************************************************************
add_browse_entry()
*************************************************************************/
this function is responsible for adding a new entry into the list
of servers to sync browse lists with at some point in the near future.