Age | Commit message (Collapse) | Author | Files | Lines |
|
amount of network traffic grows as the square of the number of
workgroups. It probably wouldn't have caused problems but to be safe I
changed the code to use random() to decrease the probability of a
DMB<->DMB sync in proportion to the number of known workgroups. This
keeps the nice browse connectivity while making the traffic rise only
linearly with the number of workgroups.
(This used to be commit 685f4ef2e1f83ab39e91229cf53a61eecb6181eb)
|
|
The previous code was strictly correct, but not very practical. self
names were only refreshed every 3 days. I hit a situation where the
Samba WINS server was restarted after deleting wins.dat and didn't
notice some remote subnets (also running Samba). I realised that the
complete database wouldn't have been rebuilt for 3 days, which is way
too long. In order to recover from WINS restarts we need a much
shorter maximum refresh time.
(This used to be commit 1d23dd0912e81ff72695bd043e8e2aee32da18a8)
|
|
(This used to be commit 3eade55dc7c842bdc50205c330802d211fae54d3)
|
|
the correct port in environments like ip masq.
(This used to be commit 7d455ee637b6ff70c95845f89d71573ca07b83f3)
|
|
(This used to be commit 03d343ddf5ef672afb3cf1fa65f86eb2c0a48772)
|
|
to work (not a lot of testing yet though).
Now we just need to deal with people worried about having more than
two nmbd processes sometimes. (the async processes are created on
demand for browse sync, so you'll only see more than 2 occasionally)
(This used to be commit a350a54680e4170e2adf571b010ea508e7291780)
|
|
then obtained a node status response we need to remember the server
name of the master browser so that other browse clients asking us for
a workgroup list will get a entry for the master of that workgroup.
(This used to be commit 601f995ffbfa0ee477ea628d92b9660d6bdd8cbc)
|
|
are now sorted by the number of common leading bits in the IP address
with the address of the querying host.
(This used to be commit 4460a1bc6aa7666d1c71d32ba73855d6ed32320a)
|
|
(This used to be commit f555a76df696a0625acc16fa365dc048e0c2447d)
|
|
It now has a line like this:
VERSION 1 251152
the first number is a version #define in nmbd_winsserver.c and will be
used if we ever have to change the format again.
The second number is a hash of the current interfaces setting. It is
used to detect the case where nmbd is restarted on a machine after the
IP of the machine has changed (or the interfaces list has changed in
any way). When that happens we need to discard the old wins.dat cache
or you end up with chaos. This has bitten quite a few people, they
find that when they move a machine it continues using the old IP for
some things for the next week until the wins entries time out!
I've checked, and the old nmbd can handle the new format, although it
does spit out a spurious error message about the VERSION line. So
users can safely run 2.0alpha then switch back to 1.9.18 without
problems.
(This used to be commit c4a8cdc60a5b01894ab2456e77b6d89d4c16a088)
|
|
areas of memory before freeing them.
While doing this I also found a couple of real bugs. In two places we
were freeing some memory that came from the stack, which leads to
a certain core dump on many sytems.
(This used to be commit c5e5c25c854e54f59291057ba47c4701b5910ebe)
|
|
(This used to be commit f18b4e95bffb25fa016dd6e7f9a128a9fc69466f)
|
|
correctly. Added new parameter "stat cache size" - set to 50 by default.
I now declare the statcache code officially "open" for business :-).
It gets a hit rate of 97% with a NetBench run and seems to make
using a case insensitive run as efficient as a case sensitive run.
Also tidied up our sys_select usage - added a maxfd parameter and
also added an implementation of select in terms of poll(), for systems
where poll() is much faster. This is disabled by default.
Jeremy.
(This used to be commit 779b924ec1f6c81ff578d22295b20fece698d1fc)
|
|
problem was a buffer overflow in process_node_status_request().
this really points out a general problem is allocating MAX_DGRAM_SIZE
packets on the stack in nmbd. There must be a better way.
(This used to be commit 7db45f169c33e0f3a67ba2260049226992de8bdf)
|
|
default to overwrite and smbd would default to append. Also, the -a option
(actually a toggle, such that "-a -a" would set the default) was documented
as append mode for nmbd, and *overwrite mode* for smbd.
nmbd now defaults to append mode, to match smbd. The -a option now always
means append, and I've added the -o option to both, meaning overwrite.
Note that the change to nmbd's default behavior may confuse some people.
I've not seen anything about 2.0.0 changes in the WHATSNEW.txt file.
Where would I document a change like this?
Chris -)-----
(This used to be commit b1d374fb14b1fb92a84260f1dcc59a39a4b99a3d)
|
|
configure.in: Source for header changes.
client/clitar.c: Fixed isXXX macros & debugs for gcc pedantic compile.
include/config.h.in: Added MEMSET, BZERO, MEMORY, RPCSVC_YPCLNT, STRINGS headers.
include/includes.h: Headers for the above.
include/smb.h: Made SIGNAL_CAST POSIX by default void (*)(int).
lib/access.c: Fixed isXXX macros & debugs for gcc pedantic compile.
lib/charset.c: Fixed isXXX macros & debugs for gcc pedantic compile.
lib/debug.c: Fixed signal functs.
lib/kanji.c: Fixed isXXX macros & debugs for gcc pedantic compile.
lib/smbrun.c: Fixed isXXX macros & debugs for gcc pedantic compile.
lib/util.c: Fixed isXXX macros & debugs for gcc pedantic compile.
libsmb/namequery.c: Fixed isXXX macros & debugs for gcc pedantic compile.
locking/shmem.c: Fixed isXXX macros & debugs for gcc pedantic compile.
locking/shmem_sysv.c: Fixed error messages in sysV stuff.
nmbd/asyncdns.c: Fixed signal functs.
nmbd/nmbd.c: Fixed isXXX macros & debugs for gcc pedantic compile.
passdb/passdb.c: Fixed isXXX macros & debugs for gcc pedantic compile.
passdb/smbpassfile.c: Fixed isXXX macros & debugs for gcc pedantic compile.
smbd/chgpasswd.c: Fixed isXXX macros & debugs for gcc pedantic compile.
smbd/ipc.c: Fixed isXXX macros & debugs for gcc pedantic compile.
smbd/nttrans.c: Fixed fsp code path.
smbd/password.c: fixed HAVE_YP_GET_DEFAULT_DOMAIN problem.
smbd/printing.c: Fixed isXXX macros & debugs for gcc pedantic compile.
smbd/reply.c: Fixed isXXX macros & debugs for gcc pedantic compile.
smbd/server.c: Fixed isXXX macros & debugs for gcc pedantic compile.
smbd/trans2.c: Fixed core dump bug.
smbd/uid.c: Fixed isXXX macros & debugs for gcc pedantic compile.
Jeremy.
(This used to be commit 1b9cbcd02e575dc0a95fa589f720df30a4acc46b)
|
|
Connections[] is now a local array in server.c
I might have broken something with this change. In particular the
oplock code is suspect and some .dll files aren't being oplocked when
I expected them to be. I'll look at it after I've got some sleep.
(This used to be commit c7ee025ead4a85b6fa44a832047b878451845fb6)
|
|
message *but the daemon would start anyway*. I've added a call to exit()
in the default: case of the option processing loop.
Chris -)-----
(This used to be commit c69727bd29c0bf1cded0db84602e791304691e2e)
|
|
(This used to be commit 687f76a17d6d3ebd33b4d9a848deef56f3c1f56a)
|
|
(This used to be commit be762dc3de6c1ef768790522dfe93007a61ce5d7)
|
|
so that we wouldn't get too many timestamps.
Chris -)-----
(This used to be commit 3e7e5fad378cf144927d9f2ffc82f80e150d44ab)
|
|
very long output line in become_domain_master_query_success().
Chris -)-----
(This used to be commit 9b5d431661c55056c31bedf9ef3900f27e1c5292)
|
|
through and changed some DEBUG() calls to DEBUGADD() to combine output
under a single timestamp. There were too many timestamps.
Note that Jeremy has told me that he's working on adding a config parameter
to turn timestamps off. Cool.
Chris -)-----
(This used to be commit 247dbc9a24987035a47f1ba4fa143b1e2c050e92)
|
|
timestamps from several DEBUG messages. The timestamps are redundant now
that DEBUG() provides them automatically.
There are still a few more files to do, but I've got to get home for dinner.
Chris -)-----
(This used to be commit 60286ccecaa6028d687e6406755016455e3b3a26)
|
|
(This used to be commit 3bda7ac417107a7b01d91805ca71c4330657ed21)
|
|
local.h: Kept FSTYPE_STRING as Samba for now.
nmbd_browsesync.c: Added bugfix from Matt Chapman mattyc@cyberdude.com
- lmb_browserlist is now a struct ubi_dlList not a
struct browse_cache_record *.
server.c:
smb.h:
uid.c:
password.c: Removed attrs code - it is not used anywhere.
Jeremy
(This used to be commit ef1af7fe6d5c58ae57b8e4efff0729e1a315da43)
|
|
NetBIOS name lists attached to the subnet records are now managed by
the splay tree code. I am still working on the WINS database as a
separate issue. Code is written, it's just a matter of incorporating it.
CRH
(This used to be commit 5ba96ddde4a4b2da2cc09190f5c6f0e633852f12)
|
|
size, etc. Also did a bit of work to add comments.
Chris -)-----
(This used to be commit d8b0a2104c05df957f0eb49c21388ec5a4858d98)
|
|
With apologies to Charlton Heston and Pierre Boule.
"You damn fools, you finally did it".
Changed default security mode to be security=user.
Yes this is a big (although small in code) change.
It's something we've been discussing for a while, to
finally wean people off the legacy security=share mode
which is *never* what you want.
Jeremy.
nmbd_incomingrequests.c: Bug fix for nmbd core dumps caused by overrun.
Found by <samuel@public.szonline.net>.
nttrans.c: More NT smb stuff.
reply.c: Unlink will overwrite an existing file. Well you learn
something new about POSIX every day. :-).
server.c: Tidyup unreadable code.
smbpasswd.c: Code to allow -U remote_username to allow ordinary
users to change remote passwords if their NT username
is different from their UNIX username.
Patch from <torbjorn.lindh@allgon.se>.
Jeremy.
(This used to be commit 4eccb47cfb3c8907a6558b6ea9a02b0184458e34)
|
|
password change core dump bug.
nmbd_subnetdb.c: Make namelist_entry_compare() static.
nttrans.c: More NT SMB stuff.
Jeremy.
(This used to be commit 1925a29c6b355b8358ee99e5b876b6376aa7d628)
|
|
nmbd_namelistdb.c: Added comment for Chris.
nmbd_subnetdb.c: Went back to Chris's comparison code as with the make_nmb_name
change it all works now.
lib/rpc/server/srv_netlog.c: Ensure we return 'account disabled' for disabled
accounts, rather than crashing.
Jeremy.
(This used to be commit 4ab3d1682789319965a55edb37212b7671a743bb)
|
|
Jeremy.
(This used to be commit a38d903d2016202d470f1405e593be3c20404d72)
|
|
nmbd_become_lmb.c: Add 'force_new_election' parameter to some functions.
This allows the start of the election to be done *after*
the demotion from local master browser is done.
Also changed code so release of 1d name is done
immediately to allow other local master to gain it.
nmbd_elections.c: Ensured no elections are run until we have registered
the WORKGROUP<1e> name that we must listen on to participate
in elections.
nmbd_incomingdgrams.c: Use force_new_election code.
nmbd_namelistdb.c: Make update_name_in_namelist static.
nmbd_subnetdb.c: Fix bug in comparison function. We cannot use memcmp
as structure packing may make this fail.
nmbd_packets.c: Ensure that we only send one release packet when
sending a broadcast packet.
nmbd_workgroupdb.c: Ensure we put the correct value in the ElectionCriterion field.
nmblib.c: Ensure make_nmb_name zero's the struct nmb_name.
Jeremy.
(This used to be commit 1fcb094ba04f01be1261ac92198c25b21b0d5ad5)
|
|
nmbd_winsserver.c: Remember to free packet in multi-homed register code.
Use correct query_name_from_wins_server call instead of
query_name call in multihomed code.
Jeremy.
(This used to be commit 6e995802fecb4474003db55a69c9e1663737aade)
|
|
pointer to the newly constructed name list entry. In most cases, this
return value is ignored. The two exceptions are in asyncdns.c and
nmbd_winsproxy.c.
Most of the calls which ignored the return value were not cast to void, so
I added the cast. This helped me sort out which calls really did use the
return value. I also discovered one case, in nmbd_winsserver.c, in which
the return value was being stored to a variable which, in turn, was not
used.
Chris -)-----
(This used to be commit 384122d165ed6d5d211a29e5a63a63bf5cd82c75)
|
|
splay tree. For short lists, this will have no noticable effect. As
lists (eg. the WINS database) grow longer, the speed improvements should
be quite dramatic. This change is an incremental step toward replacing
the in-memory namelists with a back-end database.
This change is going into the 1.9.19pre-alpha code because...well...it's
pre-alpha. Please let me know if there are any problems.
(Oh, as a side-effect, the wins.dat will be in sorted order. :)
Chris -)-----
(This used to be commit 7806c453df02a89f67e7c5c8b91f24aa2274e756)
|
|
Chris's reformating of the (rather long named function) find_name_for_remote_broadcast_subnet
(moving the function name onto a line on it's own) caused the proto
awk script to miss it.
Jeremy.
(This used to be commit 17c758687f0ec6040633bc1815a52627b7e15f02)
|
|
split the name_record structure into pieces. The goal is that the key
(the name) be separate from the data associated with the key. Databases
such as gdbm store information in [key,content] pairs.
There is no functional change in with this update. It's just a step in
the direction that Jeremy and I have been discussing.
Chris -)-----
(This used to be commit e420a4bd7d368a0e910893400fb7b46ab8694a08)
|
|
as NT 4.x does directed broadcast node status requests for the *<0x0> name.
Jeremy.
(This used to be commit 8c6fe8870a72271a6acd1633efc362c59e283e19)
|
|
the return value was being ignored anyway. SGI's lint said:
function returns value which is sometimes ignored
add_name_to_subnet
Chris -)-----
(This used to be commit ae706bff10cc77f06b8069e637ec9768d6a46966)
|
|
Jeremy.
(This used to be commit 2f9f0a88e8220575edb43a9945d0b60829efa840)
|
|
ldap.c: Stoped dummy_function being prototyped.
loadparm.c: Fixed slprintf sizes.
nisppass.c: Fixed safe_strcpy sizes.
nmbd_processlogon.c: Changed back to getsmb... from getsam...
nttrans.c: Just a dump of new code.
passdb.c: Moved stuff around a lot - stopped any lookups by rid. This
needs to be indirected through a function table (soon).
password.c: Changed back to getsmb... from getsam...
reply.c: Changed back to getsmb... from getsam...
slprintf.c: Fixed prototype problems.
smb.h: Fixed prototype problems.
smbpass.c: Changed to getsmbfile....
smbpasswd.c: Changed back to getsmb... from getsam...
lib/rpc/server/srv_netlog.c: Changed back to getsmb... from getsam...
lib/rpc/server/srv_samr.c: Fixed rid lookup - use uid or gid lookup.
lib/rpc/server/srv_util.c: Changed back to getsmb... from getsam...
Jeremy.
(This used to be commit 7d332b2493d2089d09521250fc9b72d8953307c0)
|
|
have vsnprintf.
locking_slow.c: slight tidy.
make_smbcodepage.c: Use safe_strcpy instead of pstrcpy.
nmbd_winsserver.c: Use pstrcpy instead of fstrcpy.
smbmount.c: Fixed reported bug.
util.c: Removed old fstrcpy/fstrcat functions.
Jeremy.
(This used to be commit f257d2e4bafd3944cca737699913a8d868279ca6)
|
|
It removed all ocurrences of the following functions :
sprintf
strcpy
strcat
The replacements are slprintf, safe_strcpy and safe_strcat.
It should not be possible to use code in Samba that uses
sprintf, strcpy or strcat, only the safe_equivalents.
Once Andrew has fixed the slprintf implementation then
this code will be moved back to the 1.9.18 code stream.
Jeremy.
(This used to be commit 2d774454005f0b54e5684cf618da7060594dfcbb)
|
|
everywhere. I've implemented slprintf() as a bounds checked sprintf()
using mprotect() and a non-writeable page.
This should prevent any sprintf based security holes.
(This used to be commit ee09e9dadb69aaba5a751dd20ccc6d587d841bd6)
|
|
smbpasswd or ldap passwd, at compile-time (-DUSE_LDAP).
_none_ of the functions in ldap.c or smbpass.c should be called directly:
only those in passdb.c should be used.
-DUSE_LDAP is unlikely to compile at the moment.
(This used to be commit 57b01ad4ffb14ebd600d4e66602b54ed987f6106)
|
|
ipc.c: Fix for duplicate printer names being long.
loadparm.c: Set bNetWkstaUserLogon to false by default - new code in password.c
protects us.
nmbd_logonnames.c:
nmbd_namequery.c:
nmbd_namerelease.c: Debug messages fix.
password.c: SGI compile warning fix, fix for tcon() with bNetWkstaUserLogon call.
reply.c: SGI compile warning fix.
server.c Debug messages fix.
smbpass.c: Fix for incorrect pointer.
Jeremy.
(This used to be commit 567d3f838988cafab4770fce1cf68b73085e6c71)
|
|
It is changing the global variables "myname" and "myworkgroup"
to "global_myname" and "global_myworkgroup" respectively.
This is to make it very explicit when we are messing
with a global (don't ask - it makes the domain client
code much clearer :-).
Jeremy.
(This used to be commit 866406bfe399cf757c8275093dacd5ce4843afa0)
|
|
server is sending out a name_query after a WACK, it needs to send
a packet with recursion_desired = 0 (yes Luke, you were right all
along :-). If it doesn't then if it's talking to itself then the
query packet ends up back in the WINS server instead of in the client
side code.
Makefile: Changed proto generation to stop including NMBDOBJ twice.
nmbd_namequery.c nmbd_packets.c nmbd_winsserver.c: Added extra
query_name_from_wins_server() code.
Jeremy.
(This used to be commit c5ca05c29546053a771f4ea3ef850efb3be970ea)
|
|
nmbd.c: Fix for always overwriting log despite append setting.
smb.h: Addition of last time password changed entry to account info.
smbpass.c: Changes to support last time changed field in smbpasswd file.
smbpasswd.c: Changes to support last time changed field in smbpasswd file.
util.c: Fix for always overwriting log despite append setting.
Jeremy.
(This used to be commit eb4fe9ecdf539209efab07dc992447ea7370cf93)
|