Commit Graph

572 Commits

Author SHA1 Message Date
nathan
4e0ff43f5e Code polish 2020-09-04 10:19:29 +02:00
nathan
f4b8ef9c5d cleaned up logging 2020-09-03 22:41:50 +02:00
nathan
52cecf4f26 Added connection timeout to check when a connection is actually expired 2020-09-03 22:41:39 +02:00
nathan
d3c0b4265d Code polish 2020-09-03 22:27:36 +02:00
nathan
1273c8f386 Potential fix for race conditions when closing the endpoint wrt RMI support 2020-09-03 22:23:17 +02:00
nathan
ca32ef36e1 Commented out kryo compression and encryption buffers + logic 2020-09-03 22:21:27 +02:00
nathan
f2bd71d8c4 Enabled kryo initialization counts 2020-09-03 22:20:41 +02:00
nathan
9b1603daa4 cleaned logging 2020-09-03 22:20:19 +02:00
nathan
bae095c0fa Optimized Int.forEach 2020-09-03 22:19:59 +02:00
nathan
e99448e066 Only configure the media driver context to delete the dirs if this is the process that started it 2020-09-03 15:31:52 +02:00
nathan
6e665be6b6 removed debug code 2020-09-03 14:45:24 +02:00
nathan
c9f725ea2d Fixed race condition when initialize kryo instances during startup 2020-09-03 14:37:09 +02:00
nathan
23ef5e499b Fixed polling 2020-09-03 14:36:24 +02:00
nathan
aa3540a8bb Fixed GCM reuse error 2020-09-03 11:37:27 +02:00
nathan
28570d92e9 Fixed invalid object test case 2020-09-03 11:15:37 +02:00
nathan
6a590764ff Fixed issues when registering RMI via registerRmi in different orders (rmi-client/rmi-server out-of-order in different ways). 2020-09-03 02:40:32 +02:00
nathan
af36f9a4ff Code polish 2020-09-03 02:39:38 +02:00
nathan
1e0fa51c60 Removed servers from ALWAYS starting the media driver 2020-09-03 01:46:32 +02:00
nathan
2a6c279692 Fixed handshake race condition which resulted in empty messages. Cleaned up code, added more debug info 2020-09-03 01:31:08 +02:00
nathan
b1e92be50b Fixed issues with reverse RMI and having the client register impl classes (instead of the server) 2020-09-03 01:30:30 +02:00
nathan
b5342cd2f8 Changed default term buffers to be even smaller 2020-09-02 16:18:03 +02:00
nathan
07b8b1002a Serialization registration (class, serializer, id, etc) is now only necessary on the server. The client receives the serialization information during the handshake. 2020-09-02 15:03:57 +02:00
nathan
e27fdbb369 Set kryo log level to ERROR 2020-09-02 03:17:01 +02:00
nathan
1acab50ff4 Added option to enable/disable changing LOOPBACK -> IPC connections 2020-09-02 02:51:10 +02:00
nathan
8083d63da0 Term Buffer sizes are now smaller than the default, but only if it wasn't changed externally 2020-09-02 02:50:46 +02:00
nathan
e20f9b91de Added IPC support, filled out more methods. Better support for connect in a nested disconnect callback. Fixed issue with closing connections-with-handshake-errors on the server pending. 2020-09-02 02:39:05 +02:00
nathan
e09fd43e37 Added guarantee of aeron publication log deletion (warning if it cannot delete the file) 2020-09-01 20:36:24 +02:00
nathan
3ade7f229e Fixed threading issue with read/write global kryo 2020-09-01 14:39:18 +02:00
nathan
9a4c79e445 Fixed threading issue with read/write global kryo 2020-09-01 14:38:49 +02:00
nathan
0cf510fd7c Fixed comments 2020-09-01 14:38:06 +02:00
nathan
36c805cc2f Renamed class 2020-09-01 09:13:12 +02:00
nathan
9ec8f4efe3 Better support for sending RMI objects 2020-09-01 09:12:30 +02:00
nathan
051f419300 Flipped packed IDs order for creating connection RMI objects. Added better toString() info 2020-08-30 23:13:38 +02:00
nathan
f1fec705b9 Tweaked how the settingsStore types are registered with kryo 2020-08-30 23:12:07 +02:00
nathan
202b201a81 Fixed spacing 2020-08-30 22:27:08 +02:00
nathan
8ae9b9ddbb Code cleanup 2020-08-28 10:21:54 +02:00
nathan
080a60f85d Fixed RMI comments, code cleanup 2020-08-28 10:20:53 +02:00
nathan
fe5aa1d8a6 RMI cache now emits errors using the notifyError callback 2020-08-28 10:20:15 +02:00
nathan
ffa286c913 Class registration for RMI can now happen "out of order" and can accept with duplicates (which are automatically ignored) 2020-08-28 10:19:20 +02:00
nathan
47919b9214 Serialization class is now open, so it can be replaced/extended as necessary 2020-08-27 19:05:45 +02:00
nathan
39a77c4e65 Fixed issues with client/server onDisconnect messages. Client/server.close() will now wait for all onDisconnect() callbacks to finish before returning from the close() method 2020-08-27 14:00:35 +02:00
nathan
88c5644046 Better fix for client notifyDisconnect 2020-08-27 02:57:43 +02:00
nathan
01d818fa6e Fixed issues with connection listenermanagers assignment from a client connection. Added more notes 2020-08-27 02:33:09 +02:00
nathan
7c32c066b4 Better logs for handshake 2020-08-27 01:54:59 +02:00
nathan
661c978b07 Fixed issues with getting RMI interface IDS and late id registration 2020-08-27 00:47:37 +02:00
nathan
006e597867 Cleaned up logging, code polish 2020-08-27 00:46:17 +02:00
nathan
e7a7ec9737 Code polish 2020-08-27 00:45:09 +02:00
nathan
fc28153ed4 Fixed issues cleaning stack traces for proxy invocations 2020-08-27 00:44:43 +02:00
nathan
1750e0a2b0 Fixed issue with meaningless stack trace for suspending methods 2020-08-27 00:44:21 +02:00
nathan
39503ac6d9 Cleaned up fragment-limit for poll, added comments 2020-08-26 16:27:59 +02:00
nathan
efa032740a Code polish with the fragment handler 2020-08-26 16:24:40 +02:00
nathan
986585f073 Added a way to get messages in progress for a connection 2020-08-26 16:24:17 +02:00
nathan
31a32d303a Removed dead code 2020-08-26 15:48:43 +02:00
nathan
b3818b0b30 Updated comments 2020-08-26 15:39:41 +02:00
nathan
b6f337d0e6 Added RMI serialization syncrhonization between the server/client during the handshake. Fixed serialization for sending RMI objects in both directions. Removed NetworkSerializationManager, and instead pass the Serialization implementation. 2020-08-26 15:39:29 +02:00
nathan
570aeee52c WIP Rmi object serialization 2020-08-25 20:52:37 +02:00
nathan
977929d2a9 Cleaned up log 2020-08-25 20:52:01 +02:00
nathan
aaba26ab17 Cleaned up error log when ReflectASM cannot be used 2020-08-25 19:47:41 +02:00
nathan
a464d4b231 Fixed issue clearing RMI proxy objects on connection close 2020-08-25 19:47:13 +02:00
nathan
42664bfdfe Fixed issues with restarting a client, notifyConnect/Disconnect now ALWAYS happen on a new coroutine 2020-08-25 17:46:36 +02:00
nathan
b24e4ae710 Code cleanup 2020-08-25 02:58:16 +02:00
nathan
6ad850209c Fixed log typo 2020-08-25 02:55:55 +02:00
nathan
19e631a7ed Centralized sending messages, fixed connection initialization and connection expiration checks 2020-08-25 02:43:20 +02:00
nathan
81302648b3 Cleaner logging of class registrations 2020-08-25 02:29:18 +02:00
nathan
3326fba214 Removed double-poll for events on the connection 2020-08-25 02:27:45 +02:00
nathan
ab69c21774 Cleaned up logging for registration data 2020-08-25 01:57:26 +02:00
nathan
2faba6dcb4 Removed debug code 2020-08-23 19:23:26 +02:00
nathan
59773b4cce Work on cleaning up how exceptions are thrown/logged 2020-08-23 01:12:17 +02:00
nathan
389af93f0a More work done on cleaning up stack traces 2020-08-22 22:58:50 +02:00
nathan
4a033651cc Cleaned up RMI coroutine suspension 2020-08-22 19:29:46 +02:00
nathan
0a9ae32595 Simplified RMI Response manager method invocations and access. code polish 2020-08-21 00:31:01 +02:00
nathan
c117c90ee5 RMI proxy objects no longer save "globally", but instead now are saved per connection 2020-08-20 23:28:12 +02:00
nathan
779861b072 Fixed math for rmiID storage. made ASYNC rmi call ID a constant 2020-08-20 22:09:39 +02:00
nathan
698701dfdc rmiID is ALWAYS on the right for packed IDs. Fixed rmiID unsigned operations. WIP suspend proxy invocations 2020-08-20 13:08:36 +02:00
nathan
ee5e9eb24e Updated copyright notices in files 2020-08-19 15:35:45 +02:00
nathan
4299078919 Updated copyright notices in files 2020-08-19 15:25:59 +02:00
nathan
bcc46577aa Added more stack cleanup methods 2020-08-19 15:06:10 +02:00
nathan
f2704218f2 WIP suspending coroutine calls 2020-08-19 14:50:51 +02:00
nathan
0c9949225f Fixed issues with RMI, fixed how rmi-async is handled 2020-08-19 01:34:31 +02:00
nathan
c4bac5116f Updated comments 2020-08-19 01:06:11 +02:00
nathan
71e4f1ee3f Removed unnecessary deprecation 2020-08-18 23:54:17 +02:00
nathan
1232ea0d8b WIP serialization cleanup 2020-08-18 22:38:00 +02:00
nathan
345de4d734 take/return kryo no longer need to suspend 2020-08-18 22:37:08 +02:00
nathan
da5264c542 Fixed RMI short/int packing for negative numbers 2020-08-18 01:49:19 +02:00
nathan
d2caea6645 code cleanup, extracted more complex logic into it's own function 2020-08-17 16:52:46 +02:00
nathan
98c77488b5 Added continuation serializer for when serializing methods that are suspend 2020-08-17 16:51:13 +02:00
nathan
6f8a9c9d05 Cleaned up cached methods, added toString 2020-08-17 16:50:25 +02:00
nathan
da44f7c339 converetd to kotlin 2020-08-17 16:49:00 +02:00
nathan
57d0b2a14e Fixed generics 2020-08-17 16:48:48 +02:00
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