Compare commits

...

5 Commits

Author SHA1 Message Date
Outfluencer 708ac50a08
Merge 46fddc4110 into 6e1751733f 2024-04-29 20:09:24 +02:00
Outfluencer 6e1751733f
#3608, #3676: Close connection if HAProxy 2.0 message is a health check 2024-04-29 06:56:18 +10:00
DerFrZocker 6335af840b
SPIGOT-7638: Library loader does not seem to resolve every dependency 2024-04-27 09:25:29 +10:00
Outfluencer 46fddc4110
print disconnect message of InitialHandlers 2023-12-20 15:47:36 +01:00
Outfluencer 8537709045
Set disconnect BaseComponent on disconnect InitialHandler
also optimze the exception handling of InitialHandler
2023-12-20 15:40:39 +01:00
3 changed files with 31 additions and 10 deletions

View File

@ -61,6 +61,11 @@ class LibraryLoader
logger.log( Level.INFO, "Downloading {0}", event.getResource().getRepositoryUrl() + event.getResource().getResourceName() );
}
} );
// SPIGOT-7638: Add system properties,
// since JdkVersionProfileActivator needs 'java.version' when a profile has the 'jdk' element
// otherwise it will silently fail and not resolves the dependencies in the affected pom.
session.setSystemProperties( System.getProperties() );
session.setReadOnly();
this.repositories = repository.newResolutionRepositories( session, Arrays.asList( new RemoteRepository.Builder( "central", "default", "https://repo.maven.apache.org/maven2" ).build() ) );

View File

@ -136,6 +136,8 @@ public class InitialHandler extends PacketHandler implements PendingConnection
@Getter
private boolean transferred;
private UserConnection userCon;
@Getter
private BaseComponent disconnectMessage;
@Override
public boolean shouldHandle(PacketWrapper packet) throws Exception
@ -163,13 +165,11 @@ public class InitialHandler extends PacketHandler implements PendingConnection
@Override
public void exception(Throwable t) throws Exception
{
if ( canSendKickMessage() )
{
disconnect( ChatColor.RED + Util.exception( t ) );
} else
{
ch.close();
}
// if the connection is a login attempt, directly send a Kick with the Exception to the client
// we can't use disconnect() here as the method delays the Kick packet sending by 250ms and the HandlerBoss
// will close the channel before the packet is sent
// also we don't want to print the exception twice
ch.close( canSendKickMessage() ? new Kick( TextComponent.fromLegacy( ChatColor.RED + Util.exception( t ) ) ) : null );
}
@Override
@ -751,7 +751,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection
{
if ( canSendKickMessage() )
{
ch.delayedClose( new Kick( reason ) );
ch.delayedClose( new Kick( this.disconnectMessage = reason ) );
} else
{
ch.close();

View File

@ -60,9 +60,22 @@ public class HandlerBoss extends ChannelInboundHandlerAdapter
channel.markClosed();
handler.disconnected( channel );
if ( !( handler instanceof InitialHandler || handler instanceof PingHandler ) )
if ( !( handler instanceof PingHandler ) )
{
ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has disconnected", handler );
if ( handler instanceof InitialHandler )
{
InitialHandler initialHandler = (InitialHandler) handler;
if ( initialHandler.getDisconnectMessage() != null )
{
ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has disconnected: {1}", new Object[]
{
handler, initialHandler.getDisconnectMessage().toPlainText()
} );
}
} else
{
ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has disconnected", handler );
}
}
}
}
@ -94,6 +107,9 @@ public class HandlerBoss extends ChannelInboundHandlerAdapter
} );
channel.setRemoteAddress( newAddress );
} else
{
channel.close();
}
} finally
{