minetest/src
est31 423d8c1b0d Tolerate packet reordering in the early init process
Fixes a bug where packet reordering made the server give the
client two peer ids instead of one. This in turn confused
reliable packet sending and made connecting to the server fail.

The client usually sends three packets at init: one "dummy"
packet consisting of two 0 bytes, and the init packet as well as
its legacy counterpart. The last one can be turned off since commit
af30183124, but this is of lower
relevance for the bug. The relevant part here is that network
packet reorder (which is a normal occurence) can make the packets
reach the server in different order.

If reorder puts the dummy packet further behind, the following
would happen before the patch:

1. The server will get one of the init packets on channel 1 and
   assign the client a peer id, as the packet will have zero as
   peer id.

2. The server sends a CONTROLTYPE_SET_PEER_ID packet to inform
   the client of the peer id.

3. The next packet from the client will contain the peer id set by
   the server.

4. The server sets the m_has_sent_with_id member for the client's
   peer structure to true.

5. Now the dummy packet arrives. It has a peer id of zero, therefore
   the server searches whether it already has a peer id for the
   address the packet was sent from. The search fails because
   m_has_sent_with_id was set to true and the server only searched
   for peers with m_has_sent_with_id set to false.

6. In a working setup, the server would assign the dummy packet to
   the correct peer id. However the server instead now assigns a
   second peer id and peer structure to the peer, and assign the
   packet to that new peer.

7. In order to inform the peer of its peer id, the server sends a
   CONTROLTYPE_SET_PEER_ID command packet, reliably, to the peer.
   This packet uses the new peer id.

8. The client sends an ack to that packet, not with the new peer id
   but with the peer id sent in 2.

9. This packet reaches the server, but it drops the ACK as the peer
   id does not map to any un-ACK-ed packets with that seqnum. The
   same time, the server still waits for an ACK with the new peer
   id, which of course won't come. This causes the server to
   periodically re-try sending that packet, and the client ACKing it
   each time.

Steps 7-9 cause annoyances and erroneous output, but don't cause
the connection failure itself.
The actual mistake that causes the connection failure happens in 6:
The server does not assign the dummy packet to the correct peer, but
to a newly created one.
Therefore, all further packets sent by the client on channel 0 are
now buffered by the server as it waits for the dummy packet to reach
the peer, which of course doesn't happen as the server assigned
that packet to the second peer it created for the client.
This makes the connection code indefinitely buffer the
TOSERVER_CLIENT_READY packet, not passing it to higher level code,
which stalls the continuation of the further init process
indefinitely and causes the actual bug.

Maybe this can be caused by reordered init packets as well, the only
studied case was where network has reliably reordered the dummy
packet to get sent after the init packets.

The patch fixes the bug by not ignoring peers where
m_has_sent_with_id has been set anymore. The other changes of the
patch are just cleanups of unused methods and fields and additional
explanatory comments.

One could think of alternate ways to fix the bug:

* The client could simply take the new peer id and continue
  communicating with that. This is however worse than the fix as
  it requires the peer id set command to be sent reliably (which
  currently happens, but it cant be changed anymore). Also, such a
  change would require both server and client to be patched in order
  for the bug to be fixed, as right now the client ignores peer id
  set commands after the peer id is different from
  PEER_ID_INEXISTENT and the server requires modification too to
  change the peer id internally.
  And, most importantly, right now we guarantee higher level server
  code that the peer id for a certain peer does not change. This
  guarantee would have to be broken, and it would require much
  larger changes to the server than this patch means.

