Age | Commit message (Collapse) | Author | Files | Lines |
|
because the share must be browseable by a w95 client
2) send_mailslot_reply - unique or group datagram argument added.
3) netlogon.c - rewrote response packet to do the right thing for w95.
4) server.c reply_nt1() - added OEMDomainstring to the end.
5) (deep breath) reworked the nmbd-browsing code a little bit.
i discovered two months ago that becoming a primary domain controller
(and domain master browser) is done independently of becoming a
backup domain controller (logon server) is done independently of
becoming a local master browser.
therefore, three sets of state-machines (instead of just one) are in
place - each of which is responsible for taking samba through the
required stages to become: a logon server; a domain master browser;
and a local master browser.
each of these three things can occur independently on each interface,
_including_ the wins pseudo-interface. the only slight caveat is that
the wins pseudo-interface, by virtue of _not_ being a broadcast
interface, does _not_ register as a local master browser with the wins
server, as this doesn't make sense.
lkcl
(This used to be commit 88c6a00c3c1b430307f512986185b5ed7aea7181)
|
|
in 1.9.16 works at all!
question and resource record types for queries and response netbios
packets sorted out properly (see rfc1002.txt 4.2.1.3).
receipt of browser announcement packets were playing up
lkcl
(This used to be commit b289db62f1a53f1a68ea48dbfa59720cc778d39c)
|
|
(compiler bugs were the problem)
- minor password cleanups (catch WfWG bug where it sets the password
to a space instead of a NULL)
- fix printing problem for kanji users
- minor cleanups
(This used to be commit 92566ecc315c29da6e9aaa67ddae33e64f5bcc67)
|
|
The 1.9.16 tree is now back to 1.9.16p2 as far as nmbd is concerned
apart from a small change that fixes the announce type in two places.
(This used to be commit 45e66a69d320024877c8b13f12b21bf895e04410)
|
|
stuff and also fix a pile of nmbd bugs. Unfortunately I found it very
hard to disentangle the new features from the bug fixes so I am
putting in the new code. I hope this is the last big pile of changes
to the 1.9.16 series!
(This used to be commit 20b6203dac4bbb43e4e7bea0b214496d76d679d9)
|
|
can't test the multi group changes.
I also found that some of lukes changes wiped out some recent bug
fixes. Is your CVS tree ok luke?
(This used to be commit 8b7fe224bce64803d55ae279fa61ef3ebbbb0241)
|
|
- added multiple workgroup code - samba can register under different
(unique) NetBIOS aliases, one per workgroup it joins.
lkcl
(This used to be commit f24e341e7e4d8726b98d3a0f83b24f61817fe536)
|
|
DFLT_SERVER_TYPE in nameserv.h
- got rid of a lot of spurious domain controller stuff. Samba is not a
domain controller yet, but it can be a domain master. We were claiming
to be a domain controller in some packets which may have caused
problems
- don't do preferred master startups on the WINS pseudo-net
- don't do election requests on the WINS pseudo-net
- fix a nasty bug in become_non_master() which wiped out the bits in
remove_type before using them. The result was that samba didn't like
losing its master status.
- changed the logic in the election packet handling to enable us to
become a non-master whenever we receive a winning election frame, even
if we aren't expecting it
- get another packet from the socket in nmbd when we reject one of our
own packets, this stops us from going into the packet reading code too
often and makes nmbd much snappier
- always remove a name immediately when we try to release it, don't
wait for the lack of response from the network, otherwise we will end
up replying to name that we don't really own. We still send the dereg
packets, we just don't wait for them to time out.
(This used to be commit eb84f2f342375439d94481a0ccf47c9593544e32)
|
|
using the "server string" option. This replaces the -C option to nmbd
(This used to be commit 9e0fab2ee6c89155e6ba6b2401a25de37cb89333)
|
|
correctly if there were multiple instances of a name. This led to the
infamous "not enough memory" error when browsing (but this isn't the
only cause of that message)
- fix a triple-chaining bug which affected OpenX following a TconX
- fix a serious nmbd bug that meant nmdb would answer packets that it
wasn't supposed to, causing havoc with browse lists.
- never time out SELF packets. This is an interim fix until I find out
why nmbd thought they should be timed out.
(This used to be commit 2960c3908c2c3b01a1f2b77def60350018d298e1)
|
|
that samba uses possible
- added "socket address" option to allow virtual SMB servers (on
systems with IP aliasing line Linux)
- disabled FAST_SHARE_MODES by default in Linux as older Linux boxes
can't do shared writeable mappings. We really need autoconf ...
- added new option types in loadparm so a string type can be specified
ot be uppercase only, this is used for the workgroup and netbios name
options
- auto-create the lock directory if it doesn't exist in shared mem
startup
- get rid of announce_backup()
- change a few comments in nmbd code
- rewrote the chaining code completely. Hopefully it will handle any
depth chains now.
- added LPRng support
(This used to be commit e9eac6cd49c352349580ddb13d720cb201aecc48)
|
|
bug spotted in nameservresp.c - arguments to test subnet the response
is received on (same_net()) were the wrong way round (ccm@shentel.net)
samba was adding WORKGROUP(1e) as a unique not a group name: fixed this
bug in reply_name_status() and reply_name_query(): WINS entries weren't
being looked up.
name status reply adds local SELF entries to WINS SELF entries: some
SELF entries are only added locally, while others are only added via
WINS. name status needs to have both, combined.
a sync will only occur when an ANN_LocalMasterAnnouncement is received, NOT
an ANN_HostAnnouncement or an ANN_DomainAnnouncement.
when samba is a member of a workgroup, it looks for (using a wins server)
and announces to its domain master. NAME_QUERY_ANNOUNCE_HOST - yet another
'state' - has been created to do this: do the name query on the wins server
and send the announce host to the answer to this query.
jeremy @ vantive wrote the original code to do this, which used the
name_query() function. i'm trying to avoid name_query: it times out and
generally messes things up, but using queue_netbios_packet() and
queue_netbios_pkt_wins() is... not intuitive?
lkcl with help from jra
(This used to be commit 6e932e4bae8b46e7ff4a55a75484bad78308336a)
|
|
(This used to be commit 51e5a1a546adf6ba36c7e4c3298c651cff7e15b9)
|
|
(This used to be commit 153d324c7be345ae87f99e62123e9a7dbaf74aee)
|
|
lkcl
(This used to be commit 45d3b2644733333c657c48a69719fec72881f7df)
|
|
namedbname.c:search_for_name() wasn't looking for 0x1b as well as
0x0 and 0x20 name types.
reduced number of retransmissions of packets from 4 to 3 times.
added code that ensures remote lmhosts entries don't get deleted when
a master browser cannot be found on a remote subnet. stopped forcing
an election on remote subnets if a master browser cannot be found.
stopped browse list and wins list from being written out too frequently.
only add samba's names to local interfaces.
add 0x1c name if we are a domain logon machine (needs more exploration).
why bother reloading services when receiving a SIGTERM?
sort out add_my_name_entry() and remove_name_entry() to deal with
broadcast, samba as a WINS and samba using a WINS. properly.
added extra debug information to help with expected response queue code.
updated debug comments in become_master().
altered dump_names() DEBUG format. it looks prettier.
altered wins.dat format to match DEBUG format.
lkcl
(This used to be commit 429f1f975e2936f2e220b656c51c211d48d47047)
|
|
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
(This used to be commit b50ff657ddc29b81b4aa02a597e5affab197e4f2)
|
|
some bugs fixed / documented and some discrepancies noted down (in
namework.c as well as namework.doc)
namebrowse.c and namelogon.c contain functions that were inappropriately
placed in namework.c. namebrowse.c contains browse sync queue management
functions that were inappropriately placed in namedb.c
the 'cmd_type' member of response_record has been renamed to 'state'
because that more accurately reflects it purpose (not entirely. sigh).
fixed a bug in nameserv.c that meant the previous version wouldn't
compile.
there's probably a bit more...
lkcl
(This used to be commit a66417ebe871a1c1366c395ea4c7099852975e65)
|
|
accidentally updated the Makefile
updated the name database structure (again!). this time, there is one
name database per local interface. there is also a pseudo-interface on
ip 255.255.255.255. its purpose is to store WINS name entries. all the
local interface name databases store SELF names only. the WINS name
database stores non-special browser names.
added wins.dat file: records WINS entries in ascii format. this is reloaded
when nmbd restarts.
added repeating code for response packets. timer is in seconds only at the
moment.
updated the response queue code to deal with samba registering with a
WINS server a bit better (added more cases when a response isn't received).
tidied up the response packet processing code and expire_response_queue()
code. added cross references between response received and await-response
expired code.
added over-zealous code that checks all machines that register with samba
as a WINS server (every 10 minutes i think): to see whether they are still
alive or not (see rfc1001.txt)
bug reported by terry@ren.pc.athabascau.ca: DNSFAILed names _stay_ as
DNSFAIL, even though the machine may come back up and REGISTER.
removed update_from_reg() function. it's not necessary, and it does too much.
added code that announces on each local interface samba's ttl as zero and
servertype as zero when nmbd is kill -TERMed
first attempt at putting the first functionality of samba browsing back in
(remote subnets should have samba appear in a workgroup specified through
the lmhosts file)
lots of other miscellaneous tidying up / chopping about.
(This used to be commit 7e8c60cfe54060860e5ce20b1c3b8ec6aa5c54da)
|
|
prototypes automatically using "make proto". This is much less prone
to error than the old method of manually adding prototypes
(This used to be commit b551dc98f7cc194a5fc2e67a4ebae7fd67a01bbc)
|
|
(This used to be commit 0a044c25abc363d8b202ff5d148259d624b92ea7)
|
|
(This used to be commit 5269aa277c635cfda65a27fd1b2e587ac181e1c3)
|
|
- added iface_count() and iface_n_ip() routines so its easy to loop
over the local interface list
- made readsize a normal loadparm global
- check for null w in add_domain_entry()
- set the deathtime to time()-1 for doamin entries with servertype==0
This allows servers that are shutting down to be removed
- add the 0x1c name at startup if we are a WINS server. Previously we
added it only if we were a master
- loop over interfaces in add_my_domains(), so people don't have to
have a lmhosts file to get lp_workgroup() on all interfaces
- set add to True for find_workgroupstruct() in nmbsync, and check for
null return
- remove some ugly "errno = EBADF" bits. they just confused things.
(This used to be commit 88b191b48836eeb7937f25b37d0bdd4a2276e5a7)
|
|
and Netmask, instead replacing them with calls to routines in
interface.c
- got rid of old MAXINT define
- added code to ensure we only return one entry for each name in the ipc
enum routines
- added new_only option to add_netbios_entry() to prevent overwriting
of important names
- minor time handling fixup
(This used to be commit 7ed71b73ae745da099072eee36fc2700d1d91407)
|
|
- added dir_check_ftype() to clean up the file type checking a bit
- added check for libc version >= 5 for setfsuid() for Linux
- moved the AM_MASTER() and related macros to nameserv.h
- added proper defines for the various netbios announce types
- don't call the announce_backup() code, as I'm pretty sure its wrong
it sent ANN_GetBackupListReq packets as broadcasts, they are supposed
to be used only by clients to the master browser to find a list of
available backup servers to remote a netserverenum to, I don't think
nmbd should ever send one.
- fixed a bug in the browse list writing
- minor debug cleanups
- put in the code to discard our own broadcasts (it won't work for
multi-homed hosts though)
- changed ELECTION_VERSION to 1 so we can be beaten by a NT 3.51 server by
lowering the os level.
- only do sync_browse_lists() if we are the master browser, otherwise
we'll cause network overload
- don't call tell_become_backup() as it appears to be badly broken, it
should only be used when the machine being told has its MAINTAIN_LIST
to to auto. Not calling it does no great harm anyway
- fix a nasty bug where becomebackup was confused with reset browser!
- make setbuffer() not get caught by the auto protototypes
(This used to be commit cfbad9b08242962f41595273de08a7293fe432b1)
|
|
I've now got WINS registration working, and refresh working. Its
looking pretty good so far, but needs lots of testing.
(This used to be commit 045014aa57721b9701ca379bcab055b908773184)
|
|
fix typo in reply to backup lists
(This used to be commit bc4a2994377ab078d3d1a900f79fda9dfe4d0e6a)
|
|
The biggest thing is the integration of Lukes new nmbd. Its still
largely untested, so we will really need some feedback
I've also added auto prototype generation and cleaned up a lot of
minor things as a result
(This used to be commit 0d8dcfa13c527ec2c8aca39ba49c09e4e694b26c)
|