| Commit message (Collapse) | Author | Age |
|
|
|
| |
This was a regression introduced by f6e4c5d9cf459e8278a76a2beaee59732e841458 .
|
|
|
|
|
|
|
|
|
|
| |
Replace it with an errorstream + assert for server
This throw can be trigger by LuaError exception or ConnectionBindFailed exception in the following functions:
* EmergeThread::Thread()
* ScriptApiEnv::environment_Step()
* ScriptApiEnv::player_event()
* ServerThread::Thread()
|
|
|
|
| |
TOCLIENT_ACTIVE_OBJECT_MESSAGES as reliable
|
|
|
|
|
|
| |
+ assert"
This reverts commit 5f8e48c63baf12930430d5d8fc07495021599e61.
|
|
|
|
|
|
|
|
| |
This throw can be trigger by LuaError exception or ConnectionBindFailed exception in the following functions:
* EmergeThread::Thread()
* ScriptApiEnv::environment_Step()
* ScriptApiEnv::player_event()
* ServerThread::Thread()
|
|
|
|
| |
to private functions
|
|
|
|
| |
this will fix the player which stay dead at connection
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* TOSERVER_INIT and TOCLIENT_INIT renamed to _LEGACY
* TOSERVER_PASSWORD merged from dev-0.5, can use protocol v24 and v25
* TOCLIENT_ACCESS_DENIED merged from dev-0.5, can use protocol v24 and v25, with normalized strings an a custom id for custom errors
* new TOSERVER_INIT packet only send MT version, supported compressions, protocols and serialization, this permit to rework everything later without break the _INIT packet
* new TOSERVER_AUTH packet which auth the client
* new TOCLIENT_HELLO packet which send server serialization version atm
* new TOCLIENT_AUTH_ACCEPTED which is send when TOCLIENT_AUTH was okay. After this packet, the client load datas from servers, like after TOCLIENT_INIT_LEGACY packet
|
|
|
|
| |
between new network changes and old network clients
|
| |
|
| |
|
|
|
|
| |
NDEBUG is defined), replace those usages with persistent alternatives
|
|
|
|
| |
fillMediaCache, sendRequestedMedia, sendMediaAnnouncement and related functions
|
|
|
|
| |
std::list. * sendRemoveNode and sendAddNodes are also converted as a side effect
|
|
|
|
|
|
| |
request_media, Server::getModNames, Environment::m_simple_objects.
* Also remove unused Server::m_modspaths
|
| |
|
|
|
|
| |
for better perfs
|
|
|
|
| |
searching it via peer_id
|
|
|
|
| |
* This permit to cleanup the player checking loop
|
|
|
|
|
| |
* setTimeOfDaySpeed already lock a mutex when modify the value, we don't need to lock all environment.
* add a fine grain lock for getTimeOfDay and setTimeOfDay to solve environment multithread modifications on this value
|
|
|
|
|
|
| |
* 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
|
| |
|
| |
|
|
|
|
| |
and testing the state change.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
reloaded at server loop but loaded when server starts, for data consistency (not a hot load variable)
ok @ShadowNinja
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
ok @Zeno-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
|
|
|
| |
When SER_FMT_VER_LOWEST is set to zero, then the test is stupid in INIT because all client works. In mapblock we check if client's serialization version is < 24, but if client sent serialization version < 24 (15 for example) the server set it and tried to send nodes, then BOOM
To resolve the problem:
* Create a different CLIENT_MIN_VERSION to handle this problem
* Remove the exception
* Use an assert in case of bad developer code
|
| |
|
| |
|
| |
|
|
|
|
| |
Also add NodeResolver callbacks on the client
|
| |
|
|
|
|
|
| |
Add minetest.get_mapgen_params()
Deprecate minetest.register_on_mapgen_init()
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Before:
Server: version=0.4.10, uptime=190.5, max_lag=0.001, clients={user1,user2,user3,user4,user5,foobar,userplayedminetestthismorning}
After:
Server: version=0.4.10, uptime=190.5, max_lag=0.001, clients={user1, user2, user3, user4, user5, foobar, userplayedminetestthismorning}
|
| |
|
| |
|
| |
|
| |
|
| |
|