* One could stop sending the dummy packet. One may be unsure whether
  this is a good idea, as the meaning of the dummy packet is not
  known (it might be there for something important), and as it is
  possible that the init packets may cause this problem as well
  (although it may be possible too that they can't cause this).

Thanks to @auouymous who had originally reported this bug and who
has helped patiently in finding its cause.
2016-05-22 15:56:54 +02:00
..
cguittfont Fix build if BUILD_SHARED_LIBS defaults to "ON" 2015-12-03 21:35:22 +01:00
client Add [resize texture modifier Resizes the texture to the given dimensions. 2016-05-09 20:48:42 +02:00
gmp Build and link gmp correctly on MSVC 2015-05-12 21:07:46 +02:00
json Build and link gmp correctly on MSVC 2015-05-12 21:07:46 +02:00
lua Clean up and tweak build system 2015-03-27 15:00:48 -04:00
network Tolerate packet reordering in the early init process 2016-05-22 15:56:54 +02:00
script Pathfinder: Fix style 2016-05-01 15:32:02 +02:00
threading Fix Windows build 2016-05-02 15:01:17 +10:00
unittest Escape more strings: formspecs, item descriptions, infotexts... 2016-04-24 03:54:11 +10:00
util Escape more strings: formspecs, item descriptions, infotexts... 2016-04-24 03:54:11 +10:00
CMakeLists.txt Implement a PostgreSQL backend 2016-05-22 11:34:47 +02:00
activeobject.h Ignore old entities from 0.3. 2015-02-17 15:07:05 +01:00
ban.cpp Clean up Strfnd 2016-03-19 21:27:57 -04:00
ban.h Clean up threading 2015-08-23 22:04:06 -04:00
camera.cpp Fix nametag hiding 2016-04-02 02:02:19 +02:00
camera.h Camera: remove auto tune FPS, single view range setting 2016-02-21 18:18:13 +01:00
cavegen.cpp Mapgen: Various fixes and improvements 2016-01-11 01:32:20 +00:00
cavegen.h Cavegen: Make mgfractal use mgv5 cavegen 2015-11-09 05:29:42 +00:00
chat.cpp Chat: Keep scroll position constant in ChatBuffer::deleteOldest() 2016-05-08 02:51:23 +01:00
chat.h Add text selection and copying to console 2016-03-02 23:23:31 -05:00
chat_interface.h Add server side ncurses terminal 2015-11-06 08:51:14 +01:00
client.cpp Hud: Cache hud_scaling, fix minor style issues 2016-04-10 23:54:34 -04:00
client.h Move object nametags to camera 2016-02-18 16:43:29 +01:00
clientiface.cpp Resend blocks when modified while sending to client 2016-03-12 23:59:44 +01:00
clientiface.h Resend blocks when modified while sending to client 2016-03-12 23:59:44 +01:00
clientmap.cpp Camera: remove auto tune FPS, single view range setting 2016-02-21 18:18:13 +01:00
clientmap.h Camera: remove auto tune FPS, single view range setting 2016-02-21 18:18:13 +01:00
clientmedia.cpp Add seperate cache path 2015-12-07 13:51:41 -05:00
clientmedia.h Reduce indentation of HTTPFetchOngoing 2014-09-18 21:54:22 -04:00
clientobject.cpp Use warningstream for log messages with WARNING 2015-10-14 01:36:48 -04:00
clientobject.h v2d & aabbox3d<f32> & sky cleanups 2016-02-11 16:55:15 +01:00
clientsimpleobject.h Update Copyright Years 2013-02-24 20:15:24 +01:00
clouds.cpp v2d & aabbox3d<f32> & sky cleanups 2016-02-11 16:55:15 +01:00
clouds.h v2d & aabbox3d<f32> & sky cleanups 2016-02-11 16:55:15 +01:00
cmake_config.h.in Implement a PostgreSQL backend 2016-05-22 11:34:47 +02:00
cmake_config_githash.h.in Clean up and tweak build system 2015-03-27 15:00:48 -04:00
collision.cpp Fix #3955 (player dying on login). 2016-04-06 01:11:36 +02:00
collision.h Don't pass non-const references to collision methods 2016-01-29 15:53:54 +01:00
config.h Revert the upper-case PROJECT_NAME nonsense that was part of #2402 2015-04-27 16:24:49 +02:00
constants.h Add map limit config option 2015-08-02 14:27:04 +02:00
content_abm.cpp Move globals from main.cpp to more sane locations 2015-04-01 23:04:25 +10:00
content_abm.h Update Copyright Years 2013-02-24 20:15:24 +01:00
content_cao.cpp Fix a m_camera not used warning fix pointed by clang 2016-05-22 13:31:41 +02:00
content_cao.h Fix a m_camera not used warning fix pointed by clang 2016-05-22 13:31:41 +02:00
content_cso.cpp Move texture_min_size even further down the pipe. Now, textures are JIT-upscaled using an image transformation, right at the time they're added to a mesh or particle; images used in 2D elements are left unscaled. This should fix any remaining issues with HUD elements. 2015-03-31 16:56:33 +10:00
content_cso.h Update Copyright Years 2013-02-24 20:15:24 +01:00
content_mapblock.cpp Allow nodes to specify which sides to connect to. 2016-03-12 12:08:17 -05:00
content_mapblock.h Update Copyright Years 2013-02-24 20:15:24 +01:00
content_mapnode.cpp Various style cleanups + unused code removal 2015-09-19 20:57:29 +02:00
content_mapnode.h Various style cleanups + unused code removal 2015-09-19 20:57:29 +02:00
content_nodemeta.cpp Rename macros with two leading underscores 2015-10-14 02:39:37 -04:00
content_nodemeta.h Various style cleanups + unused code removal 2015-09-19 20:57:29 +02:00
content_sao.cpp v2d & aabbox3d<f32> & sky cleanups 2016-02-11 16:55:15 +01:00
content_sao.h Add option to give every object a nametag 2015-12-15 23:32:19 +01:00
convert_json.cpp Don't print whole json data buffer to errorstream on error 2016-01-28 23:53:58 +01:00
convert_json.h Remove ugly curl struct pointer from jsonFetchValue signature 2014-06-19 21:24:53 +02:00
craftdef.cpp Clean up Strfnd 2016-03-19 21:27:57 -04:00
craftdef.h Fix bug when craft input isn't replaced 2015-06-22 19:30:35 +02:00
database-dummy.cpp DB::loadBlock copy removal & DB backend cleanup 2016-05-17 06:52:16 +02:00
database-dummy.h DB::loadBlock copy removal & DB backend cleanup 2016-05-17 06:52:16 +02:00
database-leveldb.cpp Implement DatabaseException for databases 2016-05-17 14:36:51 +02:00
database-leveldb.h DB::loadBlock copy removal & DB backend cleanup 2016-05-17 06:52:16 +02:00
database-postgresql.cpp Implement a PostgreSQL backend 2016-05-22 11:34:47 +02:00
database-postgresql.h Implement a PostgreSQL backend 2016-05-22 11:34:47 +02:00
database-redis.cpp Implement DatabaseException for databases 2016-05-17 14:36:51 +02:00
database-redis.h DB::loadBlock copy removal & DB backend cleanup 2016-05-17 06:52:16 +02:00
database-sqlite3.cpp Implement DatabaseException for databases 2016-05-17 14:36:51 +02:00
database-sqlite3.h DB::loadBlock copy removal & DB backend cleanup 2016-05-17 06:52:16 +02:00
database.cpp Clean up database API and save the local map on an interval 2015-03-06 00:20:45 -05:00
database.h DB::loadBlock copy removal & DB backend cleanup 2016-05-17 06:52:16 +02:00
daynightratio.h Update Copyright Years 2013-02-24 20:15:24 +01:00
debug.cpp Add server side ncurses terminal 2015-11-06 08:51:14 +01:00
debug.h Rename macros with two leading underscores 2015-10-14 02:39:37 -04:00
defaultsettings.cpp Mapgen V6: Synchronize spflags with defaultsettings 2016-05-10 22:44:18 -04:00
defaultsettings.h Implement proper font handling 2014-11-30 17:50:09 +01:00
drawscene.cpp Move object nametags to camera 2016-02-18 16:43:29 +01:00
drawscene.h Cleanup selection mesh code, add shaders for halo and selection boxes 2016-02-08 03:57:42 -05:00
dungeongen.cpp Dungeongen: Update disabled torch placement code 2016-04-03 04:12:07 -04:00
dungeongen.h Dungeongen: Also preserve river water nodes 2015-11-29 21:55:43 +00:00
emerge.cpp FindSpawnPos: Let mapgens decide what spawn altitude is suitable 2016-02-09 07:14:45 +00:00
emerge.h FindSpawnPos: Let mapgens decide what spawn altitude is suitable 2016-02-09 07:14:45 +00:00
environment.cpp Handle particle spawners in env and delete expired ids 2016-04-28 02:09:36 +10:00
environment.h Handle particle spawners in env and delete expired ids 2016-04-28 02:09:36 +10:00
event.h Update Copyright Years 2013-02-24 20:15:24 +01:00
event_manager.h Change i++ to ++i 2015-08-25 18:33:52 -04:00
exceptions.h Implement DatabaseException for databases 2016-05-17 14:36:51 +02:00
filecache.cpp Network Layer 7 rework (Packet handling) 2015-02-10 20:04:08 +10:00
filecache.h Rewrite client media download and support hash-based remote download 2013-12-13 18:05:20 +01:00
filesys.cpp Use MoveFileEx to rename files on Windows (not rename) 2016-05-01 17:28:16 +10:00
filesys.h Add seperate cache path 2015-12-07 13:51:41 -05:00
fontengine.cpp Change i++ to ++i 2015-08-25 18:33:52 -04:00
fontengine.h Use UTF-8 instead of narrow 2015-07-08 10:12:44 +02:00
game.cpp Escape more strings: formspecs, item descriptions, infotexts... 2016-04-24 03:54:11 +10:00
game.h Optional reconnect functionality 2015-07-23 07:38:13 +02:00
gamedef.h Move object nametags to camera 2016-02-18 16:43:29 +01:00
gameparams.h Refactor logging 2015-10-14 01:03:54 -04:00
genericobject.cpp Change i++ to ++i 2015-08-25 18:33:52 -04:00
genericobject.h Fix some issues with animations, and allow non-looped animations to be defined 2015-06-22 01:53:38 +02:00
gettext.cpp Fix typo 2015-10-26 15:14:22 +01:00
gettext.h Fix compilation under MSVC and remove unnecessary conditional function prototype 2015-10-24 13:34:49 -04:00
gettime.h Update timestamp to include date 2015-03-25 02:30:17 +10:00
guiChatConsole.cpp Fix holding down F10 (open console) causing GUI to freeze 2016-05-04 21:31:23 +10:00
guiChatConsole.h Fix chat console not opening after formspec opened over it 2016-03-12 12:01:40 -05:00
guiEngine.cpp Make GUIEngine use pause_fps_max not fps_max 2016-04-24 17:40:16 +10:00
guiEngine.h Replace instances of std::map<std::string, std::string> with StringMap 2015-05-19 16:10:49 -04:00
guiFileSelectMenu.cpp FileSelectMenu: Fix formspec parsing broken by Irrlicht file-chooser 2016-05-01 16:32:12 +02:00
guiFileSelectMenu.h Fix win32/msvc i18n (quite UGLY version, blame Microsoft) 2013-11-11 19:56:49 +01:00
guiFormSpecMenu.cpp Fix tooltip height for versions of irrlicht < 1.8.2 2016-05-21 00:26:04 +10:00
guiFormSpecMenu.h Run unescape_enriched *after* unescape_string. 2016-05-07 08:33:21 +02:00
guiKeyChangeMenu.cpp Mainmenu: Standardize the menu button order and sizes 2016-04-28 07:16:58 +01:00
guiKeyChangeMenu.h Reduce gettext wide/narrow and string/char* conversions 2015-02-05 03:24:22 -05:00
guiMainMenu.h Optional reconnect functionality 2015-07-23 07:38:13 +02:00
guiPasswordChange.cpp Use UTF-8 instead of narrow 2015-07-08 10:12:44 +02:00
guiPasswordChange.h Update Copyright Years 2013-02-24 20:15:24 +01:00
guiTable.cpp Settings tab: double click opens/closes trees 2015-10-18 11:03:59 +02:00
guiTable.h Add formspec table 2014-01-13 18:11:08 -05:00
guiVolumeChange.cpp Move globals from main.cpp to more sane locations 2015-04-01 23:04:25 +10:00
guiVolumeChange.h Fix all warnings reported by clang 2014-04-15 21:34:53 +02:00
guiscalingfilter.cpp Change i++ to ++i 2015-08-25 18:33:52 -04:00
guiscalingfilter.h Clean scaling pre-filter for formspec/HUD. 2015-04-01 00:01:05 -04:00
httpfetch.cpp Add Lua interface to HTTPFetchRequest 2016-02-22 15:39:41 +01:00
httpfetch.h Add Lua interface to HTTPFetchRequest 2016-02-22 15:39:41 +01:00
hud.cpp Escape more strings: formspecs, item descriptions, infotexts... 2016-04-24 03:54:11 +10:00
hud.h Fix inventory hud scaling 2016-04-12 23:10:28 +10:00
imagefilters.cpp Fix some minor details from 6d61375 2015-04-01 00:19:10 -04:00
imagefilters.h Clean scaling pre-filter for formspec/HUD. 2015-04-01 00:01:05 -04:00
intlGUIEditBox.cpp Add utf-8 conversion utilities and re-add intlGUIEditBox 2015-06-13 19:49:55 +02:00
intlGUIEditBox.h Add utf-8 conversion utilities and re-add intlGUIEditBox 2015-06-13 19:49:55 +02:00
inventory.cpp Inventory: Make ItemStack with different metadata not stackable 2016-04-26 10:16:20 +01:00
inventory.h Fix inventory replace bug 2015-08-19 03:42:00 +02:00
inventorymanager.cpp Clean up Strfnd 2016-03-19 21:27:57 -04:00
inventorymanager.h MoveItemSomewhere double bugfix 2015-07-19 06:23:41 +02:00
irr_aabb3d.h Update Copyright Years 2013-02-24 20:15:24 +01:00
irr_v2d.h Update Copyright Years 2013-02-24 20:15:24 +01:00
irr_v3d.h SAPI/Noise: Add PerlinNoiseMap:getMapSlice() function 2015-05-17 04:04:17 -04:00
irrlichttypes.h Define and use limit constants for Irrlicht fixed-width types 2015-10-04 04:00:16 -04:00
irrlichttypes_bloated.h Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenu 2013-08-14 21:03:33 +02:00
irrlichttypes_extrabloated.h Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenu 2013-08-14 21:03:33 +02:00
itemdef.cpp Use meshes to display inventory items 2016-02-07 19:51:55 +01:00
itemdef.h Revert "Refactoring and code style fixes in preparation of adding mesh typed items" 2015-12-29 19:55:50 +01:00
itemgroup.h Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenu 2013-08-14 21:03:33 +02:00
keycode.cpp Fix camera updates being toggled by N key in release mode (#2762) 2015-08-07 06:02:06 +02:00
keycode.h Add support for Android 2.3+ 2014-06-29 18:17:56 +02:00
light.cpp Change lower limit of display_gamma to 1.0 (linear light) 2015-05-11 02:03:09 +10:00
light.h Add display_gamma option for client 2014-12-31 02:44:31 +10:00
localplayer.cpp Android: Increase player_stepheight for thicker snow nodebox 2016-05-06 00:32:35 +01:00
localplayer.h Player::accelerateHorizontal/Vertical should be member of LocalPlayer 2016-02-14 17:52:10 +01:00
log.cpp Make logging use a fixed-length buffer to avoid race conditions. 2016-04-21 10:15:17 +01:00
log.h Add server side ncurses terminal 2015-11-06 08:51:14 +01:00
main.cpp DB::loadBlock copy removal & DB backend cleanup 2016-05-17 06:52:16 +02:00
mainmenumanager.h Unlock cursor when opening console 2016-03-02 23:23:31 -05:00
map.cpp Implement a PostgreSQL backend 2016-05-22 11:34:47 +02:00
map.h Add DISABLE_CLASS_COPY macro (and use it) 2015-10-27 22:05:08 -04:00
mapblock.cpp Rename macros with two leading underscores 2015-10-14 02:39:37 -04:00
mapblock.h Fix object position border checking 2015-09-16 17:39:49 +02:00
mapblock_mesh.cpp Mapblock mesh: Allow to use VBO 2016-02-26 00:51:01 +00:00
mapblock_mesh.h Mapblock mesh: Allow to use VBO 2016-02-26 00:51:01 +00:00
mapgen.cpp Mapgen: Don't spread light of nodes outside the desired area 2016-03-30 00:19:03 -04:00
mapgen.h FindSpawnPos: Let mapgens decide what spawn altitude is suitable 2016-02-09 07:14:45 +00:00
mapgen_flat.cpp Mapgen: Make 3D noise tunnels' width settable 2016-04-28 23:36:19 -04:00
mapgen_flat.h Mapgen: Make 3D noise tunnels' width settable 2016-04-28 23:36:19 -04:00
mapgen_fractal.cpp Mapgen: Make 3D noise tunnels' width settable 2016-04-28 23:36:19 -04:00
mapgen_fractal.h Mapgen: Make 3D noise tunnels' width settable 2016-04-28 23:36:19 -04:00
mapgen_singlenode.cpp FindSpawnPos: Let mapgens decide what spawn altitude is suitable 2016-02-09 07:14:45 +00:00
mapgen_singlenode.h FindSpawnPos: Let mapgens decide what spawn altitude is suitable 2016-02-09 07:14:45 +00:00
mapgen_v5.cpp Mapgen: Make 3D noise tunnels' width settable 2016-04-28 23:36:19 -04:00
mapgen_v5.h Mapgen: Make 3D noise tunnels' width settable 2016-04-28 23:36:19 -04:00
mapgen_v6.cpp Mapgen V6: Synchronize spflags with defaultsettings 2016-05-10 22:44:18 -04:00
mapgen_v6.h FindSpawnPos: Let mapgens decide what spawn altitude is suitable 2016-02-09 07:14:45 +00:00
mapgen_v7.cpp Mapgen: Make 3D noise tunnels' width settable 2016-04-28 23:36:19 -04:00
mapgen_v7.h Mapgen: Make 3D noise tunnels' width settable 2016-04-28 23:36:19 -04:00
mapgen_valleys.cpp Mapgen: Make 3D noise tunnels' width settable 2016-04-28 23:36:19 -04:00
mapgen_valleys.h Mapgen: Make 3D noise tunnels' width settable 2016-04-28 23:36:19 -04:00
mapnode.cpp Fix connected nodes' selection boxes. 2016-03-21 17:42:20 +00:00
mapnode.h Fix connected nodes' selection boxes. 2016-03-21 17:42:20 +00:00
mapsector.cpp Use warningstream for log messages with WARNING 2015-10-14 01:36:48 -04:00
mapsector.h Add count based unload limit for mapblocks 2015-08-13 07:56:07 +02:00
mesh.cpp v2d & aabbox3d<f32> & sky cleanups 2016-02-11 16:55:15 +01:00
mesh.h Use single box for halo mesh 2016-02-11 13:11:25 +01:00
mg_biome.cpp Biomes: Make dust fallback 'ignore' to fix y = 63 lighting 2016-04-21 10:15:12 +01:00
mg_biome.h Split ObjDef/ObjDefManager out to objdef.cpp 2015-05-18 22:30:25 -04:00
mg_decoration.cpp Decoration API: Allow force_placement of simple decorations 2016-03-04 02:38:55 +00:00
mg_decoration.h Convert usages of PseudoRandom to PcgRandom for ore and deco placement 2015-11-09 01:32:39 -05:00
mg_ore.cpp Sheet Ore: Eliminate crash caused by PcgRandom range max < min 2016-02-23 23:51:29 +00:00
mg_ore.h Fix spelling of noise_threshold 2015-12-06 11:38:03 +01:00
mg_schematic.cpp mg_schematic: fix leak in lua API, and small cleanup 2016-03-30 16:26:05 +02:00
mg_schematic.h Schematics: Add core.place_schematic_on_vmanip API 2015-11-05 01:18:32 -05:00
minimap.cpp Minimap: show player markers 2016-02-19 21:31:22 +01:00
minimap.h Minimap: show player markers 2016-02-19 21:31:22 +01:00
modalMenu.h Unlock cursor when opening console 2016-03-02 23:23:31 -05:00
modifiedstate.h Update Copyright Years 2013-02-24 20:15:24 +01:00
mods.cpp Clean up Strfnd 2016-03-19 21:27:57 -04:00
mods.h Fix server crashing on Lua errors 2015-10-31 13:28:58 -04:00
nameidmapping.cpp Change i++ to ++i 2015-08-25 18:33:52 -04:00
nameidmapping.h Update Copyright Years 2013-02-24 20:15:24 +01:00
nodedef.cpp Connected nodes: fix 2 minor bugs 2016-03-14 05:05:04 +01:00
nodedef.h Allow nodes to specify which sides to connect to. 2016-03-12 12:08:17 -05:00
nodemetadata.cpp Rename macros with two leading underscores 2015-10-14 02:39:37 -04:00
nodemetadata.h Various style cleanups + unused code removal 2015-09-19 20:57:29 +02:00
nodetimer.cpp Use warningstream for log messages with WARNING 2015-10-14 01:36:48 -04:00
nodetimer.h Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenu 2013-08-14 21:03:33 +02:00
noise.cpp Fix spelling of noise_threshold 2015-12-06 11:38:03 +01:00
noise.h Noise: Make buffer size parameters unsigned 2015-05-15 16:20:30 -04:00
objdef.cpp Fix Windows build, clean up included headers 2015-05-22 20:37:59 +02:00
objdef.h Rename and move basicmacros.h to util/basic_macros.h 2015-11-02 04:57:55 +01:00
object_properties.cpp Show infotext with description for item entities 2016-01-18 17:21:41 +00:00
object_properties.h v2d & aabbox3d<f32> & sky cleanups 2016-02-11 16:55:15 +01:00
particles.cpp ParticleManager::handleParticleEvent: use switch 2016-03-30 17:20:24 +02:00
particles.h v2d & aabbox3d<f32> & sky cleanups 2016-02-11 16:55:15 +01:00
pathfinder.cpp find_path: consider walkable instead of CONTENT_AIR 2016-05-01 15:32:03 +02:00
pathfinder.h Pathfinder: Fix style 2016-05-01 15:32:02 +02:00
player.cpp Fix player teleportation bug whilst sneaking 2016-03-14 08:44:28 +00:00
player.h Fix player teleportation bug whilst sneaking 2016-03-14 08:44:28 +00:00
porting.cpp Don't print locale directory error message when GetText is disabled 2016-02-19 19:56:34 -05:00
porting.h Fix OSX building issue caused by ad884f2 2016-01-29 10:54:50 -05:00
porting_android.cpp Add seperate cache path 2015-12-07 13:51:41 -05:00
porting_android.h Add seperate cache path 2015-12-07 13:51:41 -05:00
profiler.cpp Move globals from main.cpp to more sane locations 2015-04-01 23:04:25 +10:00
profiler.h Clean up threading 2015-08-23 22:04:06 -04:00
quicktune.cpp Clean up threading 2015-08-23 22:04:06 -04:00
quicktune.h Update Copyright Years 2013-02-24 20:15:24 +01:00
quicktune_shortcutter.h Create faster key cache for main game loop (client) 2014-11-10 12:26:19 +10:00
rollback.cpp Improve rollback database indexing 2015-10-24 08:45:38 +02:00
rollback.h Fix struct vs. class in forward declarations 2014-12-08 09:06:31 +01:00
rollback_interface.cpp Various style cleanups + unused code removal 2015-09-19 20:57:29 +02:00
rollback_interface.h Clean up rollback 2014-11-19 16:21:59 -05:00
serialization.cpp Replace instance of readsome with read in decompressZlib Make decompressZlib more robust 2016-01-09 02:28:35 +00:00
serialization.h Serialisation: documentation fixes, clarifying renames and whitespace fixes 2015-09-14 07:02:15 +02:00
server.cpp Fixes #4098 ce8a9ed didn't quite go far enough, and left this bug in 2016-05-08 19:03:09 +10:00
server.h Handle particle spawners in env and delete expired ids 2016-04-28 02:09:36 +10:00
serverlist.cpp Add option to not send pre v25 init packet 2016-03-15 17:20:09 +01:00
serverlist.h Send real port to server list 2015-01-23 21:38:34 +10:00
serverobject.cpp Use warningstream for log messages with WARNING 2015-10-14 01:36:48 -04:00
serverobject.h Fix invisible player when the attached entity is removed 2015-07-18 07:41:43 +02:00
settings.cpp Clean up Strfnd 2016-03-19 21:27:57 -04:00
settings.h Clean up threading 2015-08-23 22:04:06 -04:00
settings_translation_file.cpp Update settings translation file and minetest.conf.example 2016-05-05 16:12:58 +02:00
shader.cpp Clean up Strfnd 2016-03-19 21:27:57 -04:00
shader.h Dump shader programs on compile errors 2016-02-11 07:13:07 +01:00
sky.cpp v2d & aabbox3d<f32> & sky cleanups 2016-02-11 16:55:15 +01:00
sky.h v2d & aabbox3d<f32> & sky cleanups 2016-02-11 16:55:15 +01:00
socket.cpp Add errno to socket creation failed exception 2015-11-08 18:16:02 -05:00
socket.h Add errno to socket creation failed exception 2015-11-08 18:16:02 -05:00
sound.cpp Update Copyright Years 2013-02-24 20:15:24 +01:00
sound.h Update Copyright Years 2013-02-24 20:15:24 +01:00
sound_openal.cpp Remove unused OpenALSoundManager::m_can_vorbis and EXT_vorbis check 2015-12-01 00:36:11 +00:00
sound_openal.h Update Copyright Years 2013-02-24 20:15:24 +01:00
staticobject.cpp Define and use limit constants for Irrlicht fixed-width types 2015-10-04 04:00:16 -04:00
staticobject.h Use warningstream for log messages with WARNING 2015-10-14 01:36:48 -04:00
subgame.cpp Clean up Strfnd 2016-03-19 21:27:57 -04:00
subgame.h Fix game minetest.conf default settings 2015-03-18 13:03:02 -04:00
terminal_chat_console.cpp Use the console instead of a dedicated window when pressing keymap_chat/cmd 2016-03-02 23:23:31 -05:00
terminal_chat_console.h Add server side ncurses terminal 2015-11-06 08:51:14 +01:00
threads.h Fix some threading things and add additional thread unittests 2015-10-24 02:31:23 -04:00
tool.cpp Change i++ to ++i 2015-08-25 18:33:52 -04:00
tool.h New damage system, add damageGroups to ToolCapabilities, bump protocol version 2013-03-29 20:14:09 +01:00
touchscreengui.cpp Android: Implement Autohiding button bars to cleanup screen 2015-12-18 20:35:54 +01:00
touchscreengui.h Android: Implement Autohiding button bars to cleanup screen 2015-12-18 20:35:54 +01:00
treegen.cpp Treegen: Rename pine tree mapgen alias 2015-08-10 09:50:58 +01:00
treegen.h Treegen: Add pine tree. Force place trunks 2015-04-01 22:54:49 +01:00
version.cpp Android: Add githash header to spare rebuilds after new commits 2015-08-01 20:42:07 +02:00
version.h Clean up and tweak build system 2015-03-27 15:00:48 -04:00
voxel.cpp Remove some old dead code. Fix some Clang warnings in SRP (ng->N... will 2015-07-24 21:48:02 +02:00
voxel.h For usages of assert() that are meant to persist in Release builds (when NDEBUG is defined), replace those usages with persistent alternatives 2015-03-07 22:41:47 +10:00
voxelalgorithms.cpp Remove emerge and speedup addArea by using memcopy instead of one by one assignment 2014-06-23 00:13:41 +02:00
voxelalgorithms.h Migrate to STL containers/algorithms. 2013-03-11 19:08:39 -04:00
wieldmesh.cpp Use inventory_image in the first place for inventory item mesh 2016-02-08 23:13:19 +01:00
wieldmesh.h v2d & aabbox3d<f32> & sky cleanups 2016-02-11 16:55:15 +01:00