3
0
Mirror von https://github.com/PaperMC/Velocity.git synchronisiert 2024-11-17 05:20:14 +01:00

Improve HandshakeSessionHandler#cleanVhost()

Dieser Commit ist enthalten in:
Andrew Steinborn 2019-01-28 00:34:51 -05:00
Ursprung 6eb6c99fa7
Commit 7d4d81fff1
2 geänderte Dateien mit 13 neuen und 1 gelöschten Zeilen

Datei anzeigen

@ -139,7 +139,7 @@ public class HandshakeSessionHandler implements MinecraftSessionHandler {
// If we connect through an SRV record, there will be a period at the end (DNS usually elides // If we connect through an SRV record, there will be a period at the end (DNS usually elides
// this ending octet). // this ending octet).
if (cleaned.endsWith(".")) { if (!cleaned.isEmpty() && cleaned.charAt(cleaned.length() - 1) == '.') {
cleaned = cleaned.substring(0, cleaned.length() - 1); cleaned = cleaned.substring(0, cleaned.length() - 1);
} }
return cleaned; return cleaned;

Datei anzeigen

@ -11,20 +11,32 @@ class HandshakeSessionHandlerTest {
@Test @Test
void cleanVhostHandlesGoodHostname() { void cleanVhostHandlesGoodHostname() {
assertEquals("localhost", cleanVhost("localhost")); assertEquals("localhost", cleanVhost("localhost"));
assertEquals("mc.example.com", cleanVhost("mc.example.com"));
} }
@Test @Test
void cleanVhostHandlesTrailingOctet() { void cleanVhostHandlesTrailingOctet() {
assertEquals("localhost", cleanVhost("localhost.")); assertEquals("localhost", cleanVhost("localhost."));
assertEquals("mc.example.com", cleanVhost("mc.example.com."));
} }
@Test @Test
void cleanVhostHandlesForge() { void cleanVhostHandlesForge() {
assertEquals("localhost", cleanVhost("localhost" + HANDSHAKE_HOSTNAME_TOKEN)); assertEquals("localhost", cleanVhost("localhost" + HANDSHAKE_HOSTNAME_TOKEN));
assertEquals("mc.example.com", cleanVhost("mc.example.com" + HANDSHAKE_HOSTNAME_TOKEN));
} }
@Test @Test
void cleanVhostHandlesOctetsAndForge() { void cleanVhostHandlesOctetsAndForge() {
assertEquals("localhost", cleanVhost("localhost." + HANDSHAKE_HOSTNAME_TOKEN)); assertEquals("localhost", cleanVhost("localhost." + HANDSHAKE_HOSTNAME_TOKEN));
assertEquals("mc.example.com", cleanVhost("mc.example.com." + HANDSHAKE_HOSTNAME_TOKEN));
}
@Test
void cleanVhostHandlesEmptyHostnames() {
assertEquals("", cleanVhost(""));
assertEquals("", cleanVhost(HANDSHAKE_HOSTNAME_TOKEN));
assertEquals("", cleanVhost("."));
assertEquals("", cleanVhost("." + HANDSHAKE_HOSTNAME_TOKEN));
} }
} }