From 49555c1191a3ef7632115885afc4d8f2622fbece Mon Sep 17 00:00:00 2001 From: Toby Chui Date: Tue, 17 Dec 2024 22:08:32 +0800 Subject: [PATCH] Fixed #430 + Added no response and I'm a Teapot (config file editing only) to default site options --- src/mod/dynamicproxy/Server.go | 22 ++++++++++++++++++++++ src/mod/dynamicproxy/typedef.go | 3 +++ src/web/components/rproot.html | 12 ++++++++++++ 3 files changed, 37 insertions(+) diff --git a/src/mod/dynamicproxy/Server.go b/src/mod/dynamicproxy/Server.go index ce26ffe..baecd05 100644 --- a/src/mod/dynamicproxy/Server.go +++ b/src/mod/dynamicproxy/Server.go @@ -217,5 +217,27 @@ func (h *ProxyHandler) handleRootRouting(w http.ResponseWriter, r *http.Request) } else { w.Write(template) } + case DefaultSite_NoResponse: + //No response. Just close the connection + h.Parent.logRequest(r, false, 444, "root-noresponse", domainOnly) + hijacker, ok := w.(http.Hijacker) + if !ok { + http.Error(w, "Hijacking not supported", http.StatusInternalServerError) + return + } + conn, _, err := hijacker.Hijack() + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + conn.Close() + case DefaultSite_TeaPot: + //I'm a teapot + h.Parent.logRequest(r, false, 418, "root-teapot", domainOnly) + http.Error(w, "I'm a teapot", http.StatusTeapot) + default: + //Unknown routing option. Send empty response + h.Parent.logRequest(r, false, 544, "root-unknown", domainOnly) + http.Error(w, "544 - No Route Defined", 544) } } diff --git a/src/mod/dynamicproxy/typedef.go b/src/mod/dynamicproxy/typedef.go index da6cd28..71f2669 100644 --- a/src/mod/dynamicproxy/typedef.go +++ b/src/mod/dynamicproxy/typedef.go @@ -201,6 +201,9 @@ const ( DefaultSite_ReverseProxy = 1 DefaultSite_Redirect = 2 DefaultSite_NotFoundPage = 3 + DefaultSite_NoResponse = 4 + + DefaultSite_TeaPot = 418 //I'm a teapot ) /* diff --git a/src/web/components/rproot.html b/src/web/components/rproot.html index b1c3883..0c39b43 100644 --- a/src/web/components/rproot.html +++ b/src/web/components/rproot.html @@ -37,6 +37,14 @@ +
+
+ + +
+
@@ -105,6 +113,8 @@ currentDefaultSiteOption = 2; }else if (selectedDefaultSite == "notfound"){ currentDefaultSiteOption = 3; + }else if (selectedDefaultSite == "closeresp"){ + currentDefaultSiteOption = 4; }else{ //Unknown option return; @@ -137,6 +147,8 @@ $("#redirectDomain").val(data.DefaultSiteValue); }else if (proxyType == 3){ $radios.filter('[value=notfound]').prop('checked', true); + }else if (proxyType == 4){ + $radios.filter('[value=closeresp]').prop('checked', true); } updateAvaibleDefaultSiteOptions();