aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2019-01-21Fix randomly rejected form field submits (#8091)Jozef Behran
If a formspec is submitted from a form fields handling callback of another form (or "formspec shown from another formspec"), the fields submitted for it can get rejected by the form exploit mitigation subsystem with a message like "'zorman2000' submitted formspec ('formspec_error:form2') but server hasn't sent formspec to client, possible exploitation attempt" being sent to logs. This was already reported as #7374 and a change was made that fixed the simple testcase included with that bug report but the bug still kept lurking around and popping out in more complicated scenarios like the advtrains TSS route programming UI. Deep investigation of the problem revealed that this sequence of events is entirely possible and leads to the bug: 1. Server: show form1 2. Client *shows form1* 3. Client: submits form1 4. Server: show form2 5. Client: says form1 closed 6. Client *shows form2* 7. Client: submits form2 What happens inside the code is that when the server in step 4 sends form2, the registry of opened forms is updated to reflect the fact that form2 is now the valid form for the client to submit. Then when in step 5 client says "form1 was closed", the exploit mitigation subsystem code deletes the registry entry for the client without bothering to check whether the form client says was closed just now is indeed the form that is recorded in that entry as the valid form. Then later, in step 7 the client tries to submit its valid form fields, these will be rejected because the entry is missing. It turns out the procedure where the broken code resides already gets the form name so a simple "if" around the offending piece of code fixes the whole thing. And advtrains TSS agrees with that.
2019-01-19Advanced settings noiseparams: Remove '}' left in .confSmallJoker
Previously, when editing noiseparams then restoring them to the default, the final '}' was not removed from minetest.conf.
2019-01-18Optimize subgames search a little bit (#8096)Jozef Behran
Reserve space for the list of games in findWorldSubgame. The performance gain is pretty much negligible but this change also gets rid of a performance warning by CLANG TIDY.
2019-01-16Fix some misspellings (#8104)Paul Ouellette
2019-01-13world.mt: Only accept true/false/nil values (#8055)SmallJoker
This patch will make distinguishable mods in modpacks possible in the future `nil` checks are required to provide backwards-compatibility for fresh configured worlds
2019-01-13Speed up the craft definition handling (#8097)Jozef Behran
The craft definition handling code that collects the names of the craftable nodes suffers from vector reallocation performance hits, slowing down instances with lots of crafting recipes (VanessaE's DreamBuilder and most public server some to my mind when thinking about this). As in each instance the size of the resulting vector is already known, add a reserve() call before the offending loops to allocate the needed chunk of memory within the result vector in one go, getting rid of the overhead.
2019-01-12Optimize path finalization in pathfinder (#8100)Jozef Behran
The pathfinder needs quite a bunch of items to add to the resulting list. It turns out the amount of the space needed for the finalized path is known in advance so preallocate it to avoid a burst of reallocation calls each time something needs to look for a path.
2019-01-10Make sqlite3 the default auth backend (#8085)Paul Ouellette
2019-01-10Import strstr function from FreeBSD 11 libcLoic Blot
2019-01-09Android build fixesLoïc Blot
This fixes #8079
2019-01-07Fix a crash on Android with Align2Npot2 (#8070)Loïc Blot
* Fix a crash on Android with Align2Npot2 glGetString can be NULL. If stored in a string it triggers a SIGSEGV. Instead do a basic strstr and verify the pointer * Better Align2Npot2 check (+ performance)
2019-01-06Fix wrong code comment (#8061)DS
"Get core.registered_on_chat_messages" to "Get core.registered_on_player_receive_fields" where `core.registered_on_player_receive_fields` is gotten
2019-01-06Fix various bugs (Anticheat, Lua helpers) (#8013)SmallJoker
* Fix various bugs (Anticheat, Lua helpers) Anticheat: Use camera position instead of player position for shoot line calculations Lua helpers: Increase 'i' to not overwrite earlier added table values * Remove lag compensation * * 1.5 for larger selection boxes
2019-01-06Deprecate modpack.txt and use modpack.conf instead (#7892)rubenwardy
* Deprecate modpack.txt and use modpack.conf instead
2019-01-04Drop libgmp on Android and use mini-gmp (#8047)Loïc Blot
2019-01-04Make sqlite3 default auth & player backends for new worlds (#8043)Loïc Blot
* Make sqlite3 default auth & player backends for new worlds Also notify about auth backend depreciation
2019-01-04Fix on_successful_save -> onSuccessfulSaveLoïc Blot
2019-01-04Fix various player save issues (performance penalty on sql backends + bugs)Loïc Blot
* PostgreSQL & SQLite3 doesn't setModified(false) on RemotePlayer, then player is saved on each server save call. This results in heavy useless writes. * PostgreSQL & SQLite3 ack engine meta write whereas db commit hasn't been performed. If commit failed write has failed. We mustn't notify engine write is done. * serializing player meta must not setModified(false) because it didn't ensure write has been done * add RemotePlayer::on_successfull_save callback to do the flag update on a successful save
2019-01-04Player file directory must be only created when using file backend.Loïc Blot
Also ensure on each player save that the directory exists
2019-01-04Remove remote media compatibility mode. (#8044)sofar
The fallback code shouldn't be needed and is a remnant of the GET method that old media servers use. Clients using it are likely to just waste bandwidth and having to download the media again through the normal transfer from server method. The most reliable method is to get all missing textures therefore from the server directly and not spam the remote media server with 404s.
2019-01-03Proselytize the network. Use IEEE F32 (#8030)SmallJoker
* Proselytize the network. Use IEEE F32 * Remove unused V2F1000 functions
2019-01-03CSM restrictions: Make 'LOAD_CLIENT_MODS' disable loading of 'builtin' (#8000)Paramat
Previously, when the CSM restriction 'LOAD_CLIENT_MODS' was used a client was still able to add CSM code to 'builtin' to bypass that restriction, because 'builtin' is not yet verified. Until server-sent CSM and verifying of 'builtin' are complete, make 'LOAD_CLIENT_MODS' disable the loading of builtin. Clarify code comments and messages to distinguish between client-side modding and client-side scripting. 'Scripting' includes 'builtin', 'modding' does not.
2018-12-31Add minetest.load_area (#8023)HybridDog
2018-12-31Extend pitch fly mode to swimming (#7943)random-geek
2018-12-24CSM: add requested CSM_RF_READ_PLAYERINFO (#8007)Loïc Blot
* CSM: add requested CSM_RF_READ_PLAYERINFO This new CSM limit permit to limit PLAYERINFO read from server. It affects get_player_names call
2018-12-23Fix entity rotation in existing worlds (#7989)SmallJoker
2018-12-22mapnode: add const/noexcept (#8009)Vitaliy
2018-12-22Android: Fix memory leak when displaying images in the mainmenu (#8011)rubenwardy
2018-12-21reportMetadataChange; Silence clang warningsSmallJoker
2018-12-20Fix more transparency issues with ogles2 driver (#8005)stujones11
2018-12-20Android: Move touchscreen rare controls inline with settings icon (#8006)stujones11
2018-12-18Add command line option to load password from file (#7832)Kevin Abrams
2018-12-18ieee_float: Silence compiler warningSmallJoker
Trivial issue reported by @pgimeno
2018-12-18Fix the part of the float test that requires IEC559/IEEE754 compliancePedro Gimeno
GCC and CLang compilers fail to support full IEC559 compliance required for the test, when certain compiler flags are active. This patch implements a heuristic that checks for the most common flag in GCC and CLang, plues an extra check which GCC disables when it's not compliant, to hopefully catch most cases where it can't run.
2018-12-16Fix C++11 violation that broke clang on Debian StretchPedro Gimeno
2018-12-13Add an activeobject manager to hold active objects (#7939)Loïc Blot
* Add an activeobject manager to hold active objects * Add unittests
2018-12-13Network: Send IEEE floats (#7768)SmallJoker
2018-12-13Make showOverlayMessage strings translatable (#7964)Wuzzy
2018-12-12Make MapNode handle paramtype2≠leveled properly (#7958)Vitaliy
2018-12-11porting.cpp: better minetest support on BSDLoïc Blot
BSD folder detection is pretty raw, just use the same detection as Linux
2018-12-11Fix ContentDB packages timing out by using download_file instead (#7891)rubenwardy
2018-12-11Add object visual type 'item' (#7870)Alex
2018-12-09Update minetest.conf.example and run updatepo.sh (#7947)Update Script
2018-12-08Fix crash if display resolution is not set (#7950)Martin Renold
On my wayland / gnome3 setup DisplayHeightMM() returns 0. This resulted in a misleading startup error suggesting to fix my font paths.
2018-12-06Main menu style: Set to 'full' for Android, remove 'auto' option (#7936)Paramat
2018-12-06Draw all horizons and sky base, in front of stars (#7932)Paramat
Move star draw to before sun glow texture draw and before sun draw, not currently essential but the logical order. Will be necessary if a 'no far ground' option is added, to draw stars behind the sun.
2018-12-05Fix player rotations (#7941)CoderForTheBetter
2018-12-04Send only changed node metadata to clients instead of whole mapblock (#5268)SmallJoker
Includes newer style changes and fixes by est31 Improve the block position de-serialization Add type NodeMetadataMap
2018-12-04Revert "Fix another GCC warning"Loïc Blot
This reverts commit e6811184d5824bf7d8febc157495dbecd3e4e0f7.
2018-12-04Add testWrapDegrees_0_360_v3f unittestsLoïc Blot