Skip to content

Commit

Permalink
Show proxied maintenance status in ping for forced hosts (#118)
Browse files Browse the repository at this point in the history
  • Loading branch information
alec-jensen authored Mar 24, 2024
1 parent 1f2d0bb commit 1cb35ab
Showing 1 changed file with 24 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@
import eu.kennytv.maintenance.core.proxy.SettingsProxy;
import eu.kennytv.maintenance.velocity.MaintenanceVelocityPlugin;
import eu.kennytv.maintenance.velocity.util.ComponentUtil;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;

public final class ProxyPingListener implements EventHandler<ProxyPingEvent> {
Expand All @@ -37,7 +40,27 @@ public ProxyPingListener(final MaintenanceVelocityPlugin plugin, final SettingsP

@Override
public void execute(final ProxyPingEvent event) {
if (!settings.isMaintenance()) {
Map<String, List<String>> forcedHosts = plugin.getServer().getConfiguration().getForcedHosts();

boolean maintenanceEnabledOnHost = false;

if (event.getConnection().getVirtualHost().isPresent()) {
String host = event.getConnection().getVirtualHost().get().getHostName();

if (forcedHosts.containsKey(host)) {
List<String> forcedHostTargets = forcedHosts.get(host);
Set<String> maintenanceServers = settings.getMaintenanceServers();

for (String forcedHostTarget : forcedHostTargets) {
if (maintenanceServers.contains(forcedHostTarget)) {
maintenanceEnabledOnHost = true;
break;
}
}
}
}

if (!settings.isMaintenance() && !maintenanceEnabledOnHost) {
return;
}

Expand Down

0 comments on commit 1cb35ab

Please sign in to comment.