diff options
author | Tarik02 <Taras.Fomin@gmail.com> | 2019-04-26 22:23:52 +0300 |
---|---|---|
committer | Tarik02 <Taras.Fomin@gmail.com> | 2019-04-26 22:23:52 +0300 |
commit | bb3089895c3638dd7668843099bf43d8999f0878 (patch) | |
tree | bb1d78e1e4b4779cbd9a42583e1e27f1979fce0b /thirdparty | |
parent | 2931b4db5145d17da46caee1ccf4322939751707 (diff) |
Implement function enet_socket_set_option using ENetSocket class's methods.
Implemented options:
- ENET_SOCKOPT_NONBLOCK
- ENET_SOCKOPT_BROADCAST
- ENET_SOCKOPT_REUSEADDR
- ENET_SOCKOPT_NODELAY
Not implemented options:
- ENET_SOCKOPT_RCVBUF
- ENET_SOCKOPT_SNDBUF
- ENET_SOCKOPT_RCVTIMEO
- ENET_SOCKOPT_SNDTIMEO
Diffstat (limited to 'thirdparty')
-rw-r--r-- | thirdparty/enet/godot.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/thirdparty/enet/godot.cpp b/thirdparty/enet/godot.cpp index 2e1519b7b2..894061a20f 100644 --- a/thirdparty/enet/godot.cpp +++ b/thirdparty/enet/godot.cpp @@ -216,6 +216,46 @@ int enet_socket_listen(ENetSocket socket, int backlog) { int enet_socket_set_option(ENetSocket socket, ENetSocketOption option, int value) { + NetSocket *sock = (NetSocket *)socket; + + switch (option) { + case ENET_SOCKOPT_NONBLOCK: { + sock->set_blocking_enabled(value ? false : true); + return 0; + } break; + + case ENET_SOCKOPT_BROADCAST: { + sock->set_broadcasting_enabled(value ? true : false); + return 0; + } break; + + case ENET_SOCKOPT_REUSEADDR: { + sock->set_reuse_address_enabled(value ? true : false); + return 0; + } break; + + case ENET_SOCKOPT_RCVBUF: { + return -1; + } break; + + case ENET_SOCKOPT_SNDBUF: { + return -1; + } break; + + case ENET_SOCKOPT_RCVTIMEO: { + return -1; + } break; + + case ENET_SOCKOPT_SNDTIMEO: { + return -1; + } break; + + case ENET_SOCKOPT_NODELAY: { + sock->set_tcp_no_delay_enabled(value ? true : false); + return 0; + } break; + } + return -1; } |