fix(portal): Optimize get_vhosts RPC method for 191 vhosts

- Rewrote method_get_vhosts() to use single-pass awk parsing
- Reduced execution time from 30+ seconds timeout to 0.24 seconds
- Added arm, armada, files42 routes to mitmproxy config

The previous implementation made 4 UCI calls per vhost (764 total)
causing the luci-tree page to timeout. New implementation parses
uci show output once with awk.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
CyberMind-FR 2026-02-26 12:27:39 +01:00
parent e5e1151ffb
commit 40fcba797f
2 changed files with 682 additions and 257 deletions

View File

@ -1,238 +1,630 @@
{
"devel.cybermind.fr": ["127.0.0.1", 8907],
"crt.cybermind.fr": ["192.168.255.1", 8503],
"gandalf.maegia.tv": ["127.0.0.1", 8901],
"c3box.maegia.tv": ["192.168.255.1", 8902],
"devel.maegia.tv": ["127.0.0.1", 8900],
"cyberzine.maegia.tv": ["127.0.0.1", 8903],
"play.maegia.tv": ["192.168.255.1", 8501],
"feed.maegia.tv": ["192.168.255.1", 8081],
"slides.maegia.tv": ["127.0.0.1", 8905],
"sliders.maegia.tv": ["127.0.0.1", 8904],
"live.maegia.tv": ["127.0.0.1", 8906],
"status.maegia.tv": ["127.0.0.1", 8908],
"bw.maegia.tv": ["192.168.255.1", 8909],
"jellyfin.secubox.local": ["192.168.255.31", 8096],
"media.maegia.tv": ["192.168.255.31", 8096],
"gk2.maegia.tv": ["127.0.0.1", 8910],
"coin.maegia.tv": ["127.0.0.1", 8911],
"halt.maegia.tv": ["127.0.0.1", 8912],
"localai.secubox.local": ["127.0.0.1", 8091],
"localai.secubox.in": ["127.0.0.1", 8091],
"gk2.secubox.in": ["192.168.255.1", 8950],
"evolution.gk2.secubox.in": ["192.168.255.1", 8510],
"c3box.sblocal": ["192.168.255.1", 8902],
"evolution.sblocal": ["192.168.255.1", 8510],
"control.gk2.secubox.in": ["192.168.255.1", 8511],
"control.sblocal": ["192.168.255.1", 8511],
"fabric.gk2.secubox.in": ["192.168.255.1", 8520],
"lldh.gk2.secubox.in": ["192.168.255.1", 8914],
"lldh.ganimed.fr": ["192.168.255.1", 8914],
"oracle.ganimed.fr": ["127.0.0.1", 8915],
"press.cybermood.eu": ["127.0.0.1", 8916],
"presse.cybermood.eu": ["127.0.0.1", 8916],
".gk2.secubox.in": ["192.168.255.1", 4000],
"comic.secubox.in": ["127.0.0.1", 8918],
"console.gk2.secubox.in": ["192.168.255.1", 8081],
"console.gk2.sb.local": ["192.168.255.1", 8081],
"control.gk2.secubox.in": ["192.168.255.1", 8081],
"control.gk2.sb.local": ["192.168.255.1", 8081],
"glances.gk2.secubox.in": ["192.168.255.1", 61208],
"glances.gk2.sb.local": ["192.168.255.1", 61208],
"play.gk2.secubox.in": ["192.168.255.1", 8501],
"play.gk2.sb.local": ["192.168.255.1", 8501],
"how2.maegia.tv": ["192.168.255.1", 8919],
"wanted.gk2.secubox.in": ["127.0.0.1", 8920],
"eval.gk2.secubox.in": ["127.0.0.1", 8921],
"bazi.gk2.secubox.in": ["192.168.255.1", 8509],
"geo.gk2.secubox.in": ["127.0.0.1", 8922],
"gondwana.gk2.secubox.in": ["127.0.0.1", 8923],
"social.gk2.secubox.in": ["192.168.255.1", 8484],
"client.gk2.secubox.in": ["192.168.255.1", 4002],
"clock.gk2.secubox.in": ["127.0.0.1", 8924],
"photocloud.gk2.secubox.in": ["192.168.255.1", 8526],
"sdlc.gk2.secubox.in": ["127.0.0.1", 8925],
"gk2.eu": ["127.0.0.1", 8926],
"money.gk2.secubox.in": ["127.0.0.1", 8927],
"apr.gk2.secubox.in": ["127.0.0.1", 8928],
"psy.gk2.secubox.in": ["127.0.0.1", 8929],
"confid.gk2.secubox.in": ["127.0.0.1", 8930],
"tube.gk2.secubox.in": ["192.168.255.1", 9001],
"flash.gk2.secubox.in": ["127.0.0.1", 8931],
"generix.gk2.secubox.in": ["192.168.255.1", 8528],
"sa.gk2.secubox.in": ["127.0.0.1", 8933],
"ab.gk2.secubox.in": ["127.0.0.1", 8934],
"fb.gk2.secubox.in": ["127.0.0.1", 8935],
"fwhs.gk2.secubox.in": ["127.0.0.1", 8936],
"raid.gk2.secubox.in": ["127.0.0.1", 8937],
"cloud.gk2.secubox.in": ["192.168.255.1", 8080],
"mku.gk2.secubox.in": ["127.0.0.1", 8932],
"meet.gk2.secubox.in": ["127.0.0.1", 9088],
"hq.secubox.in": ["192.168.255.1", 8081],
"relay.gk2.secubox.in": ["192.168.255.1", 8891],
"tube.gk2.secubox.in": ["192.168.255.1", 9001],
"meet.gk2.secubox.in": ["127.0.0.1", 9088],
"jellyfin.gk2.secubox.in": ["192.168.255.31", 8096],
"social.gk2.secubox.in": ["192.168.255.1", 8484],
"xmpp.gk2.secubox.in": ["127.0.0.1", 5280],
"git.gk2.secubox.in": ["192.168.255.1", 3001],
"webmail.secubox.in": ["192.168.255.1", 8027],
"cloud.secubox.in": ["192.168.255.1", 8080],
"tube.secubox.in": ["192.168.255.1", 9001],
"meet.secubox.in": ["127.0.0.1", 9088],
"git.secubox.in": ["192.168.255.1", 3001],
"social.secubox.in": ["192.168.255.1", 8484],
"jellyfin.secubox.in": ["192.168.255.31", 8096],
"xmpp.secubox.in": ["127.0.0.1", 5280],
"hub.secubox.in": ["192.168.255.1", 8950],
"portal.secubox.in": ["192.168.255.1", 8950],
"cf.gk2.secubox.in": ["192.168.255.1", 8510],
"pub.gk2.secbox.in": ["127.0.0.1", 8938],
"pub.gk2.secubox.in": ["127.0.0.1", 8938],
"lunaquar.gk2.secubox.in": ["127.0.0.1", 8939],
"equa.gk2.secubox.in": ["127.0.0.1", 8940],
"game.gk2.secubox.in": ["127.0.0.1", 8941],
"virus.gk2.secubox.in": ["127.0.0.1", 8942],
"survie.gk2.secubox.in": ["127.0.0.1", 8943],
"bgp.gk2.secubox.in": ["127.0.0.1", 8944],
"cpi.gk2.secubox.in": ["127.0.0.1", 8946],
"cgv.gk2.secubox.in": ["127.0.0.1", 8945],
"portal.gk2.secubox.in": ["192.168.255.1", 8950],
"stream.gk2.secubox.in": ["127.0.0.1", 8000],
"bdgse.gk2.secubox.in": ["127.0.0.1", 8955],
"lrh.gk2.secubox.in": ["127.0.0.1", 8952],
"bcf.gk2.secubox.in": ["127.0.0.1", 8953],
"camus.gk2.secubox.in": ["127.0.0.1", 8951],
"holo.gk2.secubox.in": ["127.0.0.1", 8947],
"fm.gk2.secubox.in": ["127.0.0.1", 8956],
"dgse.gk2.secubox.in": ["127.0.0.1", 8954],
"hub.gk2.secubox.in": ["192.168.255.1", 8950],
"dcb.gk2.secubox.in": ["127.0.0.1", 8957],
"signaling.gk2.secubox.in": ["192.168.255.1", 8082],
"punk.gk2.secubox.in": ["192.168.255.1", 8948],
"zoom.gk2.secubox.in": ["192.168.255.1", 8962],
"rtdah.gk2.secubox.in": ["192.168.255.1", 8963],
"srtc.gk2.secubox.in": ["192.168.255.1", 8964],
"zkp.gk2.secubox.in": ["192.168.255.1", 8965],
"proofit.gk2.secubox.in": ["192.168.255.1", 8966],
"rcve.gk2.secubox.in": ["192.168.255.1", 8967],
"pent.gk2.secubox.in": ["192.168.255.1", 8968],
"webmail.gk2.secubox.in": ["192.168.255.1", 8027],
"penbd.gk2.secubox.in": ["192.168.255.1", 8969],
"rfg.gk2.secubox.in": ["192.168.255.1", 8970],
"form.gk2.secubox.in": ["192.168.255.1", 8971],
"facb.gk2.secubox.in": ["192.168.255.1", 8972],
"plainte.gk2.secubox.in": ["192.168.255.1", 8973],
"sosint.gk2.secubox.in": ["192.168.255.1", 8974],
"aea.gk2.secubox.in": ["192.168.255.1", 8975],
"siggk.gk2.secubox.in": ["192.168.255.1", 8976],
"devel.maegia.tv": ["127.0.0.1", 8900],
"gandalf.maegia.tv": ["127.0.0.1", 8901],
"c3box.maegia.tv": ["127.0.0.1", 8902],
"cyberzine.maegia.tv": ["127.0.0.1", 8903],
"slides.maegia.tv": ["127.0.0.1", 8905],
"sliders.maegia.tv": ["127.0.0.1", 8904],
"live.maegia.tv": ["127.0.0.1", 8906],
"devel.cybermind.fr": ["127.0.0.1", 8907],
"status.maegia.tv": ["127.0.0.1", 8908],
"bw.maegia.tv": ["127.0.0.1", 8909],
"gk2.maegia.tv": ["127.0.0.1", 8910],
"coin.maegia.tv": ["127.0.0.1", 8911],
"halt.maegia.tv": ["127.0.0.1", 8912],
"oracle.ganimed.fr": ["127.0.0.1", 8915],
"press.cybermood.eu": ["127.0.0.1", 8916],
"comic.secubox.in": ["127.0.0.1", 8918],
"wanted.gk2.secubox.in": ["127.0.0.1", 8920],
"eval.gk2.secubox.in": ["127.0.0.1", 8921],
"geo.gk2.secubox.in": ["127.0.0.1", 8922],
"gondwana.gk2.secubox.in": ["127.0.0.1", 8923],
"clock.gk2.secubox.in": ["127.0.0.1", 8924],
"sdlc.gk2.secubox.in": ["127.0.0.1", 8925],
"gk2.eu": ["127.0.0.1", 8926],
"money.gk2.secubox.in": ["127.0.0.1", 8927],
"apr.gk2.secubox.in": ["127.0.0.1", 8928],
"psy.gk2.secubox.in": ["127.0.0.1", 8929],
"confid.gk2.secubox.in": ["127.0.0.1", 8930],
"flash.gk2.secubox.in": ["127.0.0.1", 8931],
"sa.gk2.secubox.in": ["127.0.0.1", 8933],
"ab.gk2.secubox.in": ["127.0.0.1", 8934],
"fb.gk2.secubox.in": ["127.0.0.1", 8935],
"fwhs.gk2.secubox.in": ["127.0.0.1", 8936],
"raid.gk2.secubox.in": ["127.0.0.1", 8937],
"mku.gk2.secubox.in": ["127.0.0.1", 8932],
"pub.gk2.secbox.in": ["127.0.0.1", 8938],
"lunaquar.gk2.secubox.in": ["127.0.0.1", 8939],
"equa.gk2.secubox.in": ["127.0.0.1", 8940],
"game.gk2.secubox.in": ["127.0.0.1", 8941],
"virus.gk2.secubox.in": ["127.0.0.1", 8942],
"survie.gk2.secubox.in": ["127.0.0.1", 8943],
"bgp.gk2.secubox.in": ["127.0.0.1", 8944],
"cgv.gk2.secubox.in": ["127.0.0.1", 8945],
"cpi.gk2.secubox.in": ["127.0.0.1", 8946],
"holo.gk2.secubox.in": ["127.0.0.1", 8947],
"dgse.gk2.secubox.in": ["127.0.0.1", 8954],
"camus.gk2.secubox.in": ["127.0.0.1", 8951],
"bdgse.gk2.secubox.in": ["127.0.0.1", 8955],
"lrh.gk2.secubox.in": ["127.0.0.1", 8952],
"bcf.gk2.secubox.in": ["127.0.0.1", 8953],
"fm.gk2.secubox.in": ["127.0.0.1", 8956],
"dcb.gk2.secubox.in": ["127.0.0.1", 8957],
"boom.gk2.secubox.in": ["127.0.0.1", 8958],
"punk.gk2.secubox.in": ["127.0.0.1", 8948],
"ccom.gk2.secubox.in": ["127.0.0.1", 8949],
"tuto.gk2.secubox.in": ["127.0.0.1", 8959],
"tdah.gk2.secubox.in": ["127.0.0.1", 8960],
"zlib.gk2.secubox.in": ["127.0.0.1", 8961],
"zoom.gk2.secubox.in": ["127.0.0.1", 8962],
"rtdah.gk2.secubox.in": ["127.0.0.1", 8963],
"srtc.gk2.secubox.in": ["127.0.0.1", 8964],
"zkp.gk2.secubox.in": ["127.0.0.1", 8965],
"proofit.gk2.secubox.in": ["127.0.0.1", 8966],
"rcve.gk2.secubox.in": ["127.0.0.1", 8967],
"pent.gk2.secubox.in": ["127.0.0.1", 8968],
"penbd.gk2.secubox.in": ["127.0.0.1", 8969],
"rfg.gk2.secubox.in": ["127.0.0.1", 8970],
"form.gk2.secubox.in": ["127.0.0.1", 8971],
"facb.gk2.secubox.in": ["127.0.0.1", 8972],
"plainte.gk2.secubox.in": ["127.0.0.1", 8973],
"sosint.gk2.secubox.in": ["127.0.0.1", 8974],
"aea.gk2.secubox.in": ["127.0.0.1", 8975],
"siggk.gk2.secubox.in": ["127.0.0.1", 8976],
"pix.gk2.secubox.in": ["192.168.255.1", 8506],
"wuyun.gk2.secubox.in": ["192.168.255.1", 8503],
"yling.gk2.secubox.in": ["192.168.255.1", 8501],
"bweep.gk2.secubox.in": ["192.168.255.1", 8507],
"bweek.gk2.secubox.in": ["192.168.255.1", 8508],
"bazi.gk2.secubox.in": ["192.168.255.1", 8509],
"BASIC.gk2.secubox.in": ["192.168.255.1", 8509],
"secubox_evolution.gk2.secubox.in": ["192.168.255.1", 8510],
"secubox_control.gk2.secubox.in": ["192.168.255.1", 8511],
"play.gk2.secubox.in": ["192.168.255.1", 8515],
"play.gk2.sb.local": ["192.168.255.1", 8515],
"console.gk2.secubox.in": ["192.168.255.1", 8515],
"hermes.gk2.secubox.in": ["192.168.255.1", 8512],
"fabric.gk2.secubox.in": ["192.168.255.1", 8520],
"fabricator.gk2.secubox.in": ["192.168.255.1", 8520],
"yijing360.gk2.secubox.in": ["192.168.255.1", 8521],
"ftvm.gk2.secubox.in": ["192.168.255.1", 8522],
"cpf.gk2.secubox.in": ["192.168.255.1", 8523],
"pdf.gk2.secubox.in": ["192.168.255.1", 8524],
"papyrus.gk2.secubox.in": ["192.168.255.1", 8525],
"pc.gk2.secubox.in": ["192.168.255.1", 8526],
"osint.gk2.secubox.in": ["192.168.255.1", 8527],
"swg.gk2.secubox.in": ["192.168.255.1", 8513],
"generix.gk2.secubox.in": ["192.168.255.1", 8528],
"generik.gk2.secubox.in": ["192.168.255.1", 8528],
"prompt.gk2.secubox.in": ["192.168.255.1", 8502],
"fanzine.gk2.secubox.in": ["192.168.255.1", 8504],
"gk2.secubox.in": ["192.168.255.1", 8505],
"hub.secubox.in": ["192.168.255.1", 8505],
"portal.secubox.in": ["192.168.255.1", 8505],
"portal.gk2.secubox.in": ["192.168.255.1", 8505],
"hub.gk2.secubox.in": ["192.168.255.1", 8505],
"gk2.gk2.secubox.in": ["192.168.255.1", 8505],
"cybfan.gk2.secubox.in": ["192.168.255.1", 8529],
"tam.gk2.secubox.in": ["192.168.255.1", 8514],
"files_40.gk2.secubox.in": ["192.168.255.1", 8516],
"files_42.gk2.secubox.in": ["192.168.255.1", 8517]
"devel.cybermind.fr": [
"127.0.0.1",
8907
],
"crt.cybermind.fr": [
"192.168.255.1",
8503
],
"gandalf.maegia.tv": [
"127.0.0.1",
8901
],
"c3box.maegia.tv": [
"127.0.0.1",
8902
],
"devel.maegia.tv": [
"127.0.0.1",
8900
],
"cyberzine.maegia.tv": [
"127.0.0.1",
8903
],
"play.maegia.tv": [
"192.168.255.1",
8501
],
"feed.maegia.tv": [
"192.168.255.1",
8081
],
"slides.maegia.tv": [
"127.0.0.1",
8905
],
"sliders.maegia.tv": [
"127.0.0.1",
8904
],
"live.maegia.tv": [
"127.0.0.1",
8906
],
"status.maegia.tv": [
"127.0.0.1",
8908
],
"bw.maegia.tv": [
"127.0.0.1",
8909
],
"jellyfin.secubox.local": [
"192.168.255.31",
8096
],
"media.maegia.tv": [
"192.168.255.31",
8096
],
"gk2.maegia.tv": [
"127.0.0.1",
8910
],
"coin.maegia.tv": [
"127.0.0.1",
8911
],
"halt.maegia.tv": [
"127.0.0.1",
8912
],
"localai.secubox.local": [
"127.0.0.1",
8091
],
"localai.secubox.in": [
"127.0.0.1",
8091
],
"gk2.secubox.in": [
"192.168.255.1",
8505
],
"evolution.gk2.secubox.in": [
"192.168.255.1",
8510
],
"c3box.sblocal": [
"192.168.255.1",
8902
],
"evolution.sblocal": [
"192.168.255.1",
8510
],
"control.gk2.secubox.in": [
"192.168.255.1",
8081
],
"control.sblocal": [
"192.168.255.1",
8511
],
"fabric.gk2.secubox.in": [
"192.168.255.1",
8520
],
"lldh.gk2.secubox.in": [
"192.168.255.1",
8914
],
"lldh.ganimed.fr": [
"192.168.255.1",
8914
],
"oracle.ganimed.fr": [
"127.0.0.1",
8915
],
"press.cybermood.eu": [
"127.0.0.1",
8916
],
"presse.cybermood.eu": [
"127.0.0.1",
8916
],
".gk2.secubox.in": [
"192.168.255.1",
4000
],
"comic.secubox.in": [
"127.0.0.1",
8918
],
"console.gk2.secubox.in": [
"192.168.255.1",
8515
],
"console.gk2.sb.local": [
"192.168.255.1",
8081
],
"control.gk2.sb.local": [
"192.168.255.1",
8081
],
"glances.gk2.secubox.in": [
"192.168.255.1",
61208
],
"glances.gk2.sb.local": [
"192.168.255.1",
61208
],
"play.gk2.secubox.in": [
"192.168.255.1",
8515
],
"play.gk2.sb.local": [
"192.168.255.1",
8515
],
"how2.maegia.tv": [
"192.168.255.1",
8919
],
"wanted.gk2.secubox.in": [
"127.0.0.1",
8920
],
"eval.gk2.secubox.in": [
"127.0.0.1",
8921
],
"bazi.gk2.secubox.in": [
"192.168.255.1",
8509
],
"geo.gk2.secubox.in": [
"127.0.0.1",
8922
],
"gondwana.gk2.secubox.in": [
"127.0.0.1",
8923
],
"social.gk2.secubox.in": [
"192.168.255.1",
8484
],
"client.gk2.secubox.in": [
"192.168.255.1",
4002
],
"clock.gk2.secubox.in": [
"127.0.0.1",
8924
],
"photocloud.gk2.secubox.in": [
"192.168.255.1",
8526
],
"sdlc.gk2.secubox.in": [
"127.0.0.1",
8925
],
"gk2.eu": [
"127.0.0.1",
8926
],
"money.gk2.secubox.in": [
"127.0.0.1",
8927
],
"apr.gk2.secubox.in": [
"127.0.0.1",
8928
],
"psy.gk2.secubox.in": [
"127.0.0.1",
8929
],
"confid.gk2.secubox.in": [
"127.0.0.1",
8930
],
"tube.gk2.secubox.in": [
"192.168.255.1",
9001
],
"flash.gk2.secubox.in": [
"127.0.0.1",
8931
],
"generix.gk2.secubox.in": [
"192.168.255.1",
8528
],
"sa.gk2.secubox.in": [
"127.0.0.1",
8933
],
"ab.gk2.secubox.in": [
"127.0.0.1",
8934
],
"fb.gk2.secubox.in": [
"127.0.0.1",
8935
],
"fwhs.gk2.secubox.in": [
"127.0.0.1",
8936
],
"raid.gk2.secubox.in": [
"127.0.0.1",
8937
],
"cloud.gk2.secubox.in": [
"192.168.255.1",
8080
],
"mku.gk2.secubox.in": [
"127.0.0.1",
8932
],
"meet.gk2.secubox.in": [
"127.0.0.1",
9088
],
"hq.secubox.in": [
"192.168.255.1",
8081
],
"relay.gk2.secubox.in": [
"192.168.255.1",
8891
],
"jellyfin.gk2.secubox.in": [
"192.168.255.31",
8096
],
"xmpp.gk2.secubox.in": [
"127.0.0.1",
5280
],
"git.gk2.secubox.in": [
"192.168.255.1",
3001
],
"webmail.secubox.in": [
"192.168.255.1",
8027
],
"cloud.secubox.in": [
"192.168.255.1",
8080
],
"tube.secubox.in": [
"192.168.255.1",
9001
],
"meet.secubox.in": [
"127.0.0.1",
9088
],
"git.secubox.in": [
"192.168.255.1",
3001
],
"social.secubox.in": [
"192.168.255.1",
8484
],
"jellyfin.secubox.in": [
"192.168.255.31",
8096
],
"xmpp.secubox.in": [
"127.0.0.1",
5280
],
"hub.secubox.in": [
"192.168.255.1",
8505
],
"portal.secubox.in": [
"192.168.255.1",
8505
],
"cf.gk2.secubox.in": [
"192.168.255.1",
8510
],
"pub.gk2.secbox.in": [
"127.0.0.1",
8938
],
"pub.gk2.secubox.in": [
"127.0.0.1",
8938
],
"lunaquar.gk2.secubox.in": [
"127.0.0.1",
8939
],
"equa.gk2.secubox.in": [
"127.0.0.1",
8940
],
"game.gk2.secubox.in": [
"127.0.0.1",
8941
],
"virus.gk2.secubox.in": [
"127.0.0.1",
8942
],
"survie.gk2.secubox.in": [
"127.0.0.1",
8943
],
"bgp.gk2.secubox.in": [
"127.0.0.1",
8944
],
"cpi.gk2.secubox.in": [
"127.0.0.1",
8946
],
"cgv.gk2.secubox.in": [
"127.0.0.1",
8945
],
"portal.gk2.secubox.in": [
"192.168.255.1",
8505
],
"stream.gk2.secubox.in": [
"127.0.0.1",
8000
],
"bdgse.gk2.secubox.in": [
"127.0.0.1",
8955
],
"lrh.gk2.secubox.in": [
"127.0.0.1",
8952
],
"bcf.gk2.secubox.in": [
"127.0.0.1",
8953
],
"camus.gk2.secubox.in": [
"127.0.0.1",
8951
],
"holo.gk2.secubox.in": [
"127.0.0.1",
8947
],
"fm.gk2.secubox.in": [
"127.0.0.1",
8956
],
"dgse.gk2.secubox.in": [
"127.0.0.1",
8954
],
"hub.gk2.secubox.in": [
"192.168.255.1",
8505
],
"dcb.gk2.secubox.in": [
"127.0.0.1",
8957
],
"signaling.gk2.secubox.in": [
"192.168.255.1",
8082
],
"punk.gk2.secubox.in": [
"127.0.0.1",
8948
],
"zoom.gk2.secubox.in": [
"127.0.0.1",
8962
],
"rtdah.gk2.secubox.in": [
"127.0.0.1",
8963
],
"srtc.gk2.secubox.in": [
"127.0.0.1",
8964
],
"zkp.gk2.secubox.in": [
"127.0.0.1",
8965
],
"proofit.gk2.secubox.in": [
"127.0.0.1",
8966
],
"rcve.gk2.secubox.in": [
"127.0.0.1",
8967
],
"pent.gk2.secubox.in": [
"127.0.0.1",
8968
],
"webmail.gk2.secubox.in": [
"192.168.255.1",
8027
],
"penbd.gk2.secubox.in": [
"127.0.0.1",
8969
],
"rfg.gk2.secubox.in": [
"127.0.0.1",
8970
],
"form.gk2.secubox.in": [
"127.0.0.1",
8971
],
"facb.gk2.secubox.in": [
"127.0.0.1",
8972
],
"plainte.gk2.secubox.in": [
"127.0.0.1",
8973
],
"sosint.gk2.secubox.in": [
"127.0.0.1",
8974
],
"aea.gk2.secubox.in": [
"127.0.0.1",
8975
],
"siggk.gk2.secubox.in": [
"127.0.0.1",
8976
],
"boom.gk2.secubox.in": [
"127.0.0.1",
8958
],
"ccom.gk2.secubox.in": [
"127.0.0.1",
8949
],
"tuto.gk2.secubox.in": [
"127.0.0.1",
8959
],
"tdah.gk2.secubox.in": [
"127.0.0.1",
8960
],
"zlib.gk2.secubox.in": [
"127.0.0.1",
8961
],
"pix.gk2.secubox.in": [
"192.168.255.1",
8506
],
"wuyun.gk2.secubox.in": [
"192.168.255.1",
8503
],
"yling.gk2.secubox.in": [
"192.168.255.1",
8501
],
"bweep.gk2.secubox.in": [
"192.168.255.1",
8507
],
"bweek.gk2.secubox.in": [
"192.168.255.1",
8508
],
"BASIC.gk2.secubox.in": [
"192.168.255.1",
8509
],
"secubox_evolution.gk2.secubox.in": [
"192.168.255.1",
8510
],
"secubox_control.gk2.secubox.in": [
"192.168.255.1",
8511
],
"hermes.gk2.secubox.in": [
"192.168.255.1",
8512
],
"fabricator.gk2.secubox.in": [
"192.168.255.1",
8520
],
"yijing360.gk2.secubox.in": [
"192.168.255.1",
8521
],
"ftvm.gk2.secubox.in": [
"192.168.255.1",
8522
],
"cpf.gk2.secubox.in": [
"192.168.255.1",
8523
],
"pdf.gk2.secubox.in": [
"192.168.255.1",
8524
],
"papyrus.gk2.secubox.in": [
"192.168.255.1",
8525
],
"pc.gk2.secubox.in": [
"192.168.255.1",
8526
],
"osint.gk2.secubox.in": [
"192.168.255.1",
8527
],
"swg.gk2.secubox.in": [
"192.168.255.1",
8513
],
"generik.gk2.secubox.in": [
"192.168.255.1",
8528
],
"prompt.gk2.secubox.in": [
"192.168.255.1",
8502
],
"fanzine.gk2.secubox.in": [
"192.168.255.1",
8504
],
"gk2.gk2.secubox.in": [
"192.168.255.1",
8505
],
"cybfan.gk2.secubox.in": [
"192.168.255.1",
8529
],
"tam.gk2.secubox.in": [
"192.168.255.1",
8514
],
"files_40.gk2.secubox.in": [
"192.168.255.1",
8516
],
"files_42.gk2.secubox.in": [
"192.168.255.1",
8517
],
"arm.gk2.secubox.in": [
"192.168.255.1",
8977
],
"armada.gk2.secubox.in": [
"192.168.255.1",
8978
],
"files42.gk2.secubox.in": [
"192.168.255.1",
8517
]
}

