aboutsummaryrefslogtreecommitdiff
path: root/src/network
AgeCommit message (Collapse)Author
2015-12-02Add on_secondary_use when right clicking an item in the airAlex Ford
2015-11-13Only allow players with shout to chatest31
Fix regression of commit 5e507c9829942c434a6f1ae7a4f3a488c7e50bef "Add server side ncurses terminal" which allowed all players, even those without a shout priv, to chat. Fixes #3362.
2015-11-06Add server side ncurses terminalest31
This adds a chat console the server owner can use for administration or to talk with players. It runs in its own thread, which makes the user interface immune to the server's lag, behaving just like a client, except timeout. As it uses the same console code as the f10 console, things like nick completion or a scroll buffer basically come for free. The terminal itself is written in a general way so that adding a client version later on is just about implementing an interface. Fatal errors are printed after the console exists and the ncurses terminal buffer gets cleaned up with endwin(), so that the error still remains visible. The server owner can chose their username their entered text will have in chat and where players can send PMs to. Once the username is secured with a password to prevent anybody to take over the server, the owner can execute admin tasks over the console. This change includes a contribution by @kahrl who has improved ncurses library detection.
2015-10-14Always use errorstream for DEBUG_EXCEPTION_HANDLERShadowNinja
2015-10-14Use warningstream for log messages with WARNINGShadowNinja
Remove DTIME macro and its uses, too
2015-10-12Fix how address is logged when a wrong password is suppliedKahrl
- SRP: print the address only once, not twice - Legacy: previously the address was not printed at all - Make both messages structurally the same, to facilitate log analyzers
2015-10-04Remove redundant code in player interact handlerkwolekr
2015-09-14Serialisation: documentation fixes, clarifying renames and whitespace fixesest31
1. Do two renames: * SER_FMT_CLIENT_VER_LOWEST -> SER_FMT_VER_LOWEST_WRITE * SER_FMT_VER_LOWEST -> SER_FMT_VER_LOWEST_READ Now the two define values are consistently named with the _WRITE defines SER_FMT_VER_{HIGHEST,LOWEST}_WRITE, and to better point out what the two serialisation versions actually are for. 2. wrap some lines in doc/worldformat.txt, and point out that the node timers are serialized at a later point, as this can cause confusion about what now happens (if one doesn't strictly read the if block's conditions). 3. some whitespace fixes in NodeTimerList::serialize, and one new comment.
2015-09-10networkprotocol.h: remove "u16 command" from docest31
Its obvious that "u16 command" is inside every packet, therefore this commit removes all mentions of the command, if non-array like notation is used. We already didn't add "u16 command" to new packets or removed it at packet changes, so now we remove it from existing packets.
2015-09-01Hide minimap if it has been disabled by serverest31
2015-08-25Change i++ to ++iDavid Jones
2015-08-23Clean up threadingShadowNinja
* Rename everything. * Strip J prefix. * Change UpperCamelCase functions to lowerCamelCase. * Remove global (!) semaphore count mutex on OSX. * Remove semaphore count getter (unused, unsafe, depended on internal API functions on Windows, and used a hack on OSX). * Add `Atomic<type>`. * Make `Thread` handle thread names. * Add support for C++11 multi-threading. * Combine pthread and win32 sources. * Remove `ThreadStarted` (unused, unneeded). * Move some includes from the headers to the sources. * Move all of `Event` into its header (allows inlining with no new includes). * Make `Event` use `Semaphore` (except on Windows). * Move some porting functions into `Thread`. * Integrate logging with `Thread`. * Add threading test.
2015-08-15Remove unused function from connection.{cpp,h}nerzhul
2015-08-10Make NetworkPacket respect serialized string size limitskwolekr
2015-08-06Fix BufferedPacket race condition (fixes #2983)kwolekr
This was caused by the use the non-threadsafe SharedBuffer in a threaded context.
2015-08-06Fix critical vulnerabilities and bugs with NetworkPacketkwolekr
2015-08-05connection: Make assertions non-fatal for received datakwolekr
2015-08-01src/network/connection.h: Fix race conditionBřetislav Štec
2015-07-27Fix srp.cpp:815 leakest31
Thanks @Zeno-
2015-07-24Bump protocol to 26est31
This was needed due to the TileDef serialisation changes. Originally it has been planned to also add utf-8 based chat to 26, but chat changes aren't final yet, so they are done in one change, after the release, and not two small ones, causing us having to be compliant to three versions of the packet.
2015-07-23Optional reconnect functionalityest31
Enable the server to request the client to reconnect. This can be done with the now extended minetest.request_shutdown([reason], [reconnect]) setting.
2015-07-21Ask auth handler to create auth when a default password is setest31
-> Fix server crash with protocol >=25 if a default password is set. -> Remove some useless and possibly confusion causing code for the TOCLIENT_FIRST_SRP packet handler
2015-07-16Fix relief mapping issuesRealBadAngel
2015-07-14connection.cpp: remove unused constructorLoic Blot
2015-07-13Remove raw message output on AOM deserialization failurekwolekr
Improve TOCLIENT_ACTIVE_OBJECT_MESSAGES robustness for handling invalid data
2015-07-10Fix damage flash when damage disabledkwolekr
2015-07-08Use UTF-8 instead of narrowest31
Use wide_to_utf8 and utf8_to_wide instead of wide_to_narrow and narrow_to_wide at almost all places. Only exceptions: test functions for narrow conversion, and chat, which is done in a separate commit.
2015-07-07Client: better m_proto_ver initialisationest31
Previously, m_proto_ver was set to the serialisation version inside the legacy init packet. Now, if the server doesn't send a protocol version (protocols < 25), we set m_proto_ver to some value < 25 and > 0.
2015-06-23Typo fix on previous @est31 commitLoic Blot
2015-06-23Small TOCLIENT_HELLO logging fixest31
Fix grammar error and missing number conversion for version. Also add deployed protocol to log line.
2015-06-23Use actionstream instead of errorstream when failing to emerge playerCraig Davison
2015-06-20Generic CAO cleanups and renames for clarificationest31
* Use enum for GENERIC_CMD_* * Rename m_attachements to attachement_parent_ids (public member and clearer name) * Rename GENERIC_CMD_SET_ATTACHMENT to GENERIC_CMD_ATTACH_TO * USHRT_MAX + 1 buffer sizes to prevent overflows as @kahrl suggested * Remove unneccessary m_id from GenericCAO (shadowing protected superclass member for no reason) as @kahrl suggested
2015-05-22Deny empty username early in the protocolest31
Thanks to @UltimateNate for pointing this out :)
2015-05-19Replace instances of std::map<std::string, std::string> with StringMapkwolekr
Also, clean up surrounding code style Replace by-value parameter passing with const refs when possible Fix post-increment of iterators
2015-05-19Lower log level for unexpected behaviourest31
Its a possible mistake to log in to a server with twice the same name. Before, it triggered a server wide error message, now it logs to actionstream.
2015-05-16Fix build since last commitest31
Also rename method to better match what it does.
2015-05-16Finalize init packets and enable protocol v25est31
This enables srp.
2015-05-11Make early protocol auth mechanism generic, and add SRPest31
Adds everything needed for SRP (and everything works too), but still deactivated, as protocol v25 init packets aren't final yet. Can be activated by changing the LATEST_PROTOCOL_VERSION header to 25 inside networkprotocol.h.
2015-05-05Stop NetworkPacket methods from producing bloated packetsJay Arndt
2015-04-22Protocol 25: wstring -> string for custom access denial reasonsest31
Also fix std::logic_error when server::DenyAccess() is used with only two arguments.
2015-04-17Refactor around translatePasswordest31
Change types for passed password from wstring to string, which removes converting back and forth in most cases. Move the narrow_to_wide conversion, where its neccessary, closer to irrlicht. Remove trailing spaces in guiPasswordChange.cpp. Make parameters for translatePassword passed as const reference.
2015-04-07Make comments consistent with TOSERVER_INIT -> TOSERVER_INIT_LEGACY renameest31
2015-04-05TOCLIENT_ACTIVE_OBJECT_REMOVE_ADD can be unreliable, catch PacketError ↵Loic Blot
exception. Also set the packet size at creation not when pushing rawString, no functional change
2015-04-05Fix uninitialized variabled in ConnectionEventLoic Blot
2015-04-03Remove errorstream logging on password changeest31
This seems to be a debug message which has been forgotten to be removed.
2015-04-03Create PacketError exception and use it with ACTIVEOBJECT_REMOVE_ADD handler ↵Loic Blot
which can be unreliable
2015-04-01Move globals from main.cpp to more sane locationsCraig Robbins
Move debug streams to log.cpp|h Move GUI-related globals to clientlauncher Move g_settings and g_settings_path to settings.cpp|h Move g_menuclouds to clouds.cpp|h Move g_profiler to profiler.cpp|h
2015-04-01NetworkPacket: reading outside packet is now clearer.Loic Blot
Use a common function to check the reading offset
2015-03-31Connection::Receive(): receive Network Packet instead of SharedBuffer<u8>.Loic Blot
Because we get a Buffer<u8> from ConnectionEvent, don't convert it to SharedBuffer<u8> and return it to Server/Client::Receive which will convert it to NetworkPacket Instead, put the Buffer<u8> directly to NetworkPacket and return it to packet processing This remove a long existing memory copy Also check the packet size directly into Connection::Receive instead of packet processing
2015-03-31RunCommandQueues: little optimizationLoic Blot
remove command from queue on success, else do nothing, instead of remove command from queue and push it front on success