Skip to content

Commit

Permalink
Update RHS.
Browse files Browse the repository at this point in the history
No changes, but some things moved around and I want to be on top of it.
  • Loading branch information
e3ndr committed Feb 1, 2025
1 parent 36fd79d commit 5759cdc
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 24 deletions.
18 changes: 15 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,21 @@

<!-- Http-Server -->
<dependency>
<groupId>co.casterlabs</groupId>
<artifactId>rakurai-http-server</artifactId>
<version>d955b89</version>
<groupId>co.casterlabs.rakurai-http-server</groupId>
<artifactId>core</artifactId>
<version>18af5eb</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>co.casterlabs.rakurai-http-server.proto</groupId>
<artifactId>http</artifactId>
<version>18af5eb</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>co.casterlabs.rakurai-http-server.proto</groupId>
<artifactId>websocket</artifactId>
<version>18af5eb</version>
<scope>compile</scope>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
import co.casterlabs.rhs.HttpServerBuilder;
import co.casterlabs.rhs.HttpStatus.StandardHttpStatus;
import co.casterlabs.rhs.TLSVersion;
import co.casterlabs.rhs.protocol.DropConnectionException;
import co.casterlabs.rhs.protocol.HttpException;
import co.casterlabs.rhs.protocol.exceptions.DropConnectionException;
import co.casterlabs.rhs.protocol.exceptions.HttpException;
import co.casterlabs.rhs.protocol.http.HttpProtocol;
import co.casterlabs.rhs.protocol.http.HttpProtocol.HttpProtoHandler;
import co.casterlabs.rhs.protocol.http.HttpResponse;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import co.casterlabs.katana.router.http.servlets.HttpServlet;
import co.casterlabs.rhs.HttpMethod;
import co.casterlabs.rhs.HttpStatus;
import co.casterlabs.rhs.protocol.http.HeaderValue;
import co.casterlabs.rhs.protocol.HeaderValue;
import co.casterlabs.rhs.protocol.http.HttpResponse;
import co.casterlabs.rhs.protocol.http.HttpSession;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import co.casterlabs.rakurai.json.serialization.JsonParseException;
import co.casterlabs.rakurai.json.validation.JsonValidationException;
import co.casterlabs.rhs.HttpStatus.StandardHttpStatus;
import co.casterlabs.rhs.protocol.http.HeaderValue;
import co.casterlabs.rhs.protocol.HeaderValue;
import co.casterlabs.rhs.protocol.http.HttpResponse;
import co.casterlabs.rhs.protocol.http.HttpSession;
import co.casterlabs.rhs.protocol.websocket.Websocket;
Expand Down Expand Up @@ -86,8 +86,8 @@ public void onOpen(Websocket websocket) throws IOException {

request.append(
String.format(
"%s %s\n\n",
session.method(), session.uri().rawPath
"GET %s\n\n",
session, session.uri().rawPath
)
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,12 @@
import co.casterlabs.rhs.HttpMethod;
import co.casterlabs.rhs.HttpStatus;
import co.casterlabs.rhs.HttpStatus.StandardHttpStatus;
import co.casterlabs.rhs.protocol.http.HeaderValue;
import co.casterlabs.rhs.protocol.HeaderValue;
import co.casterlabs.rhs.protocol.http.HttpResponse;
import co.casterlabs.rhs.protocol.http.HttpResponse.ResponseContent;
import co.casterlabs.rhs.protocol.http.HttpSession;
import co.casterlabs.rhs.protocol.http.Query;
import co.casterlabs.rhs.protocol.uri.Query;
import co.casterlabs.rhs.protocol.uri.SimpleUri;
import co.casterlabs.rhs.protocol.websocket.Websocket;
import co.casterlabs.rhs.protocol.websocket.WebsocketListener;
import co.casterlabs.rhs.protocol.websocket.WebsocketResponse;
Expand Down Expand Up @@ -176,11 +177,11 @@ public static class HostConfiguration {

}

private String transformUrl(HttpSession session, boolean isWebSocket) {
private String transformUrl(FastLogger logger, SimpleUri uri, boolean isWebSocket) {
String url = this.config.proxyUrl;

if (this.config.solveForIp) {
String[] requested = session.uri().host.substring(0, session.uri().host.indexOf('.')).split("-");
String[] requested = uri.host.substring(0, uri.host.indexOf('.')).split("-");

String targetIp;
if (requested.length == 4) {
Expand Down Expand Up @@ -208,24 +209,24 @@ private String transformUrl(HttpSession session, boolean isWebSocket) {
if (this.config.forwardHost) {
// Replace the proxyUrl's host with the session's host. Look at the above DNS
// logic to see what this does.
url = url.replaceFirst(this.proxyUrlHost, session.uri().host);
session.logger().debug("Rewrote %s to %s, keep this in mind for the following messages.", this.proxyUrlHost, session.uri().host);
url = url.replaceFirst(this.proxyUrlHost, uri.host);
logger.debug("Rewrote %s to %s, keep this in mind for the following messages.", this.proxyUrlHost, uri.host);
}

if (this.config.includePath) {
String append;

if (this.config.proxyPath == null) {
append = session.uri().path;
append = uri.path;
} else {
append = session.uri().path.replace(this.config.proxyPath.replace(".*", ""), "");
append = uri.path.replace(this.config.proxyPath.replace(".*", ""), "");
}

if (session.uri().query != Query.EMPTY) {
append += '?' + session.uri().query.raw;
if (uri.query != Query.EMPTY) {
append += '?' + uri.query.raw;
}

session.logger().debug("%s -> %s%s", url, url, append);
logger.debug("%s -> %s%s", url, url, append);

url += append;
}
Expand All @@ -250,7 +251,7 @@ public boolean matchHttp(HttpSession session, HttpRouter router) {

@Override
public HttpResponse serveHttp(HttpSession session, HttpRouter router) {
final String url = this.transformUrl(session, false);
final String url = this.transformUrl(session.logger(), session.uri(), false);

session.logger().debug("Final proxy url: %s", url);
Request.Builder builder = new Request.Builder().url(url);
Expand Down Expand Up @@ -370,7 +371,7 @@ public boolean matchWebsocket(WebsocketSession session, HttpRouter router) {
@SneakyThrows
@Override
public WebsocketResponse serveWebsocket(WebsocketSession session, HttpRouter router) {
final String url = this.transformUrl(session, true);
final String url = this.transformUrl(session.logger(), session.uri(), true);

session.logger().debug("Final proxy url: %s", url);
URI uri = URI.create(url);
Expand Down Expand Up @@ -469,7 +470,7 @@ public RemoteWebSocketConnection(URI serverUri, WebsocketSession session, Promis
headers.put("Host", session.uri().host);
}

this.socket = new WebSocketClient(serverUri, headers, session.protocols());
this.socket = new WebSocketClient(serverUri, headers, session.acceptedProtocols());
this.socket.setListener(this);
this.socket.setThreadFactory(Thread.ofVirtual().factory());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import co.casterlabs.rhs.HttpMethod;
import co.casterlabs.rhs.HttpStatus;
import co.casterlabs.rhs.HttpStatus.StandardHttpStatus;
import co.casterlabs.rhs.protocol.http.HeaderValue;
import co.casterlabs.rhs.protocol.HeaderValue;
import co.casterlabs.rhs.protocol.http.HttpResponse;
import co.casterlabs.rhs.protocol.http.HttpSession;
import co.casterlabs.rhs.protocol.websocket.Websocket;
Expand Down

0 comments on commit 5759cdc

Please sign in to comment.