summaryrefslogtreecommitdiff
path: root/modules/enet/networked_multiplayer_enet.cpp
AgeCommit message (Collapse)Author
2021-05-06Rename `IP_Unix`, `IP_Address` and `TCP_Server` to remove underscoresHugo Locurcio
2021-04-28Merge pull request #48235 from Faless/feature/network-local-port-enet-salvagedRémi Verschelde
[Net] Implement NetworkedMultiplayerENet.get_local_port
2021-04-28Implement NetworkedMultiplayerENet.get_local_portFabio Alessandrelli
Allows retrieving the local port to which the peer is bound.
2021-04-27Core: Drop custom `copymem`/`zeromem` definesRémi Verschelde
We've been using standard C library functions `memcpy`/`memset` for these since 2016 with 67f65f66391327b2967a20a89c3627e1dd6e84eb. There was still the possibility for third-party platform ports to override the definitions with a custom header, but this doesn't seem useful anymore.
2021-03-12Fixes small typos and grammar correctionAnshul7sp1
2021-02-27Add set_peer_timeout to NetworkedMultiplayerENet.Fabian
2021-02-08Initialize class/struct variables with default values in modules/Rafał Mikrut
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-07-29Fix crash in ENet changing refuse_new_connectionsFabio Alessandrelli
When the host is not started.
2020-07-14Funnel refuse_new_connections to Godot ENet.Fabio Alessandrelli
2020-05-14Style: Enforce braces around if blocks and loopsRémi Verschelde
Using clang-tidy's `readability-braces-around-statements`. https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14Style: Enforce separation line between function definitionsRémi Verschelde
I couldn't find a tool that enforces it, so I went the manual route: ``` find -name "thirdparty" -prune \ -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \ -o -name "*.glsl" > files perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files) misc/scripts/fix_style.sh -c ``` This adds a newline after all `}` on the first column, unless they are followed by `#` (typically `#endif`). This leads to having lots of places with two lines between function/class definitions, but clang-format then fixes it as we enforce max one line of separation. This doesn't fix potential occurrences of function definitions which are indented (e.g. for a helper class defined in a .cpp), but it's better than nothing. Also can't be made to run easily on CI/hooks so we'll have to be careful with new code. Part of #33027.
2020-05-14Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
2020-04-02Replace NULL with nullptrlupoDharkael
2020-02-17NetworkedMultiplayerENet dtls support.Fabio Alessandrelli
2020-02-02Improve error explanations related to NetworkedMultiplayerENetHugo Locurcio
2020-01-16Merge pull request #34789 from Faless/enet/disconnect_relayRémi Verschelde
ENet optional server_relay when disconnecting peer
2020-01-03Fix ENet max clients highest value.Fabio Alessandrelli
Was 4096, while actually it's 4095. Fixed now in both docs and `create_server` check.
2020-01-03ENet optional server_relay when disconnecting peerFabio Alessandrelli
Was not correctly enforced before, always notifying other peers of the disconnection.
2020-01-01Update copyright statements to 2020Rémi Verschelde
Happy new year to the wonderful Godot community! We're starting a new decade with a well-established, non-profit, free and open source game engine, and tons of further improvements in the pipeline from hundreds of contributors. Godot will keep getting better, and we're looking forward to all the games that the community will keep developing and releasing with it.
2019-11-27Add ENet option to disable server relaying.Fabio Alessandrelli
It's useless when building fully authoritative servers, and prevents various kinds of abuse.
2019-11-26Fix memory leak in NetworkedMultiplayerENet.Fabio Alessandrelli
Dynamically allocated ids of peers where not correctly freed when calling close_connection and disconnect_peer (with now=true).
2019-09-25Added some obvious errors explanationsqarmin
2019-08-12Replace 'ERR_EXPLAIN' with 'ERR_FAIL_*_MSG' in rest of 'modules/'Robin Hübner
2019-06-27Add default values to the editor help, docs, and generated RSTBojidar Marinov
Also, make spacing of "=" in the editor help a bit more consistent. Closes #16086
2019-06-15Fix ENet incorrectly binding to wildcard.Fabio Alessandrelli
Values were not properly initialized, and wildcard would evaluate to true in most cases.
2019-06-11Fix error macro calls not ending with semicolonRémi Verschelde
It's not necessary, but the vast majority of calls of error macros do have an ending semicolon, so it's best to be consistent. Most WARN_DEPRECATED calls did *not* have a semicolon, but there's no reason for them to be treated differently.
2019-05-19Fix typos with codespellRémi Verschelde
Using codespell 1.15.0. Method: ``` $ cat > ../godot-word-whitelist.txt << EOF ang curvelinear doubleclick leapyear lod merchantibility nd numer ois ony que seeked synching te uint unselect webp EOF $ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po" $ git diff // undo unwanted changes ```
2019-04-23Merge pull request #25004 from Faless/enet/proto_optimizeHein-Pieter van Braam
Save 4 bytes in ENet multiplayer protocol.
2019-04-09Style: Apply new changes from clang-format 8.0Rémi Verschelde
It seems to stay compatible with formatting done by clang-format 6.0 and 7.0, so contributors can keep using those versions for now (they will not undo those changes).
2019-02-21Fix all -Wtype-limits warnings.marxin
2019-02-20Add check to validate client IDs in ENet.Fabio Alessandrelli
Server now checks that the ID received from the client is not already used by someone else and is a valid ID (>=2)
2019-01-15Save 4 bytes in ENet multiplayer protocol.Fabio Alessandrelli
Avoid sending encoded packet flags (reliable/unreliable/ordered) as that's already been done by ENet itself and we can read them from the incoming packet.
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-09-26ENet: Remove redundant if conditionRémi Verschelde
Closes #22445.
2018-09-25Set ENet service time to 0.Fabio Alessandrelli
Process all packets in queue, but never wait.
2018-09-13Merge pull request #21982 from luzpaz/misc-typosRémi Verschelde
Misc. typos
2018-09-12Misc. typosluz.paz
Found via `codespell -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"`
2018-09-12Make core/ includes absolute, remove subfolders from include pathRémi Verschelde
This allows more consistency in the manner we include core headers, where previously there would be a mix of absolute, relative and include path-dependent includes.
2018-07-26Reduce unnecessary COW on Vector by make writing explicitHein-Pieter van Braam
This commit makes operator[] on Vector const and adds a write proxy to it. From now on writes to Vectors need to happen through the .write proxy. So for instance: Vector<int> vec; vec.push_back(10); std::cout << vec[0] << std::endl; vec.write[0] = 20; Failing to use the .write proxy will cause a compilation error. In addition COWable datatypes can now embed a CowData pointer to their data. This means that String, CharString, and VMap no longer use or derive from Vector. _ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug builds. This is a lot faster for Vector in the editor and while running tests. The reason why this difference used to exist is because force-inlined methods used to give a bad debugging experience. After extensive testing with modern compilers this is no longer the case.
2018-05-12Expose channels in NetworkedMultiplayerENetFabio Alessandrelli
2018-05-08Document websocket module, further document enetFabio Alessandrelli
2018-05-07Enet: Add wait time param to close_connection()mhilbrunner
Enet: Allow to set client interface/address and port Enet: More error checks Fix comment
2018-04-13Add DNS resolution in NetworkedMultiplayerEnet::create_client()mhilbrunner
2018-04-12Implement get_peer_[address|port] in ENet/WSServerFabio Alessandrelli
Also implement get_connected_host and get_connected_port in WebSocketPeer (not supported in HTML5 due to browser limitation). Add shorthand disconnect_peer(id) for get_peer(id)->close() like in ENet to WebSocketServer.
2018-04-10NetworkedMultiplayerEnet: Add disconnecting/kicking peersmhilbrunner
2018-01-12Bind many more properties to scriptsBojidar Marinov
Notable potentially breaking changes: - PROPERTY_USAGE_NOEDITOR is now PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK, without PROPERTY_USAGE_INTERNAL - Some properties were renamed, and sometimes even shadowed by new ones - New getter methods (some virtual) were added
2018-01-05Add missing copyright headers and fix formattingRémi Verschelde
Using `misc/scripts/fix_headers.py` on all Godot files. Some missing header guards were added, and the header inclusion order was fixed in the Bullet module.
2018-01-01Update copyright statements to 2018Rémi Verschelde
Happy new year to the wonderful Godot community!
2017-12-15Remove "const" from PacketPeer get_packet/get_varFabio Alessandrelli
They are NOT constant methods, as state by the comment message, they fetch the last packet and then forget about it, actively changing the state of the object.