Commit Graph

483 Commits

Author SHA1 Message Date
nathan
a214c2b53a converted to 2020-08-17 16:48:39 +02:00
nathan
77c3209090 Rename .java to .kt 2020-08-17 16:48:29 +02:00
nathan
f84bcdbec5 Added close for rmi support, removed actor 2020-08-17 16:48:16 +02:00
nathan
cd42f6b85d Fixed size error when cleaning the stack trace 2020-08-17 16:47:50 +02:00
nathan
22f80497ef Changed package name 2020-08-15 13:26:58 +02:00
nathan
4d0a1c9259 Converted to kotlin 2020-08-15 13:22:43 +02:00
nathan
8d9bef0ccc separated handshake from connection management. cleaned up API 2020-08-15 13:21:20 +02:00
nathan
9eb3c122d7 Worked on RMI, moved aeron IO, tweaks to connection management 2020-08-15 13:20:31 +02:00
nathan
d9ab3f7247 Moved Kryoextra, moved Aeron IO, fixed generics with serialization 2020-08-15 13:14:55 +02:00
nathan
1b796971d3 Changed ClientRejectedException hierarchy 2020-08-15 13:13:40 +02:00
nathan
f891e76478 Ensure minimum port range 2020-08-14 22:42:25 +02:00
nathan
8857d1d016 Changed netty -> agrona for compression 2020-08-13 17:03:06 +02:00
nathan
bb6cacbaee WIP - disabled ping 2020-08-13 17:02:41 +02:00
nathan
ac0aba1113 Fixed comments 2020-08-13 17:02:24 +02:00
nathan
6bd93ac8ea Fixed bug with registration detection for RMI types, fixed bug sending wrong class name for registration validation. 2020-08-13 16:54:43 +02:00
nathan
a58af6ba00 Cleaned up log message. Now supports constructor parameters for creating RMI objects 2020-08-13 14:39:19 +02:00
nathan
3513e58d30 Added DirectBuffer to constructor for AeronOutput 2020-08-13 12:03:38 +02:00
nathan
315eb9d80b Fixed typo in log 2020-08-13 01:03:40 +02:00
nathan
290688b51c Changed log for generating ecc keys 2020-08-13 01:03:23 +02:00
nathan
8b6751f3f3 Removed debug code 2020-08-13 01:02:42 +02:00
nathan
7fbc86d132 Removed RMI debug comments 2020-08-13 00:50:53 +02:00
nathan
e621bfb4e3 Better exception handling wrt RMI method invocation 2020-08-13 00:47:35 +02:00
nathan
10e581a21c Reworked how connections are implemented (they are no longer an interface), refactored internal structure of how connections are managed and established. Added proper crypto for handshake data 2020-08-12 23:35:31 +02:00
nathan
007220b82e Removed filter that won't be used 2020-08-12 23:31:56 +02:00
nathan
a52c2d9adb Added trampoline for coroutine suspend argument access 2020-08-12 23:31:36 +02:00
nathan
94e835218a Added RMI save/get/create methods to client/server 2020-08-12 23:30:43 +02:00
nathan
ea8e12a000 Fixed issues with the connection handshake, so now connections are prepped before 'onConnect' is called. 2020-08-12 23:30:16 +02:00
nathan
ccb1267bab Cleaned up RMI save/get/create methods. Fixed issues waiting for RMI method invocation responses 2020-08-12 23:28:37 +02:00
nathan
47891cc448 Fixed access restrictions 2020-08-12 11:21:01 +02:00
nathan
57401b4e5e Added more comments 2020-08-12 11:20:26 +02:00
nathan
085dc30daf Removed netty Input/Output 2020-08-11 23:33:44 +02:00
nathan
2d2dd4a912 Removed unnecessary function 2020-08-11 23:33:23 +02:00
nathan
94f623716b Fixed exception heirarchy 2020-08-11 23:30:56 +02:00
nathan
5d696d37e2 Added more parameters for client/server exception 2020-08-11 23:03:43 +02:00
nathan
c0a44ebbb4 Added ipfilter rule 2020-08-11 16:26:30 +02:00
nathan
ac5ae44cd4 code polish 2020-08-11 16:16:08 +02:00
nathan
20d4a25232 Serialization now initializes using the Serialization defaults class 2020-08-11 16:15:49 +02:00
nathan
1608c0d6a2 WIP - finished global/connection specific RMI, IPC aeron connectivity 2020-07-06 16:36:56 +02:00
nathan
fc7baa6c8d WIP changing the network lib from netty -> AERON 2020-07-03 01:49:00 +02:00
nathan
4c8c50e8a3 Cleanup. pre-kotlin conversion 2020-06-05 19:50:16 +02:00
nathan
794965348a before kotlin conversion 2020-06-04 23:24:24 +02:00
nathan
cf473316e6 Able to get the EndPoint type now, if you want 2020-05-08 17:00:15 +02:00
nathan
1cf4457f77 Updated version 2020-05-08 16:29:59 +02:00
nathan
15be442cb2 Fixed session bootstrap for updated version of netty 2020-05-08 01:16:46 +02:00
nathan
0ef1d79298 Fixed comments 2020-05-07 14:58:13 +02:00
nathan
760ebf974f Cleaned up RMI registration validation 2020-05-07 14:56:41 +02:00
nathan
450f1aa5fb Fixed issue with RMI registration validation fragmentation count 2020-05-07 14:52:45 +02:00
nathan
1a63affdcc Prevent AES IV leak 2019-06-15 00:42:38 +02:00
nathan
786b00932e Updated version from 3.0 to 4.0 2019-06-14 22:02:57 +02:00
nathan
8010005323 Added ability to firewall (TCP/UDP) connections and to specify connection types (NOTHING, COMPRESS, COMPRESS_AND_ENCRYPT) 2019-06-14 20:36:26 +02:00
nathan
78d42e985a Optimized types and methods for the Registration wrapper 2019-06-14 20:35:36 +02:00
nathan
89d70f9255 Added support for optional encryption. Cleaned up connection registration process. 2019-06-14 13:05:28 +02:00
nathan
6ca4da2e23 For UDP, prep channel for messages pre-connection happens first 2019-06-14 12:40:38 +02:00
nathan
353164fac5 Code polish 2019-06-14 12:39:10 +02:00
nathan
682a069c19 Added reconnect throttling 2019-06-14 12:38:35 +02:00
nathan
c5c709407d Moved class registration fragmentation values to the serialization class 2019-06-14 10:57:36 +02:00
nathan
c697643562 Added deprecated warnings where appropriate 2019-06-14 10:56:28 +02:00
nathan
4e0e95fb44 Broadcast properly wraps the byte buffer (instead of unnecessary allocation) 2019-06-14 03:17:14 +02:00
nathan
050fa81aff Added logger to debug kryo read/write. Fixed compression buffer.read calculation error 2019-06-14 03:02:59 +02:00
nathan
2af14728e7 Comment clean up 2019-06-13 21:40:56 +02:00
nathan
4efa01b8fb Merge branch 'master' into crypto_step1
# Conflicts:
#	src/dorkbox/network/connection/RegistrationWrapper.java
2019-06-13 21:31:40 +02:00
nathan
8c3b98be33 Lowered class registration frame size to fix potential UDP issues 2019-06-13 21:31:19 +02:00
nathan
93a6c0c05e Merge branch 'master' into crypto_step1 2019-06-13 21:25:17 +02:00
nathan
b09ce4c650 Lowered class registration frame size to fix potential UDP issues 2019-06-13 21:24:53 +02:00
nathan
b4ff95b496 Cleaned up Kryo names + exceptions 2019-06-13 20:38:46 +02:00
nathan
6177912bb4 Crypto and compression is cleaner, uses Java native instead of bouncycastle 2019-06-13 20:37:24 +02:00
nathan
a52c67671d Cleaned up Kryo names + exceptions 2019-06-13 20:35:09 +02:00
nathan
7b74a730ba Fixed issues surrounding capacity and strings/byte arrays. (we should not be using capacity, require() should manage if we need to grow capacity or not 2019-06-13 01:42:09 +02:00
nathan
372a6a06ca Updated version from 2.17 to 3.0 2019-03-26 20:48:46 +01:00
nathan
8bd52dd202 Upgrade to Kryo 5rc2, updated to use utilities project as a maven release instead of compiling specific files 2019-03-26 20:47:40 +01:00
nathan
ec8d5d1926 Updated to java 8+ version of getting calling class 2019-02-11 23:31:28 +01:00
nathan
16019270c8 Updated version from 2.16 to 2.17 2019-02-11 15:46:42 +01:00
nathan
cdf34ac1dc Updated version from 2.15 to 2.16 2019-01-28 15:15:08 +01:00
nathan
518c98e3af Fixed RMI close method. Code polish 2019-01-28 09:53:42 +01:00
nathan
debd0716cd Method signature cleanup 2019-01-27 16:42:01 +01:00
nathan
273523fc96 Shortened grace period for shutdown 2019-01-27 16:36:02 +01:00
nathan
7e442f2f8a Consolidated multiple RMI support classes (local/network) 2019-01-25 17:04:12 +01:00
nathan
12a9293526 ConnectionRmiSupport refactor. Moved internal methods to Connection_ 2019-01-25 16:41:13 +01:00
nathan
db69e2f9c8 Updated copyright/formatting 2019-01-25 16:27:01 +01:00
nathan
2a4ae99390 RMI Optimizations, merged/renamed primary serialization interface. 2019-01-25 16:17:15 +01:00
nathan
a8fc584ae4 Server shutdown now tries harder to make sure the server is actually shutdown when aborting. Can also check UDP servers now 2019-01-25 16:16:03 +01:00
nathan
aac6e30ec9 DiscoverHost now throws IoException when host discovery fails 2019-01-25 16:15:11 +01:00
nathan
1a6540f360 Shortened shutdown timeout by a lot 2019-01-25 00:49:48 +01:00
nathan
1d3d794f99 Made logger optional for Host discovery. 2019-01-22 01:02:43 +01:00
nathan
463433ef45 Fixed countdown 2019-01-22 00:40:44 +01:00
nathan
0eb19e8c3f Clean up and optimize RMI network stack. 2019-01-20 22:44:27 +01:00
nathan
df73b839b4 Formatting 2019-01-20 21:36:22 +01:00
nathan
9d3cf9fdf5 Added additional checks to make sure the socket is UN-BOUND when shutting down a server. Added UDP checking for Server.isRunning(config) 2019-01-20 21:35:25 +01:00
nathan
bc67ca73a3 More explicit name for connection registration thread. Verified thread handoff is correct 2019-01-17 19:05:31 +01:00
nathan
66fe755bb5 Fixed comments and assignment of local variables 2019-01-17 17:14:42 +01:00
nathan
aa4fc5c44b Fixed issues with Client/Server worker thread pool sizes. 2019-01-17 16:15:59 +01:00
nathan
e6d8666862 Fixed number of worker threads for endpoint 2019-01-17 15:58:13 +01:00
nathan
52197975cd Better API calls for getting the string representation of an ip 2019-01-16 23:35:21 +01:00
nathan
5000fdd264 Optimize IPv4 -> String call in registration stack 2019-01-16 22:41:02 +01:00
nathan
0e42fb89af Updated version from 2.14 to 2.15 2019-01-16 11:44:11 +01:00
nathan
51544ce594 Local-JVM connections now verify class registrations 2019-01-16 11:43:46 +01:00
nathan
cdc22485b0 Fixed class registration verification (write was compressed, read was not) 2019-01-16 11:43:23 +01:00
nathan
627ef245d2 Fixed issues with array offsets when using unpooled buffers. 2019-01-16 11:42:33 +01:00
nathan
b48886376b Fixed javadocs 2019-01-16 11:08:59 +01:00
nathan
d47c28bcc5 Updated version from 2.13 to 2.14 2019-01-13 17:46:12 +01:00
nathan
4c40fd38f3 Class registration verification now includes serializer class (but not it's configuration). 2019-01-11 10:22:02 +01:00
nathan
63d3a586ff Moved util methods into RmiUtil class 2019-01-11 10:12:19 +01:00
nathan
4b5430e90f Added ability for client to send server registration data, and the server will validate that all of the registration classes are the same before allowing the connection to successfully connect. 2019-01-11 09:56:36 +01:00
nathan
7b89fc6443 Added more explicit details on why UDP can fail 2019-01-11 09:53:11 +01:00
nathan
d662f5c37c Reverted EditableDefaultClassResolver 2019-01-10 20:52:21 +01:00
nathan
ff350991a4 Removed the need for a client to register RMI interfaces explicitly (now it is done the same was as "normal" classes, via 'register'. Fixed various startup bugs missed from the last commit 2019-01-09 23:40:19 +01:00
nathan
1ed2b65eed Removed type generics from RemoteObjectSerializer 2019-01-09 23:39:19 +01:00
nathan
241b3d4ce2 Fixed RMI so that the impl class does not have to be registered in order to construct a proxy object 2019-01-09 23:22:54 +01:00
nathan
c609bb7328 Fixed issue with registration timeout == 0 (it will now wait indefinitely) 2019-01-09 19:54:37 +01:00
nathan
3f003995b6 Moved DNS to it's own project 2019-01-09 18:19:44 +01:00
nathan
33853d44e3 RMI is now more robust and forgiving 2019-01-09 18:19:20 +01:00
nathan
c927f87316 Cleaned up RMI field names 2019-01-09 18:18:05 +01:00
nathan
2b8befa88f Updated version from 2.12 to 2.13 2018-12-20 16:27:13 +01:00
nathan
07cb768fc2 Updated version from 2.11 to 2.12 2018-12-19 00:08:05 +01:00
nathan
e5a96cb3b2 For RMI registration, we check to see if the interface is already registered. If so, we override it with the implementation class. This enables us to simplify registering classes for RMI 2018-12-18 23:45:56 +01:00
nathan
c54d20eae6 Fixed internal issue where RMI object was null (since it didn't exist) and we would try to add it to internal maps anyways. 2018-10-25 21:36:00 +02:00
nathan
5f2cb654d2 Updated version 2018-04-05 18:39:45 +02:00
nathan
a56b4261ae Added more error checking for the client with invalid hosts 2018-04-05 17:15:49 +02:00
nathan
1d35a9916e Fixed issues with StackOverflowErrors when loading Netty on windows. 2018-04-05 17:13:58 +02:00
nathan
03e30ab15c Typo fix 2018-04-05 17:11:49 +02:00
nathan
d1fc510d60 Updated version 2018-04-04 23:49:34 +02:00
nathan
fa3f98581d It is not necessary to interrupt the thread group 2018-04-04 23:34:29 +02:00
nathan
f72a3881eb Fixed logic for transmitting return values/exceptions (it was incorrect
in the earlier commit)
2018-04-04 23:34:11 +02:00
nathan
f142a3f244 If the method return type is 'void', then we don't have to explicitly
set 'transmitReturnValue' to false.  If there are no checked exceptions
thrown, then we don't have to explicitly set 'transmitExceptions' to false
2018-04-04 22:45:31 +02:00
nathan
617ab95ede Added isConnected() method back to the client 2018-04-04 16:16:31 +02:00
nathan
0a2da83a2c Better Ping/UDP-close-hint management 2018-04-04 15:25:02 +02:00
nathan
6582caa521 Added better close listener for UDP 2018-04-04 15:02:17 +02:00
nathan
fdf4ecf39b Removed connection timing. added protocol count connection info during
handshake
2018-04-04 15:01:51 +02:00
nathan
ccbe893efa Added better out-of-order message handling during connection handshake 2018-04-04 15:01:08 +02:00
nathan
b9c6a1422d Code cleanup/polish 2018-04-04 14:58:34 +02:00
nathan
615e224292 Added close hints when the connection is shutdown 2018-04-04 14:58:24 +02:00
nathan
73a5af7a95 Added wire read/write trace logging (ie: exactly what's on the wire...) 2018-04-04 14:57:19 +02:00
nathan
292f50a059 Code polish/cleanup 2018-04-04 14:56:37 +02:00
nathan
a4cf9f4834 Datagram session now checks if event loop is shutdown before trying to
close
2018-04-03 15:53:01 +02:00
nathan
5d2fa50de2 Moved UDP close hint to it's own class and into the EndPoint (similar to
how Ping works)
2018-04-03 14:38:52 +02:00
nathan
f50b218ac1 Code cleanup 2018-04-02 16:16:56 +02:00
nathan
590ae9d94c Added info about link-local multicast name resolution 2018-04-02 16:08:14 +02:00
nathan
0af57379e6 Fixed issues with multiple worker threads 2018-04-02 16:06:58 +02:00
nathan
6156ac1569 Updated documentation 2018-04-01 16:01:46 +02:00
nathan
d9ca5b93df Fixed issues with UDP connection handling. Fixed issues with
registration order. Fixed issues with connection shutdown. Fixed
issues with explicit flush(). Added support for UDP session handling.
Updated broadcast discovery to return ports used. Added
connection.send(), which will use the best option to send
 data (TCP first, otherwise UDP).
2018-04-01 14:51:13 +02:00
nathan
ab174e4e0e Code polish 2018-03-31 16:03:52 +02:00
nathan
7e32a2ff5b Release the byte buffer when it's a broadcast packet 2018-03-31 16:03:27 +02:00
nathan
882b65ccf1 Only try to close active datagram sessions 2018-03-29 23:07:23 +02:00
nathan
68cd0071a6 Cleaned up local channel registration 2018-03-28 20:18:34 +02:00
nathan
f889399ecf WIP cleaning up DNS flags 2018-03-28 14:27:37 +02:00
nathan
c69d048a75 code polish 2018-03-28 10:54:12 +02:00
nathan
e44ee694c7 Ensure we always release the AddressEnvelope when doing DNS queries. 2018-03-26 23:08:13 +02:00
nathan
bac7df8b9a Fast track disabling native library on startup 2018-03-26 23:01:09 +02:00
nathan
5b7c33befb log output polish 2018-03-26 16:04:18 +02:00
nathan
4a3c5cf703 Always call the onDisconnect listeners during shutdown 2018-03-26 16:03:15 +02:00