aboutsummaryrefslogtreecommitdiff
path: root/src/server.h
AgeCommit message (Collapse)Author
2015-03-05Server.cpp Use std::list instead of std::vector for playSound, ↵Loic Blot
fillMediaCache, sendRequestedMedia, sendMediaAnnouncement and related functions
2015-03-05Server::AsyncRunStep: buffered_messages now uses std::vector instead of ↵Loic Blot
std::list. * sendRemoveNode and sendAddNodes are also converted as a side effect
2015-03-05Performance improvement: Use std::list instead of std::vector for ↵Loic Blot
request_media, Server::getModNames, Environment::m_simple_objects. * Also remove unused Server::m_modspaths
2015-03-05Remove Queue class which uses std::list and use native std::queueLoic Blot
2015-03-04We always know playerSAO when calling SendInventory. Using it instead of ↵Loic Blot
searching it via peer_id
2015-03-04Send Position packet on event, don't check it at each AsyncRunStep.Loic Blot
* This permit to cleanup the player checking loop
2015-03-04Send Inventory packet on event, don't check it at each AsyncRunStep.Loic Blot
* Call UpdateCrafting into SendInventory because this functions is only called before SendInventory * Use Player* instead of peer_id for UpdateCrafting because SendInventory already has the Player* pointer, then don't loop for searching Player* per peer_id * m_env_mutex don't need to be used with this modification because it's already locked before the calls
2015-03-03Send Breath packet on event, don't check it at each AsyncRunStepLoic Blot
2015-03-03Send Player HP when setHP (or a setHP caller) is called instead of looping ↵Loic Blot
and testing the state change.
2015-02-16[Patch 2/4] Network rework: packet writing, sending and cleanupsLoic Blot
NetworkPacket.cpp: * Remove some deprecated functions, we must use streaming interface * m_data converted from u8* to std::vector<u8> * Add an exporter to forge packet to Connection object * implement operator << std::wstring. n * implement operator << std::string * dynamic resize when write packet content. * fix string writing and performances. * create ServerCommandFactory, used by client to get useful informations about packet processing (sending). * Reliability * Transmit channel * Implement putRawString for some ugly char (_INIT packet), and use it. * Many packet read and write migrated * Implement oldForgePacket to interface writing with current connection * fix U8/char/bool writing * fix string writing and performances. * add some missing functions * Use v3s16 read instead of reading x,y,z separately * Add irr::video::SColor support into packets * Add some missing handlers * Add a template function to increase offset * Throw a serialization error on packet reading (must be improved) PacketFactories: * Create ServerCommandFactory, used by client to get useful informations about packet processing (sending). * Create ClientCommandFactory, used by server to get useful informations about packet processing (sending). Client.cpp: * implement NetworkPacket ::Send interface. * Move packet handlers to a dedicated file * Remove Client::Send(SharedBuffer) Server.cpp: * implement NetworkPacket ::Send interface. * Rewrite all packets using NetworkPacket * Move packet handlers to a dedicated file * Remove Server::Send(SharedBuffer) ClientIface.cpp: * Remove sendToAll(SharedBuffer<u8>) Connection.hpp rework: * Remove duplicate include * Remove duplicate negation * Remove a useless variable * Improve code performance by using a m_peers_list instead of scanning m_peers map * Remove Connection::Send(SharedBuffer) * Fix useafterfree into NetworkPacket Sending * Remove unused Connection::sendToAll Test.cpp: * Remove dead code * Update tests to use NetworkPackets Misc: * add new wrappers to Send packets in client, using NetworkPacket * Add NetworkPacket methods for Connection * coding style fix * dead code since changes cleanup * Use v3s16 read instead of reading x,y,z separately in some packets * Use different files to handle packets received by client and server * Cleanup: Remove useless includes ok @Zeno- Tested by @Zeno- @VanessaE and @nerzhul on running servers
2015-02-10Network Layer 7 rework (Packet handling)Loic Blot
* Move networkcode to a dedicated directory * Rename clientserver.h to network/networkprotocol.h (Better name) and sanitize some includes * Create object NetworkPacket * It stores command (opcode) and data separated * It also stores peer_id * Data reading can be done by using a streaming interface * Change packet routing analysis * Remove old conditional analysis * Now uses function pointed analysis and add connection state ({Client,Server}::handlers) * Connection state permit to categorize condition to handle before analyze packets * Create a handler for depreciated messages, instead of duplicating code
2015-01-23Send real port to server listShadowNinja
2014-12-08Fix struct vs. class in forward declarationsKahrl
2014-11-19Clean up rollbackShadowNinja
2014-10-21Recalculate normals for cached meshes.RealBadAngel
Check if mesh is here before adding to meshcollector. Fix deleting the meshes.
2014-06-28Add prefixes to enum values and fix style issueskwolekr
2014-04-12Use integers instead of float valuesBlockMen
2014-04-12Add player:set_eye_offset() by @MirceaKitsune and clean upBlockMen
2014-04-12Add third person viewBlockMen
2014-04-10Infer ipv6_server from bind_address; fix client connect to IN(6)ADDR_ANYKahrl
2014-04-08Cleanup client init states by bumping protocol versionsapier
Don't use TOSERVER_RECEIVED_MEDIA but TOSERVER_CLIENT_READY as indicatio for client ready Handle clients with protocol version < 23 (almost) same way as before Make client tell server about it's version Add client state to not send bogus player position updates prior init complete Add access to statistics information (peer connction time,rtt,version) Fix clients standing stalled in world while preloading item visuals (new clients only) Add get_player_information to read client specific information from lua
2014-03-12Pass arguments by referenceSelat
2014-02-27Remove "Server -!- " prefix from player messagesShadowNinja
2014-02-05Add the option to bind to a specific addressShadowNinja
2014-02-03Add minetest.kick_player(name, reason)sapier
2014-02-01Add player:override_day_night_ratio() for arbitrarily controlling sunlight ↵Perttu Ahola
brightness
2014-02-01Add player:set_sky() with simple skybox supportPerttu Ahola
2014-01-31Add propper client initializationsapier
-add client states to avoid server sending data to uninitialized clients -don't show uninitialized clients to other players -propper client disconnect handling Minor comment fixes in server Minor bugfixes in connection -improved peer id calculation -honor NDEBUG flag -improved disconnect handling -increased initial send window Remove some dead code
2014-01-13Allow vertical axis particle rotation constraintkhonkhortisan
Use tables for adding particles, deprecate former way. separate particles(pawner) definition, add default values, work with no arguments
2014-01-10Fixed minetest reliable udp implementation (compatible to old clients)sapier
2014-01-07Send long announce as POST, show OS in useragentproller
Add lag reporting to masterserver (average dtime) StyledWriter -> FastWriter in masterserver announce
2013-12-18Handle LuaErrors in Lua -> C++ calls on LuaJITShadowNinja
2013-12-13Rewrite client media download and support hash-based remote downloadKahrl
Move most of the media-related code in client.cpp into a new class ClientMediaDownloader (clientmedia.cpp, clientmedia.h). Among other things, this class does the following things: - Download [remote_server][sha1] instead of [remote_server][name]. This is to support servers that provide the same file name with different contents. - Initially fetch [remote_server]index.mth. This file should follow the Minetest Hashset format (currently version 1) and contain a list of SHA1 hashes that exist on the server. - The list of needed SHA1s is uploaded (via HTTP POST) when index.mth is requested, so servers can optionally narrow down the list to the needs of the client. - If index.mth is missing (HTTP response code 404), we enter compat mode, fetching [remote_server][name] as before this commit. - remote_server can now contain multiple servers, separated by commas. The downloader code attempts to split requests between the different servers, as permitted by each server's index.mth. If one server claims to have a file but actually doesn't (or something fails), we ask a different server that also claims to have it. - As before, when none of the remote servers provide a particular file, we download it via the conventional method, i.e. using the minetest protocol: TOSERVER_REQUEST_MEDIA / TOCLIENT_MEDIA. - Bugfix: Every downloaded file's SHA1 is now verified against the SHA1 announced by the minetest server (before loading it and inserting it into the file cache). - Bugfix: Only send TOSERVER_RECEIVED_MEDIA when we actually have all media. This should fix #863.
2013-11-30Add minetest.swap_nodeNovatux
2013-10-18Masterserver updateproller
2013-09-16Weather: Clean up getHeat/getHumidity somewhatkwolekr
2013-09-09Make it compileSfan5
2013-09-09Add dummy and LevelDB database backendsIlya Zhuravlev
2013-09-05Use player:set_hotbar_image() instead of hardcoded hotbar.pngPilzAdam
2013-08-14Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenuKahrl
2013-08-04Fix server getting completely choked up on even a little of DoSPerttu Ahola
* If client count is unbearable, immediately delete denied clients * Re-prioritize the checking order of things about incoming clients * Remove a huge CPU-wasting exception in ReliablePacketBuffer
2013-08-02Weather backward compatibilityproller
2013-07-20Add set_breath and get_breath to lua API.RealBadAngel
2013-05-26Add ObjectRef.hud_set_hotbar_itemcount and add TOCLIENT_HUD_SET_PARAMKahrl
2013-05-25Move scriptapi to separate folder (by sapier)sapier
On the lua side, notably minetest.env:<function>(<args>) should now be replaced by minetest.<function>(<args>). The old way is and will stay supported for a long time. Also: Update and clean up lua_api.txt (by celeron55) Move EnvRef to lua and remove add_rat and add_firefly (by kahrl) Add separate src/util/CMakeLists.txt, other minor fixes (by kahrl)
2013-04-25Generalize hud_builtin_enable into hud_set_flagskwolekr
2013-04-24Added support to disable built-in HUD elementsDiego Martínez
2013-04-23Add option to not prepend "Server -!- " to messages sent with ↵ShadowNinja
minetest.chat_send_player()
2013-04-18Split HUD code off to hud.cpp, make into a class, extensive Lua HUD modificationkwolekr
2013-04-18Lua HUDJonathon Anderson