Commit Graph

300 Commits

Author SHA1 Message Date
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