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
nathan
c587088095
Added comments describing how UDP behaves on the server
2018-03-24 00:24:20 +01:00
nathan
f2a28c2a8d
Added ability to enable/disable loading the network native library (if
...
desired...)
2018-03-24 00:16:43 +01:00
nathan
635f97b502
removed debug code
2018-03-22 19:21:28 +01:00
nathan
dbd9c3d10a
changed method order
2018-03-22 19:21:08 +01:00
nathan
ce177adddc
code polish
2018-03-04 15:16:32 +01:00
nathan
442796a451
Moved client responses to client handlers package
2018-03-04 15:16:22 +01:00
nathan
77b587a74f
WIP Zone
2018-03-04 15:15:34 +01:00
nathan
1f2b78da7d
Added name.parent(n) method to get the parent domain of a domain
2018-03-04 13:45:53 +01:00
nathan
49a8743c4e
Added forwarding + caching for queries
2018-03-04 00:03:55 +01:00
nathan
cb4eb7fce4
code polish
2018-03-03 23:20:01 +01:00
nathan
a553404284
Added support to specify A Records for DNS lookups.
2018-03-03 16:18:26 +01:00
nathan
db4fffc893
Added byte[] constructors
2018-03-03 15:53:04 +01:00
nathan
3587933022
Dns server working for single test query issued by command line
2018-03-03 14:00:29 +01:00
nathan
0460c35e2e
Added comments
2018-03-03 13:58:38 +01:00
nathan
ee87d1f792
comment polish
2018-03-03 11:28:22 +01:00
nathan
0c887f5524
Formatting, cleaned up logic
2018-03-02 23:24:10 +01:00
nathan
e20efc5109
log formatting
2018-03-02 23:20:44 +01:00
nathan
f73cb15546
Changed logger name
2018-03-02 23:20:21 +01:00
nathan
23d28c5c8a
added another idea to the docs
2018-02-22 00:49:04 +01:00
nathan
2d2042147c
Fixed issues with missing TCP/UDP types
2018-02-22 00:48:41 +01:00
nathan
42934696f4
Cleaned up how broadcast works
2018-02-22 00:48:27 +01:00
nathan
d021340878
Added a more general ability for datagram sessions -- it's based on the
...
bootstrap implementation instead of a custom "Server" channel.
2018-02-22 00:48:10 +01:00
nathan
b0799c6846
Code polish
2018-02-22 00:42:53 +01:00
nathan
2671a930de
Updated version
2018-02-19 20:22:26 +01:00
nathan
f4e94f2562
Initial implementation of UDP session channels. todo: closing them when
...
inactive (via timeouts, since udp doesn't have sessions). Can now have
3 types of connections, TCP, UDP, and TCP+UDP
2018-02-16 21:03:07 +01:00
nathan
803f9c5fdb
Fixed channel shutdown order
2018-02-14 20:33:52 +01:00
nathan
b26e01cc3d
Moved magic byte stuff for crypto
2018-02-09 23:05:19 +01:00
nathan
763718c1c9
Cleaned up duplicate code in the state connection managers
2018-02-09 23:03:33 +01:00
nathan
73de927bd5
Removed unnecessary flush() commands
2018-02-09 22:37:09 +01:00
nathan
bf681688d0
Fixed Native library issues where it couldn't be loaded and would crash
2018-02-09 22:36:36 +01:00
nathan
d75d4b9a92
Fixed missing KQueue socket stuff for macosx
2018-01-30 16:24:41 +01:00
nathan
4eae019189
WIP DnsServer
2018-01-30 16:24:24 +01:00
nathan
5e729abb81
Code polish
2018-01-30 16:24:07 +01:00
nathan
c7318ccd4c
Moved client handlers into their own package
2018-01-29 00:50:25 +01:00
nathan
ba112edcdf
Formatting
2018-01-29 00:50:08 +01:00
nathan
45bb05f134
Simplified query response type
2018-01-29 00:49:50 +01:00
nathan
fbb043120b
formatting
2018-01-29 00:49:25 +01:00
nathan
12c7c9f0a5
Simplified resolver via DnsResponse->DnsEnvelope for all promise types
2018-01-29 00:49:17 +01:00
nathan
dc54c9b226
Improved memory/gc usage, replaced generic hashmaps with implementation
...
specific versions.
2018-01-28 17:56:36 +01:00
nathan
4d87ba10c1
Improve performance of get operations in Options
2018-01-28 14:16:11 +01:00
nathan
0404ff408d
Reworked RMI so it will not crash anything on the "remote" side. There
...
will be errors emitted, and the "local" side will receive a null object
+ invalid RMI ID.
2018-01-28 10:23:12 +01:00
nathan
05809714cf
Streamlined registering/creating RMI objects. Invalid object IDs are no
...
longer hard-coded to Integer.MAX_VALUE
2018-01-27 23:07:53 +01:00
nathan
205220f8a7
Streamlined creating RMI objects
2018-01-27 23:05:09 +01:00
nathan
dba62c131f
Cleanup for EndPointBase
2018-01-25 17:03:59 +01:00
nathan
799b9db1ef
Cleanup for EndPointBase
2018-01-25 17:02:18 +01:00
nathan
be399c44ea
Updated version
2018-01-25 16:08:14 +01:00
nathan
4cb9d8ad59
Removed a decent amount of unnecessary generics. Fixed a few bugs wrt
...
removing connection managers/listeners. Moved RMI message logic to
clean up how it worked.
2018-01-25 15:48:15 +01:00
nathan
1d2008beef
Added TypeResolver, moved ClassHelper into it's own package so
...
java 1.8 specific code can be compiled separately.
2018-01-24 17:35:46 +01:00
nathan
bfd84aaced
moved ClassHelper
2018-01-24 17:31:22 +01:00
nathan
839ff7e897
Code polish
2018-01-22 15:32:56 +01:00
nathan
b9759ae071
Changed SerializationManager package
2018-01-22 15:32:41 +01:00
nathan
5d2278cba1
Renamed RegistrerRmiSystemListener
2018-01-22 15:31:58 +01:00
nathan
f8de99df31
Fixed issues with getting generic parameter names to support lambda
...
expressions
2018-01-22 15:26:38 +01:00
nathan
ffc2375fe8
Removed and reworked RMI so that local (in-jvm) connections have the
...
exact same behavior as network connections. This was to remove
workarounds present when local in-jvm connections were used
2018-01-22 15:25:36 +01:00
nathan
d6e7affa1e
Explicit synchronize on eventLoopGroups object
2018-01-22 15:23:09 +01:00
nathan
21186fb0c4
Fixed self-defined type listener
2018-01-21 00:15:13 +01:00
nathan
328825d60e
Changed getRemoteObject(class...) to createRemoteObject(class...), so to
...
make it more clear, are we creating a NEW remote object, or getting an
already existing one?
Removed unnecessary IOException throws
2018-01-19 00:30:45 +01:00
nathan
add5b96263
Added getResponseTimeout() to RemoteObject
2018-01-18 20:03:01 +01:00
nathan
d7b7f94c1e
Signature parameter name clarification
2018-01-18 14:19:46 +01:00
nathan
33f8f0843e
Fixed RMI, so now it will properly detect methods in parent
...
classes/interfaces, without having to register them explicitly.
CachedMethods are no longer static, and there are fewer lookups
2018-01-17 21:48:07 +01:00
nathan
3e28b68e16
Added checks for shutdown while trying to connect (or reconnect)
2018-01-17 21:41:20 +01:00
nathan
6d09887de1
Cleaned up "connection refused" error log
2018-01-17 21:33:53 +01:00
nathan
c2d6f66030
Moved pipeline RMI files into rmi package
2018-01-17 21:26:07 +01:00
nathan
ed1fdf4085
Added isShutdown() query
2018-01-15 16:02:09 +01:00
nathan
758a93d1b9
Code polish. Removed waiting for RMI to startup. Changed how
...
abortRegistration works, added MACOSX native event loops, Cleaned up how
waiting for registration works (it's now a CountDownLatch. It's much
more stable now.) Removed duplicate/dead methods. Serialization can now
accept/reject interfaces for object serialization (as a way to permit
"stubs" so class IDs match)
2018-01-14 23:01:09 +01:00
nathan
1d3cd06130
Code cleanup for shutdown and checking if a thread is in a netty event
...
loop
2018-01-14 22:57:18 +01:00
nathan
404e54bff8
Code polish
2018-01-14 18:22:02 +01:00
nathan
72068e07e2
Code polish
2018-01-14 18:18:55 +01:00
nathan
e708d56062
JavaDoc polish
2018-01-14 00:20:54 +01:00
nathan
0395f62ac0
Moved serialization 'stuff' to it's own serialization package
2018-01-14 00:04:43 +01:00
nathan
a474da5c68
Moved isEncrypted() check into KryoExtra, added register(Class<?> clazz,
...
int id);
2018-01-13 23:59:36 +01:00
nathan
b4394e6755
Moved isEncrypted() check into KryoExtra
2018-01-13 23:54:20 +01:00
nathan
d39930a700
Added notes, code polish, connect now times-out instead of waiting
...
forever
2018-01-12 17:18:09 +01:00
nathan
331ca0e36c
Code polish
2018-01-12 16:42:25 +01:00
nathan
4f55f08aa7
Updated version
2018-01-11 23:44:37 +01:00
nathan
ad7e0f44f9
Code polish
2018-01-11 23:44:17 +01:00
nathan
71111c4e3c
WIP DnsServer + Server Handlers
2018-01-11 21:14:46 +01:00
nathan
7921c748ca
Removed dead code
2018-01-11 15:09:05 +01:00
nathan
658d8e96b5
Switched addListener/Resolve call order
2018-01-11 15:03:12 +01:00
nathan
1bfcc61a92
Fixed issues with ensuring appropriate hostName's are FQDN (absolute)
2018-01-11 14:59:33 +01:00
nathan
6d7ccb322e
DnsClient now throws UnknownHostException if there is no DNS resolution.
...
Added a default timeout for DNS queries/etc + method with the timeout
as a parameter
2018-01-11 14:58:35 +01:00
nathan
542092a7b3
Potential fix for bootstrap registration iteration errors
2018-01-11 14:57:32 +01:00
nathan
5b890a623a
Fixed issue with config.host == null (it can never be null -- the "any"
...
address is 0.0.0.0, and we take care of how to bind it to any
internally)
2018-01-11 14:55:55 +01:00
nathan
c44dd03587
Fixed logic with local-channel XOR network-channel. Cleaned up logger
...
access
2018-01-11 14:54:51 +01:00
nathan
b64ca30fc7
Changed parseV6/V6 to public access
2018-01-11 14:52:47 +01:00
nathan
d9c2bcc3e2
Code polish
2018-01-11 14:51:11 +01:00
nathan
9970e452e2
Added @Override annotations
2018-01-11 14:50:38 +01:00
nathan
a9ba4a5b52
Improved performance of byte buf allocator for UDP connections
2018-01-03 22:30:06 +01:00
nathan
5ff2f348a0
Fixed comment typo
2018-01-03 17:27:41 +01:00
nathan
12c628bcae
More clearly specified TCP/UDP port requirements. Code polish
2017-11-08 15:53:22 +01:00
nathan
c33a086465
Cleaned up DnsClient
2017-11-08 11:39:31 +01:00
nathan
34f4ec836d
code polish
2017-11-08 11:38:22 +01:00
nathan
ecce442137
Added back timeout
2017-11-08 11:38:12 +01:00
nathan
5a746d9344
refactor
2017-11-08 11:38:01 +01:00
nathan
873e3e9863
Added more DNS required files
2017-11-08 11:37:46 +01:00
nathan
762215304d
Added netty based DNS resolver. This is VERY similar to the one released
...
officially, but with changes to accept/work with xbill DNS records
(which are more complete than netty's)
2017-11-06 23:20:34 +01:00
nathan
2a66a70a4f
Added xbill derrived DNS - WIP
2017-11-06 16:55:24 +01:00
nathan
b17dfce221
WIP for the DNS server. Restructured to add "endPointBase" so other
...
types of endpoints (ie: the DnsServer) can be supported for
start/shutdown.
2017-10-27 15:00:58 +02:00
nathan
8be291608d
Code polish
2017-10-26 21:13:14 +02:00
nathan
124ef3d42c
Added more options to the DnsClient
2017-10-26 21:00:09 +02:00
nathan
cf27224fec
Updated version number
2017-10-14 14:29:47 +02:00
nathan
e8b47df493
Added try/catch around creating remote objects
2017-10-14 13:57:10 +02:00
nathan
1de96ae769
Abstract methods for clarity
2017-10-14 13:47:34 +02:00
nathan
b4a05689f0
sessionManager notify cleanup
2017-10-13 19:41:00 +02:00
nathan
1af118f468
add/removeConnection -> add/remove
2017-10-13 19:38:46 +02:00
nathan
d0ffd01d5e
ListenerBridge -> Listeners (plural). add/removeListener -> add/remove
2017-10-13 19:38:24 +02:00
nathan
f8a33377d6
Listeners can now be chained
2017-10-13 16:58:33 +02:00
nathan
7237d03407
Added name information to CachedMethod comparator
2017-10-09 17:43:20 +02:00
nathan
16db5a89d0
Updated version
2017-10-03 00:05:29 +02:00
nathan
c884f5167b
Removed UDT, as it has been deprecated and marked for removal upstream.
2017-10-03 00:03:06 +02:00
nathan
e62e4a59c1
Updated version
2017-09-26 12:44:51 +02:00
nathan
fb574189d3
Added server information when starting a connection
2017-09-26 12:42:36 +02:00
nathan
0dcdca8e43
Added address information when successfully listening for connections.
2017-09-26 12:37:00 +02:00
nathan
672a579bc1
Added IP information when server cannot bind to an interface.
2017-09-26 12:35:36 +02:00
nathan
891f8ac25d
Updated client with more specific details when it cannot connect.
2017-09-26 12:26:02 +02:00
nathan
846e2d7760
Updated version
2017-09-25 23:37:38 +02:00
nathan
aa686ef99a
Java 1.6 compatibility fixes
2017-09-25 23:29:17 +02:00
nathan
50f98e834c
Javadoc/comments cleanup
2017-09-25 23:23:10 +02:00
nathan
6c97567d04
RMI cleanup/polish
2017-09-25 23:15:32 +02:00
nathan
f8d71b96dd
RMI working now
2017-09-25 23:06:21 +02:00
nathan
37adecd68a
Code cleanup
2017-09-25 21:56:45 +02:00
nathan
0dc0a0e0c2
Javadoc cleanup
2017-09-25 00:21:04 +02:00
nathan
db850f89bd
Fixed RMI across multiple clients/servers. Code cleanup
2017-09-24 23:30:17 +02:00
nathan
3242574806
Updated deprecated methods
2017-09-23 21:17:19 +02:00
nathan
9d8f381427
Serialization manager is now moved into the Configuration options, so
...
that different network backends (within the same application) can
support multiple serialization schemes.
2017-09-22 16:45:06 +02:00
nathan
c22ac7bd81
Updated version
2017-09-22 15:42:45 +02:00
nathan
55649ec160
javadoc formatting
2017-09-22 13:48:57 +02:00
nathan
1e724c55f9
Fixed package name. The standard package naming
...
convention with CamelCase is consistent across projects.
2017-09-22 09:25:10 +02:00
nathan
ac955c250f
Reverted change to use Version (now uses string again).
2017-09-15 00:47:16 +02:00
nathan
6f1d7f0672
Updated version
2017-08-04 18:27:24 +02:00
nathan
ff79443030
Updated storage API
2017-08-04 17:39:21 +02:00
nathan
fa57d78b55
Updated version
2017-08-02 22:58:55 +02:00
nathan
bd82695d2d
Made changes to the StorageSystem (IOExceptions, default serialization
...
manager, etc). Minor refactoring.
2017-08-02 22:12:50 +02:00
nathan
80aa58b590
Updated version
2017-07-31 22:13:46 +02:00
nathan
8959289b33
Updated versoin
2017-07-30 21:31:13 +02:00
nathan
88bf805f80
Moved NativeLoader to Utilities.
2017-07-30 20:17:29 +02:00
nathan
b8849832ac
Moved Network UDT files to their own project. The Network-UDT project
...
MUST be compiled on Java6, while the Network project MUST be compiled on
Java7. This difference causes problems in the IDE, since one cannot set
different source level version on different directories, but only on
modules.
2017-07-30 20:17:17 +02:00
nathan
a4e7447e48
Formatting
2017-07-30 19:55:42 +02:00
nathan
6080c4fd4d
Revert java 7 changes
2017-07-30 19:54:06 +02:00
nathan
d39f3ea289
Updated UDT to be compilable on Java7.
2017-07-30 19:50:28 +02:00
nathan
2154eeb5a8
Formatting
2017-07-30 19:49:54 +02:00
nathan
3461d511f9
Fixed DNS to work with changes from netty 4.1.13
2017-07-30 11:40:20 +02:00
nathan
f091b7d604
Fixed issues when closing a channel that was already closed.
2017-07-30 11:28:33 +02:00
nathan
8f5558c95c
Updated Version
2017-07-29 23:31:09 +02:00
nathan
734dce719b
Refactored OsType -> OSType
2017-07-23 11:30:52 +02:00
nathan
8a26760af3
Now uses Version instead of String.
2017-07-22 14:52:01 +02:00
nathan
a9e5ebb168
Added TEMP_DIR to OS.
2017-06-26 14:06:07 +02:00
nathan
ba593bbf9e
Moved Random utils into their own class
2017-03-10 17:04:35 +01:00
nathan
8e7d51ead8
Updated version information
2017-02-21 14:43:48 +01:00
nathan
3c8ea1f4d9
Updated Storage API
2017-02-18 23:59:47 +01:00
nathan
7c0d2d0493
Changed Store -> StorageType to make more sense.
2017-02-12 23:21:58 +01:00
nathan
782ca1a8e3
Updated version/readme
2017-02-01 00:53:22 +01:00
nathan
598b675754
Updated version
2016-05-31 02:21:42 +02:00
nathan
f6ebbc1080
Updated version
2016-04-28 16:46:18 +02:00
nathan
7009a2241f
updated version
2016-04-04 17:25:31 +02:00
nathan
dfbd95bcce
Updated version
2016-04-03 21:03:27 +02:00
nathan
76599e370e
Refactored listener dispatch events
...
(connect/disconnect/idle/message-received) so that they are now
interfaces, and the backing implementation uses the single-writer
principle
2016-04-03 18:58:38 +02:00
nathan
55dd4c4d55
Added FastThreadLocal
2016-04-02 19:42:34 +02:00
nathan
3615d6cb72
Code polish, now uses FastThreadLocal
2016-04-02 19:33:09 +02:00
nathan
80ab10df01
Moved channel registration into registration wrapper
2016-04-02 17:00:40 +02:00
nathan
666b391514
Comment polish and better null checks
2016-04-02 16:58:26 +02:00
nathan
ad34679e71
Added ability to add/remove custom connections to the server backed,
...
to allow for custom connection types (such as web-based) that we want
our server to be able to manage + dispatch listeners
2016-03-25 17:54:58 +01:00
nathan
f6522f8b6d
Converted the connection manager (listeners + connection dispatch) to
...
use the singler-writer-principle
2016-03-22 15:50:41 +01:00
nathan
24761bb84b
Updated version
2016-03-20 10:00:26 +01:00
nathan
0d768dd321
KryoExtra no longer depends on concrete 'connection' implementation,
...
now uses crypto + rmi interfaces
2016-03-20 08:02:30 +01:00
nathan
2988ae4bb0
tweaked UDT library dist name
2016-03-20 07:26:58 +01:00
nathan
7af25d29ac
Removed epoll loader (it's now in the DependencyJar builder)
2016-03-20 07:25:15 +01:00
nathan
63d8d06653
Changed UDT dist name to netty-UDT...
2016-03-20 07:23:49 +01:00
nathan
ce4e3bef90
Simplified loading native libraries
2016-03-19 03:05:54 +01:00
nathan
cb6f82dbda
Reverted java7 NIO changes, since classloading fixes for java6 for
...
Netty have been implemented
2016-03-18 16:14:55 +01:00
nathan
aae89891c0
Code polish, by default does not encrypt data sent over a loopback
...
interface, only over remote interfaces.
2016-03-18 16:13:53 +01:00
nathan
7168eaadb7
Cleaned up comments, added isLoopback to client
2016-03-18 16:11:56 +01:00
nathan
9ffc8655bc
Added writeCompressed/readCompressed methods.
2016-03-18 16:04:27 +01:00
nathan
739315afb4
Added java6 compatibility fix
2016-03-18 15:59:53 +01:00
nathan
d78e19ae4c
Added isLoopback(), for knowing if this is a loopback connection
2016-03-18 15:59:21 +01:00
nathan
c1cce753cd
Better localhost usage
2016-03-18 03:48:05 +01:00
nathan
998dc07698
Moved java7 specific NIO API to bottom of class
2016-03-18 03:08:45 +01:00
nathan
a259e9bfd1
Code polish, tweaked how remote key validation works (when we disable
...
it, it becomes WARN instead of ERROR+abort
2016-03-18 03:02:58 +01:00
nathan
50b416593f
Changed local machine ID from 127.0.0.1 -> 0.0.0.0 so loopback
...
connections will work
2016-03-18 03:00:58 +01:00
nathan
1215fce459
clarified init parameters
2016-03-18 02:34:21 +01:00
nathan
2c6212b9e3
tweaked comments
2016-03-18 02:32:06 +01:00
nathan
ee8bb02df6
removed debug messages from shutdown handler
2016-03-18 02:27:59 +01:00
nathan
ceda14e78f
Added comments
2016-03-18 02:27:44 +01:00
nathan
ca28a7d908
Revert java6 NIO compatibility. Netty requires java7 because the
...
classloader cannot load certain classes (because of recursion issues)
2016-03-18 01:21:12 +01:00
nathan
64df20fcdf
Java 6 NIO compatibility fix
2016-03-17 19:57:08 +01:00
nathan
24b844e4e3
Updated version.
2016-03-17 18:09:49 +01:00
nathan
05291d61a3
Fixed issues with client reconnecting (it was flaky)
2016-03-17 02:57:42 +01:00
nathan
fe8e21c449
Now reuses buffers if possible during compression/encryption stage
2016-03-17 00:16:13 +01:00
nathan
a7a3fa6091
Fixed issues when deployed in a diffeerent (non-jar) container.
2016-03-13 20:43:27 +01:00
nathan
b1d4d1fc77
Updated version
2016-03-13 17:37:43 +01:00
nathan
5b68fde15d
Disabled warnings for ChannelActive when used via a LocalChannel
2016-03-13 16:16:13 +01:00
nathan
0d185e4de2
Better extraction and use of UDT natives
2016-03-13 16:08:21 +01:00
nathan
780a0d2bc5
Updated version info
2016-03-13 01:16:24 +01:00
nathan
79ecc1da51
Updated network PropertyStore to be final (it's only intended to be
...
used if there is no other SettingStore available)
2016-03-13 01:11:51 +01:00
nathan
ee75e50377
Updated dependencies, updated version
2016-03-12 12:52:27 +01:00
nathan
1379e18a94
updated version
2016-03-11 04:01:46 +01:00
nathan
1e017804bb
Fixed client reconnect
2016-03-11 00:05:42 +01:00
nathan
537d76bc8f
Changed endpoint.close -> endpoint.closeConnections for clarity on behavior
2016-03-10 23:50:34 +01:00
nathan
17efc50a06
Renamed Store.shutdown -> Store.close
2016-03-10 23:45:34 +01:00
nathan
36d1187105
Changed to curve25519
2016-03-10 23:32:10 +01:00
nathan
e1332ab74d
made serialization manager optional
2016-03-10 23:31:30 +01:00
nathan
71abcbae91
Fixed threading issues with encryption
2016-03-10 17:20:30 +01:00
nathan
58a20b2913
Code polish
2016-03-10 17:19:32 +01:00
nathan
c4fa7253ea
Changed property store to package private
2016-03-10 17:18:46 +01:00
nathan
3ddecfd21f
Changed eventLoopGroup name UDP->DNS, fixed resource leak with DNS response.
2016-03-10 01:26:27 +01:00
nathan
76b577365d
Cleaned up UDT api
2016-03-09 14:51:43 +01:00
nathan
3d86c4d87d
better comments
2016-03-09 14:51:24 +01:00
nathan
a597768c20
removed unnecessary synchronization
2016-03-09 14:48:39 +01:00
nathan
359c84aab4
spacing
2016-03-09 14:05:04 +01:00
nathan
1cf59944fa
Added AES GCM counter IV
2016-03-09 14:03:10 +01:00
nathan
dbea782033
Fixed UDT loading when in IDE
2016-03-09 03:18:59 +01:00
nathan
a82dbf81b5
Implemented counting AES-GCM IV
2016-03-09 03:04:10 +01:00
nathan
dda6086a2c
Better comments
2016-03-09 00:51:54 +01:00
nathan
37224b3097
kryo compression now uses optimized int instead of standard int
2016-03-09 00:49:36 +01:00
nathan
d91ee89102
better comments
2016-03-09 00:48:39 +01:00
nathan
0a2f37c482
Fixed typo in log
2016-03-09 00:48:24 +01:00
nathan
876caf1dc0
Changed RuntimeException to IllegalState exception
2016-03-09 00:47:27 +01:00
nathan
e1942ae03f
Code polish. Removed optional compression (because for small data, it doesn't matter with AES padding)
2016-03-08 03:18:12 +01:00
nathan
9593cfa70a
Moved normal/crypto serialization methods into their own function
2016-03-08 01:09:12 +01:00
nathan
97eff8fe67
Added initial version information
2016-03-07 01:21:47 +01:00
nathan
8fc09609a2
Removed unneeded property
2016-03-07 01:08:47 +01:00
nathan
bdddc540bb
Removed "tool" support from library. It doesn't belong here. Also added @Property annotation to applicable fields
2016-03-07 01:08:30 +01:00
nathan
b1934a5b2d
Updated file licensing
2016-03-07 01:07:37 +01:00
nathan
e1823c0f3b
Fixed issues with using the backing arrays. code polish
2016-03-06 23:56:17 +01:00
nathan
e2f3f3aca7
code polish, cleaned API, better exception throwing
2016-03-06 23:54:50 +01:00
nathan
428e1fc9c1
Moved RmiFieldCache into better data structure (single-writer-principle variant). code polish
2016-03-06 23:54:11 +01:00
nathan
52f5c1688b
Code polish. Changed kryo to pool (needed for nested serialized objects, specifically RMI). Cleaned up API.
2016-03-06 23:53:25 +01:00
nathan
6e72e79d0c
code polish
2016-03-06 23:51:59 +01:00
nathan
c38a6277d9
Cleaned up/polished CachedMethods & Overriding methods
2016-03-06 23:51:50 +01:00
nathan
924adfc6c0
Cleaned up RMI logging
2016-03-06 23:51:06 +01:00
nathan
04bfaf1c70
fixed issue where registration could beat the check. It is more robust now
2016-03-02 01:27:48 +01:00
nathan
48707e6a73
Code polish. Moved comparator to private static final field
2016-03-02 01:26:54 +01:00
nathan
31fdf957b8
Cleaned project hierarchy
2016-03-01 13:35:39 +01:00