From b3b505c3e0780d0fcc855674513ff938906566dd Mon Sep 17 00:00:00 2001 From: lwcrosier Date: Mon, 8 Dec 2025 21:32:12 -0500 Subject: [PATCH] Better function for getting reverse proxies --- src/views/HomeView.vue | 46 ++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index 48fa1ef..292e56d 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -60,16 +60,7 @@ import ButtonTest from '../views/ButtonTest.vue'; const apps = this.caddyConfig.apps; const routes = apps.http.servers.srv0.routes; - //let reverse_proxy_array = []; - /* - for (let key in routes) { - - } - */ - //console.log(routes); - //console.log("Filtering Caddy Config"); - //findRps(routes); let rp_dict = searchBaseRoutes(routes); console.log(rp_dict); } @@ -87,14 +78,14 @@ import ButtonTest from '../views/ButtonTest.vue'; // So what we should do: break apart the routes into handlers and matches. First search the handlers to see if you find subroute or rp. // Then match the array of those upstreams with the match value function findReverseProxies(routes) { - let rpArray = []; - for(r_key in routes) { - for (let h_key in routes[r_key].handles) { - if (routes[r_key].handles[h_key].handler === 'reverse_proxy') { - for (let u_key in routes[r_key].handles[h_key].upstreams) { - rpArray.push(routes[r_key].handles[h_key].upstreams[u_key].dial); + for(let r_key in routes) { + for (let h_key in routes[r_key].handle) { + if (routes[r_key].handle[h_key].handler === 'reverse_proxy') { + + for (let u_key in routes[r_key].handle[h_key].upstreams) { + rpArray.push(routes[r_key].handle[h_key].upstreams[u_key].dial); } } } @@ -104,19 +95,26 @@ import ButtonTest from '../views/ButtonTest.vue'; } function searchBaseRoutes(baseRoutes) { - let handles = routes.handle; - let matches = routes.match; + + let rp_dict = {}; - for (let h_key in handles) { - console.log(h_key); - if (handles[h_key] === 'subroute') { - let rp_servers = findReverseProxies(handles[h_key].routes); + for (let r_key in baseRoutes) { + + let handles = baseRoutes[r_key].handle; + let matches = baseRoutes[r_key].match; + + let rp_servers = []; + + for (let h_key in handles) { + if (handles[h_key].handler === 'subroute') { + rp_servers = findReverseProxies(handles[h_key].routes); + } } + rp_dict[ matches[0].host ] = rp_servers; } - - return handles; - + + return rp_dict; } \ No newline at end of file