Commit Graph

834 Commits

Author SHA1 Message Date
md_5
2444dd15ab Fix #1106 - plugins using ssl throwing exceptions 2014-07-10 10:39:58 +10:00
md_5
2dd3d2101d Close #1105 - don't let security manager get replaced 2014-07-09 09:41:19 +10:00
md_5
8ce26e0370 Pass plugin into executor getter for future proofing 2014-07-08 15:53:25 +10:00
md_5
5d1b660e32 Implement Security Manager
This commit adds the basis for the intergration of a security manager into BungeeCord. The goal of the security manager is to prevent plugins from doing potentially dangerous or otherwise undesirable behaviour that may damage the stability of Bungee itself or pose a risk to the user's server.

One common theme in some Bungee plugins, especially those which were written in the very early days, is using Threads and ExecutorServices for scheduling purposes. Not only is this inefficient as there is no use of the thread caching features provided by the scheduler, it is also difficult to track who created which thread. Additionally creating threads not managed by the BungeeCord scheduler poses issues for when|if a plugin reload system is implemented, as these threads cannot be appropriately cleaned up and may continue to leak class references or perhaps even continue executing.

At this stage the SecurityManager is set to warn of prohibited actions, but not block them. For some plugins using external APIs, where usage of an ExecutorService is unavoidable, we have included an Unsafe interface to the scheduler which allows direct access to the underlying ExecutorService, or potentially a compatability wrapper.
2014-07-08 15:22:26 +10:00
md_5
7347daf203 Delay kicks in initial handler.
See source for reasoning
2014-07-08 15:16:22 +10:00
md_5
bb69af5cd0 Disable epoll whilst we try to replicate some issues 2014-06-29 09:22:34 +10:00
Minecrell
a668da76d0 Write log messages with lower levels to the log file. 2014-06-29 09:13:16 +10:00
Jonas Konrad
4ef58d53b1 Fix typo 2014-06-28 13:45:26 +02:00
md_5
a53b63720b Add a comment 2014-06-26 19:24:05 +10:00
md_5
348457f613 Quickly test SO_REUSEADDR 2014-06-26 19:19:11 +10:00
md_5
fbb2f695b0 Show correct error when cannot bind query 2014-06-26 19:08:05 +10:00
RuriRyan
489242b1ef Fixed RemoteQuery, which broke with the Epoll update 2014-06-25 23:29:08 +02:00
md_5
4ac117fb4c Actually include native code, thanks again @normanmaurer 2014-06-25 18:21:59 +10:00
md_5
500b0af782 [Performance] Attempt to use Netty's Epoll implementation on Linux.
This will attempt to make use of Netty's EpollEventLoopGroup and Epoll(Server)SocketChannel when on Linux and the native libraries load correctly. It should bring a large increase in performance and hopefully reliability. Big thanks to the @netty team for implementing this and @normanmaurer for some tips on the support detection.

