Skip to content

Commit 0f2425f

Browse files
committed
Add Eaglercraft header passthrough
1 parent 350296d commit 0f2425f

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

src/main/java/me/ayunami2000/ayunViaProxyEagUtils/EaglercraftHandler.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io.netty.buffer.ByteBuf;
1212
import io.netty.channel.ChannelHandlerContext;
1313
import io.netty.handler.codec.MessageToMessageCodec;
14+
import io.netty.handler.codec.http.HttpHeaders;
1415
import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame;
1516
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
1617
import io.netty.handler.codec.http.websocketx.WebSocketFrame;
@@ -49,6 +50,7 @@ public ProfileData(String type, byte[] data) {
4950
}
5051
}
5152
public static final AttributeKey<ProfileData> profileDataKey = AttributeKey.newInstance("eagx-profile-data");
53+
public static final AttributeKey<HttpHeaders> httpHeadersKey = AttributeKey.newInstance("eag-http-headers");
5254
private HostAndPort host;
5355
public State state;
5456
public VersionEnum version;
@@ -332,6 +334,7 @@ public void userEventTriggered(final ChannelHandlerContext ctx, final Object evt
332334
return;
333335
}
334336
this.host = HostAndPort.fromString(handshake.requestHeaders().get("Host").replaceAll("__", ".")).withDefaultPort(80);
337+
ctx.channel().attr(httpHeadersKey).set(handshake.requestHeaders());
335338
}
336339
super.userEventTriggered(ctx, evt);
337340
}

src/main/java/me/ayunami2000/ayunViaProxyEagUtils/Main.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,8 @@ public void channelInactive(ChannelHandlerContext ctx) throws Exception {
174174
url.append("/").append(path);
175175
}
176176
URI uri = new URI(url.toString());
177-
HttpHeaders headers = new DefaultHttpHeaders();
177+
HttpHeaders headers = c2p.hasAttr(EaglercraftHandler.httpHeadersKey) ? c2p.attr(EaglercraftHandler.httpHeadersKey).get() : new DefaultHttpHeaders().set(HttpHeaderNames.ORIGIN, "via.shhnowisnottheti.me");
178178
headers.set(HttpHeaderNames.HOST, uri.getHost() + (addPort ? ":" + uri.getPort() : ""));
179-
headers.set(HttpHeaderNames.ORIGIN, "via.shhnowisnottheti.me");
180179
ch.pipeline().addAfter("eag-server-http-codec", "eag-server-http-aggregator", new HttpObjectAggregator(2097152, true));
181180
ch.pipeline().addAfter("eag-server-http-aggregator", "eag-server-ws-compression", WebSocketClientCompressionHandler.INSTANCE);
182181
ch.pipeline().addAfter("eag-server-ws-compression", "eag-server-ws-handshaker", new WebSocketClientProtocolHandler(WebSocketClientHandshakerFactory.newHandshaker(uri, WebSocketVersion.V13, null, true, headers, 2097152)));

0 commit comments

Comments
 (0)