View File

@ -284,28 +284,61 @@ method_get_containers() {
json_dump
}
# Method: get_vhosts
# Method: get_vhosts - optimized single-pass awk parsing
method_get_vhosts() {
json_init
json_add_array "vhosts"
for vh in $(uci show haproxy 2>/dev/null | grep "=vhost" | sed 's/haproxy\.//;s/=vhost//'); do
local domain=$(uci -q get haproxy.$vh.domain)
local backend=$(uci -q get haproxy.$vh.backend)
local enabled=$(uci -q get haproxy.$vh.enabled)
local ssl=$(uci -q get haproxy.$vh.ssl)
json_add_object ""
json_add_string "id" "$vh"
json_add_string "domain" "$domain"
json_add_string "backend" "$backend"
json_add_string "enabled" "${enabled:-0}"
json_add_string "ssl" "${ssl:-0}"
json_close_object
done
json_close_array
json_dump
uci show haproxy 2>/dev/null | awk '
BEGIN {
printf "{\"vhosts\":["
first = 1
}
/=vhost$/ {
# Output previous vhost if we have one
if (current_vh != "") {
if (first == 0) printf ","
first = 0
if (enabled == "") enabled = "0"
if (ssl == "") ssl = "0"
printf "{\"id\":\"%s\",\"domain\":\"%s\",\"backend\":\"%s\",\"enabled\":\"%s\",\"ssl\":\"%s\"}", current_vh, domain, backend, enabled, ssl
}
# Start new vhost
gsub(/^haproxy\./, "", $0)
gsub(/=vhost$/, "", $0)
current_vh = $0
domain = ""
backend = ""
enabled = ""
ssl = ""
}
/\.domain=/ {
gsub(/.*\.domain=/, "", $0)
gsub(/'\''/, "", $0)
domain = $0
}
/\.backend=/ {
gsub(/.*\.backend=/, "", $0)
gsub(/'\''/, "", $0)
backend = $0
}
/\.enabled=/ {
gsub(/.*\.enabled=/, "", $0)
gsub(/'\''/, "", $0)
enabled = $0
}
/\.ssl=/ {
gsub(/.*\.ssl=/, "", $0)
gsub(/'\''/, "", $0)
ssl = $0
}
END {
# Output last vhost
if (current_vh != "") {
if (first == 0) printf ","
if (enabled == "") enabled = "0"
if (ssl == "") ssl = "0"
printf "{\"id\":\"%s\",\"domain\":\"%s\",\"backend\":\"%s\",\"enabled\":\"%s\",\"ssl\":\"%s\"}", current_vh, domain, backend, enabled, ssl
}
printf "]}"
}'
}
# List available methods