mirror of
https://github.com/samba-team/samba.git
synced 2025-01-06 13:18:07 +03:00
b50ff657dd
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
70 lines
2.7 KiB
Plaintext
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.
|
|
|