Feedback is appreciated.
2014-06-25 18:14:50 +10:00
md_5
2b304ecebc Close plugin log handlers on disable 2014-06-24 18:22:35 +10:00
md_5
923aa05d4a Downgrade forced hosts errors to a warning log level 2014-06-24 16:56:24 +10:00
md_5
e54388a5e0 Add matchPlayer API 2014-06-23 17:26:30 +10:00
md_5
59ba644623 Make IP command tabbable - closes #999 2014-06-23 17:16:14 +10:00
maciekmm
4d1f0cbb26 Added getKickedFrom() to ServerKickEvent. 2014-06-22 17:11:27 +10:00
md_5
e849afbb23 Add simple address cache for those with slow or otherwise unresponsive DNS servers.
I wonder when @netty was supposed to add async dns lookups.
2014-06-20 20:04:22 +10:00
Gabscap
f6e41c856c Closing all handlers on stop() 2014-06-20 19:28:01 +10:00
md_5
b167a45690 Revert "Reenable throttle since we only support 1.7+"
This reverts commit f23691df23.
2014-06-13 16:25:53 +10:00
vemacs
31bd836203 Write server name in ServerIP subchannel response.
Behaves similarly to the UUIDOther implementation.
2014-06-11 16:13:32 +10:00
Jonas Konrad
4dce37cd13 Prefix "BungeeCord > " to forwarded MC|Brand messages [Fixes #1038] 2014-06-11 16:12:30 +10:00
md_5
f23691df23 Reenable throttle since we only support 1.7+ 2014-06-11 16:08:33 +10:00
md_5
77f6930280 Mojang allows multiple status queries in a connection, we should too. 2014-06-11 16:07:14 +10:00
md_5
9604a9a31e Show 1.7.9 as supported version 2014-06-11 16:05:07 +10:00
md_5
91989564e5 Add method to get player's locale 2014-06-11 16:03:10 +10:00
md_5
9226df86f0 Lazy init vhost address. 2014-05-31 18:46:35 +10:00
md_5
ad2ff54b76 Bump a few versions, should probably think about exposing the new EPollEventLoop. 2014-05-15 17:07:31 +10:00
md_5
ece641da23 Change lobby to fallback in fallback_lobby translation. 2014-05-03 17:31:19 +10:00
Thinkofdeath
33a098f4ba Merge branch 'vemacs-master' 2014-05-01 11:00:12 +01:00
vemacs
e4e01ccb55 Null check 2014-05-01 10:59:14 +01:00
GunfighterJ
84c7e073e0 Grammar Nazi 2014 2014-04-26 13:44:59 -05:00
Jonas Konrad
a56bbe38b2 toString for BungeeServerInfo 2014-04-22 15:24:18 +02:00
md_5
312a74c5f1 Close #963 - log remote ping errors to console, friendly message to clients. 2014-04-19 19:48:43 +10:00
vemacs
71c86f9f90 Add ServerIP subchannel 2014-04-18 10:33:26 -06:00
Thinkofdeath
6475385f87 Use ProtocolConstants instead of raw protocol numbers 2014-04-16 14:57:09 +01:00
Thinkofdeath
6775b9230c Update Team packet's field names. unknown -> nameTagVisibility, unknown2 -> color 2014-04-16 14:46:48 +01:00
Thinkofdeath
c8e6b6fd7a Add 'Combat Event' to 14w11a's EntityMap 2014-04-16 14:34:30 +01:00
Thinkofdeath
bca3663a1f Add 'Camera' to 14w11a's EntityMap 2014-04-16 14:26:11 +01:00
Thinkofdeath
f71272a1c0 Add 14w11a EntityMap support 2014-04-16 11:56:04 +01:00
Thinkofdeath
ca7c755ecd Split up EntityMap into different protocol versions 2014-04-16 11:14:29 +01:00
md_5
5a638f2290 Enable 14w11 support, changing servers is a bit iffy though due to EntityMap not being complete. 2014-04-16 11:01:41 +10:00
md_5
3715756be7 Update packets for MINECRAFT_14_11_a 2014-04-16 10:48:40 +10:00
md_5
bc2b4db419 Replace literal numbers with usages of the ProtocolConstants class. 2014-04-16 10:18:16 +10:00
Jonas Konrad
e2eba52162 Revert "Revert "Implement Favicon API""
This reverts commit 13decac4b9.
2014-04-15 20:17:26 +10:00
md_5
13decac4b9 Revert "Implement Favicon API"
This reverts commit 18316eb5f8.
2014-04-15 15:08:12 +10:00
md_5
b08f1995f6 Return most recent protocol version to 'unsupported' server lists 2014-04-15 11:08:28 +10:00
Keir Nellyer
a642346a2c Add method to get a connected player via their UUID 2014-04-15 11:07:17 +10:00
Jonas Konrad
18316eb5f8 Implement Favicon API 2014-04-15 11:05:20 +10:00
md_5
3ced0b675d Implement Skin forwarding - YOU MUST UPDATE SPIGOT FIRST 2014-04-15 10:38:15 +10:00
md_5
dc2da29c16 Code format. 2014-04-13 14:15:41 +10:00
Thinkofdeath
3b71a2b570 Fix ping decoding (Fixes #969) 2014-04-13 00:07:11 +01:00
Thinkofdeath
1aa5379030 Handle new clients pinging old versions (Fixes #972 and Fixes #969) 2014-04-12 10:16:58 +01:00
Thinkofdeath
153bca00be Fix 1.7.7 support 2014-04-10 13:34:08 +01:00
Thinkofdeath
747628f40c Remove @RequiredArgsConstructor from PlayerInfoSerializer as the javadoc fails to build with it 2014-04-09 21:01:33 +01:00
Thinkofdeath
bf9521472b Support setting uuid's on ServerPing.PlayerInfo + fix plugins which don't provide a valid uuid. 2014-04-09 20:26:07 +01:00
Thinkofdeath
86ef046544 Pass the protocol version through when using ping pass through 2014-04-09 16:42:08 +01:00
Thinkofdeath
cd518690fd Rewrite the spawn player packet's uuid to support skins on non ip-fowarded servers 2014-04-04 12:14:04 +01:00
Thinkofdeath
1d3adc5317 1.7.6-pre1 Support 2014-04-04 21:42:10 +11:00
Keir Nellyer
13848def72 Return a Users UUID as a UUID object whilst keeping support for returning as a String 2014-04-04 21:35:07 +11:00
md_5
52bf6184c7 Don't disable find by default 2014-03-30 15:53:57 +11:00
md_5
f7a5748464 Delay event loop initialization until after system properties are set. Closes #943 2014-03-29 15:21:04 +11:00
md_5
1bbbfdb0d5 Close #938 - re add our register channel manipulation 2014-03-20 20:12:06 +11:00
Jonas Konrad
92ebce2ec6 Add TabCompleteEvent 2014-03-14 20:51:47 +11:00
kamcio96
9cd7c1ac03 Add ProxyReloadEvent 2014-03-14 20:49:45 +11:00
md_5
924dcaab38 Move default server fallback 2014-03-14 19:29:13 +11:00
Thinkofdeath
49f4dcb5b7 Ensure we have the capacity to resize the buffer 2014-03-13 19:51:46 +00:00
Thinkofdeath
13d679e7d7 Correctly resize the spawn object packet 2014-03-13 19:30:27 +00:00
md_5
575a6b6ea0 Fix some errors related to disabling modules - #890 2014-03-11 15:16:52 +11:00
Thinkofdeath
2a7ad3c2b2 Append/trim extra data for spawn object packets with a 0 id 2014-03-10 19:25:15 +00:00
md_5
00352f585a Revert code which wasn't meant to be commited. 2014-03-10 13:36:17 +11:00
md_5
290e31b4c5 Update some depend versions, leaving netty for a later date when there aren't as many recent changes. 2014-03-10 11:34:35 +11:00
Jonas Konrad
52fbceec54 Fix client disconnects when a server goes down - #886 2014-03-10 11:17:52 +11:00
md_5
4a7f8015e5 Close #918 - use case insensitive lookup for Yaml locations 2014-03-10 11:04:46 +11:00
md-5
003a1973d4 Update CommandEnd javadoc 2014-03-10 09:23:44 +11:00
md_5
eec3c09c32 Tweak ciper messages - closes #905 2014-02-27 16:00:44 +11:00
md_5
565af4d53e Remove switchMutex since its no longer required 2014-02-27 07:32:23 +11:00
md_5
37ed331515 Ensure user's client and server component are both in the same event loop. Probably closes #893 2014-02-26 21:28:04 +11:00
Thinkofdeath
38f12840ca Correct component loop detector 2014-02-21 20:56:10 +00:00
Thinkofdeath
941450b4e4 Detect component loops 2014-02-21 10:13:40 +00:00
md_5
d98ade5a9b Mojang uses "if > 100", therefore the inverse of that is "if <=100" regarding chat length. 2014-02-13 07:25:56 +11:00
md_5
0f24eaeea3 Mojang caps chat to 100, we should too 2014-02-12 19:59:02 +11:00
md_5
a9b2660aa8 Unknown git commit or version = unknown version sig 2014-02-12 19:15:00 +11:00
md-5
b3627652f2 Merge pull request #869 from Cube-Space/permission-api
Added getPermissions() to the CommandSender API
2014-02-09 14:36:15 +11:00
md_5
b5216148d6 Remove a bit of synchronization 2014-02-09 11:02:26 +11:00
Fabian Fassbender
4faf507ad9 Added getPermissions() to the CommandSender API to get a unmodifiable Collection of all Permissions. The ConsoleSender returns an empty Set where as the UserConnection gives its real Permissions. 2014-02-08 14:17:01 +01:00
md_5
9a4f0a6f59 Revert disconnect change. Forgot we use void futures. 2014-02-08 12:42:27 +11:00
md_5
015dc0c65a Dem string typos 2014-02-08 12:21:13 +11:00
md_5
c1b9e9032f Fix typo 2014-02-08 12:20:08 +11:00
md_5
5e5038c839 Fix Java 7 detection - closes #861 2014-02-08 09:40:08 +11:00
md_5
36ea27454d Disable selector rebuild - closes #851 2014-02-08 09:39:45 +11:00
md_5
2eb2953442 Optimize throwing of CancelSendSignal's by storing a single instance. 2014-02-08 09:36:41 +11:00
md_5
4abffa9f24 Optimize / clean up server disconnect method 2014-02-08 09:33:05 +11:00
md_5
f08df9555c Remove dead IP forward code, Mojang aint bringing that one back 2014-02-08 09:19:28 +11:00
Thinkofdeath
4c5689d10e Fix typo in EntityMap 2014-02-04 11:03:12 +00:00
md_5
224db6596e Make console log handler obey Filters. Closes #866 2014-02-04 16:44:53 +11:00
md_5
4fa137a465 Add java property for log date format, closes #764 2014-02-02 12:45:53 +11:00
md_5
0d7ee821d2 Adjust wording - closes #823 2014-02-02 12:43:18 +11:00