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], "devel.cybermind.fr": [
"crt.cybermind.fr": ["192.168.255.1", 8503], "127.0.0.1",
"gandalf.maegia.tv": ["127.0.0.1", 8901], 8907
"c3box.maegia.tv": ["192.168.255.1", 8902], ],
"devel.maegia.tv": ["127.0.0.1", 8900], "crt.cybermind.fr": [
"cyberzine.maegia.tv": ["127.0.0.1", 8903], "192.168.255.1",
"play.maegia.tv": ["192.168.255.1", 8501], 8503
"feed.maegia.tv": ["192.168.255.1", 8081], ],
"slides.maegia.tv": ["127.0.0.1", 8905], "gandalf.maegia.tv": [
"sliders.maegia.tv": ["127.0.0.1", 8904], "127.0.0.1",
"live.maegia.tv": ["127.0.0.1", 8906], 8901
"status.maegia.tv": ["127.0.0.1", 8908], ],
"bw.maegia.tv": ["192.168.255.1", 8909], "c3box.maegia.tv": [
"jellyfin.secubox.local": ["192.168.255.31", 8096], "127.0.0.1",
"media.maegia.tv": ["192.168.255.31", 8096], 8902
"gk2.maegia.tv": ["127.0.0.1", 8910], ],
"coin.maegia.tv": ["127.0.0.1", 8911], "devel.maegia.tv": [
"halt.maegia.tv": ["127.0.0.1", 8912], "127.0.0.1",
"localai.secubox.local": ["127.0.0.1", 8091], 8900
"localai.secubox.in": ["127.0.0.1", 8091], ],
"gk2.secubox.in": ["192.168.255.1", 8950], "cyberzine.maegia.tv": [
"evolution.gk2.secubox.in": ["192.168.255.1", 8510], "127.0.0.1",
"c3box.sblocal": ["192.168.255.1", 8902], 8903
"evolution.sblocal": ["192.168.255.1", 8510], ],
"control.gk2.secubox.in": ["192.168.255.1", 8511], "play.maegia.tv": [
"control.sblocal": ["192.168.255.1", 8511], "192.168.255.1",
"fabric.gk2.secubox.in": ["192.168.255.1", 8520], 8501
"lldh.gk2.secubox.in": ["192.168.255.1", 8914], ],
"lldh.ganimed.fr": ["192.168.255.1", 8914], "feed.maegia.tv": [
"oracle.ganimed.fr": ["127.0.0.1", 8915], "192.168.255.1",
"press.cybermood.eu": ["127.0.0.1", 8916], 8081
"presse.cybermood.eu": ["127.0.0.1", 8916], ],
".gk2.secubox.in": ["192.168.255.1", 4000], "slides.maegia.tv": [
"comic.secubox.in": ["127.0.0.1", 8918], "127.0.0.1",
"console.gk2.secubox.in": ["192.168.255.1", 8081], 8905
"console.gk2.sb.local": ["192.168.255.1", 8081], ],
"control.gk2.secubox.in": ["192.168.255.1", 8081], "sliders.maegia.tv": [
"control.gk2.sb.local": ["192.168.255.1", 8081], "127.0.0.1",
"glances.gk2.secubox.in": ["192.168.255.1", 61208], 8904
"glances.gk2.sb.local": ["192.168.255.1", 61208], ],
"play.gk2.secubox.in": ["192.168.255.1", 8501], "live.maegia.tv": [
"play.gk2.sb.local": ["192.168.255.1", 8501], "127.0.0.1",
"how2.maegia.tv": ["192.168.255.1", 8919], 8906
"wanted.gk2.secubox.in": ["127.0.0.1", 8920], ],
"eval.gk2.secubox.in": ["127.0.0.1", 8921], "status.maegia.tv": [
"bazi.gk2.secubox.in": ["192.168.255.1", 8509], "127.0.0.1",
"geo.gk2.secubox.in": ["127.0.0.1", 8922], 8908
"gondwana.gk2.secubox.in": ["127.0.0.1", 8923], ],
"social.gk2.secubox.in": ["192.168.255.1", 8484], "bw.maegia.tv": [
"client.gk2.secubox.in": ["192.168.255.1", 4002], "127.0.0.1",
"clock.gk2.secubox.in": ["127.0.0.1", 8924], 8909
"photocloud.gk2.secubox.in": ["192.168.255.1", 8526], ],
"sdlc.gk2.secubox.in": ["127.0.0.1", 8925], "jellyfin.secubox.local": [
"gk2.eu": ["127.0.0.1", 8926], "192.168.255.31",
"money.gk2.secubox.in": ["127.0.0.1", 8927], 8096
"apr.gk2.secubox.in": ["127.0.0.1", 8928], ],
"psy.gk2.secubox.in": ["127.0.0.1", 8929], "media.maegia.tv": [
"confid.gk2.secubox.in": ["127.0.0.1", 8930], "192.168.255.31",
"tube.gk2.secubox.in": ["192.168.255.1", 9001], 8096
"flash.gk2.secubox.in": ["127.0.0.1", 8931], ],
"generix.gk2.secubox.in": ["192.168.255.1", 8528], "gk2.maegia.tv": [
"sa.gk2.secubox.in": ["127.0.0.1", 8933], "127.0.0.1",
"ab.gk2.secubox.in": ["127.0.0.1", 8934], 8910
"fb.gk2.secubox.in": ["127.0.0.1", 8935], ],
"fwhs.gk2.secubox.in": ["127.0.0.1", 8936], "coin.maegia.tv": [
"raid.gk2.secubox.in": ["127.0.0.1", 8937], "127.0.0.1",
"cloud.gk2.secubox.in": ["192.168.255.1", 8080], 8911
"mku.gk2.secubox.in": ["127.0.0.1", 8932], ],
"meet.gk2.secubox.in": ["127.0.0.1", 9088], "halt.maegia.tv": [
"hq.secubox.in": ["192.168.255.1", 8081], "127.0.0.1",
"relay.gk2.secubox.in": ["192.168.255.1", 8891], 8912
"tube.gk2.secubox.in": ["192.168.255.1", 9001], ],
"meet.gk2.secubox.in": ["127.0.0.1", 9088], "localai.secubox.local": [
"jellyfin.gk2.secubox.in": ["192.168.255.31", 8096], "127.0.0.1",
"social.gk2.secubox.in": ["192.168.255.1", 8484], 8091
"xmpp.gk2.secubox.in": ["127.0.0.1", 5280], ],
"git.gk2.secubox.in": ["192.168.255.1", 3001], "localai.secubox.in": [
"webmail.secubox.in": ["192.168.255.1", 8027], "127.0.0.1",
"cloud.secubox.in": ["192.168.255.1", 8080], 8091
"tube.secubox.in": ["192.168.255.1", 9001], ],
"meet.secubox.in": ["127.0.0.1", 9088], "gk2.secubox.in": [
"git.secubox.in": ["192.168.255.1", 3001], "192.168.255.1",
"social.secubox.in": ["192.168.255.1", 8484], 8505
"jellyfin.secubox.in": ["192.168.255.31", 8096], ],
"xmpp.secubox.in": ["127.0.0.1", 5280], "evolution.gk2.secubox.in": [
"hub.secubox.in": ["192.168.255.1", 8950], "192.168.255.1",
"portal.secubox.in": ["192.168.255.1", 8950], 8510
"cf.gk2.secubox.in": ["192.168.255.1", 8510], ],
"pub.gk2.secbox.in": ["127.0.0.1", 8938], "c3box.sblocal": [
"pub.gk2.secubox.in": ["127.0.0.1", 8938], "192.168.255.1",
"lunaquar.gk2.secubox.in": ["127.0.0.1", 8939], 8902
"equa.gk2.secubox.in": ["127.0.0.1", 8940], ],
"game.gk2.secubox.in": ["127.0.0.1", 8941], "evolution.sblocal": [
"virus.gk2.secubox.in": ["127.0.0.1", 8942], "192.168.255.1",
"survie.gk2.secubox.in": ["127.0.0.1", 8943], 8510
"bgp.gk2.secubox.in": ["127.0.0.1", 8944], ],
"cpi.gk2.secubox.in": ["127.0.0.1", 8946], "control.gk2.secubox.in": [
"cgv.gk2.secubox.in": ["127.0.0.1", 8945], "192.168.255.1",
"portal.gk2.secubox.in": ["192.168.255.1", 8950], 8081
"stream.gk2.secubox.in": ["127.0.0.1", 8000], ],
"bdgse.gk2.secubox.in": ["127.0.0.1", 8955], "control.sblocal": [
"lrh.gk2.secubox.in": ["127.0.0.1", 8952], "192.168.255.1",
"bcf.gk2.secubox.in": ["127.0.0.1", 8953], 8511
"camus.gk2.secubox.in": ["127.0.0.1", 8951], ],
"holo.gk2.secubox.in": ["127.0.0.1", 8947], "fabric.gk2.secubox.in": [
"fm.gk2.secubox.in": ["127.0.0.1", 8956], "192.168.255.1",
"dgse.gk2.secubox.in": ["127.0.0.1", 8954], 8520
"hub.gk2.secubox.in": ["192.168.255.1", 8950], ],
"dcb.gk2.secubox.in": ["127.0.0.1", 8957], "lldh.gk2.secubox.in": [
"signaling.gk2.secubox.in": ["192.168.255.1", 8082], "192.168.255.1",
"punk.gk2.secubox.in": ["192.168.255.1", 8948], 8914
"zoom.gk2.secubox.in": ["192.168.255.1", 8962], ],
"rtdah.gk2.secubox.in": ["192.168.255.1", 8963], "lldh.ganimed.fr": [
"srtc.gk2.secubox.in": ["192.168.255.1", 8964], "192.168.255.1",
"zkp.gk2.secubox.in": ["192.168.255.1", 8965], 8914
"proofit.gk2.secubox.in": ["192.168.255.1", 8966], ],
"rcve.gk2.secubox.in": ["192.168.255.1", 8967], "oracle.ganimed.fr": [
"pent.gk2.secubox.in": ["192.168.255.1", 8968], "127.0.0.1",
"webmail.gk2.secubox.in": ["192.168.255.1", 8027], 8915
"penbd.gk2.secubox.in": ["192.168.255.1", 8969], ],
"rfg.gk2.secubox.in": ["192.168.255.1", 8970], "press.cybermood.eu": [
"form.gk2.secubox.in": ["192.168.255.1", 8971], "127.0.0.1",
"facb.gk2.secubox.in": ["192.168.255.1", 8972], 8916
"plainte.gk2.secubox.in": ["192.168.255.1", 8973], ],
"sosint.gk2.secubox.in": ["192.168.255.1", 8974], "presse.cybermood.eu": [
"aea.gk2.secubox.in": ["192.168.255.1", 8975], "127.0.0.1",
"siggk.gk2.secubox.in": ["192.168.255.1", 8976], 8916
"devel.maegia.tv": ["127.0.0.1", 8900], ],
"gandalf.maegia.tv": ["127.0.0.1", 8901], ".gk2.secubox.in": [
"c3box.maegia.tv": ["127.0.0.1", 8902], "192.168.255.1",
"cyberzine.maegia.tv": ["127.0.0.1", 8903], 4000
"slides.maegia.tv": ["127.0.0.1", 8905], ],
"sliders.maegia.tv": ["127.0.0.1", 8904], "comic.secubox.in": [
"live.maegia.tv": ["127.0.0.1", 8906], "127.0.0.1",
"devel.cybermind.fr": ["127.0.0.1", 8907], 8918
"status.maegia.tv": ["127.0.0.1", 8908], ],
"bw.maegia.tv": ["127.0.0.1", 8909], "console.gk2.secubox.in": [
"gk2.maegia.tv": ["127.0.0.1", 8910], "192.168.255.1",
"coin.maegia.tv": ["127.0.0.1", 8911], 8515
"halt.maegia.tv": ["127.0.0.1", 8912], ],
"oracle.ganimed.fr": ["127.0.0.1", 8915], "console.gk2.sb.local": [
"press.cybermood.eu": ["127.0.0.1", 8916], "192.168.255.1",
"comic.secubox.in": ["127.0.0.1", 8918], 8081
"wanted.gk2.secubox.in": ["127.0.0.1", 8920], ],
"eval.gk2.secubox.in": ["127.0.0.1", 8921], "control.gk2.sb.local": [
"geo.gk2.secubox.in": ["127.0.0.1", 8922], "192.168.255.1",
"gondwana.gk2.secubox.in": ["127.0.0.1", 8923], 8081
"clock.gk2.secubox.in": ["127.0.0.1", 8924], ],
"sdlc.gk2.secubox.in": ["127.0.0.1", 8925], "glances.gk2.secubox.in": [
"gk2.eu": ["127.0.0.1", 8926], "192.168.255.1",
"money.gk2.secubox.in": ["127.0.0.1", 8927], 61208
"apr.gk2.secubox.in": ["127.0.0.1", 8928], ],
"psy.gk2.secubox.in": ["127.0.0.1", 8929], "glances.gk2.sb.local": [
"confid.gk2.secubox.in": ["127.0.0.1", 8930], "192.168.255.1",
"flash.gk2.secubox.in": ["127.0.0.1", 8931], 61208
"sa.gk2.secubox.in": ["127.0.0.1", 8933], ],
"ab.gk2.secubox.in": ["127.0.0.1", 8934], "play.gk2.secubox.in": [
"fb.gk2.secubox.in": ["127.0.0.1", 8935], "192.168.255.1",
"fwhs.gk2.secubox.in": ["127.0.0.1", 8936], 8515
"raid.gk2.secubox.in": ["127.0.0.1", 8937], ],
"mku.gk2.secubox.in": ["127.0.0.1", 8932], "play.gk2.sb.local": [
"pub.gk2.secbox.in": ["127.0.0.1", 8938], "192.168.255.1",
"lunaquar.gk2.secubox.in": ["127.0.0.1", 8939], 8515
"equa.gk2.secubox.in": ["127.0.0.1", 8940], ],
"game.gk2.secubox.in": ["127.0.0.1", 8941], "how2.maegia.tv": [
"virus.gk2.secubox.in": ["127.0.0.1", 8942], "192.168.255.1",
"survie.gk2.secubox.in": ["127.0.0.1", 8943], 8919
"bgp.gk2.secubox.in": ["127.0.0.1", 8944], ],
"cgv.gk2.secubox.in": ["127.0.0.1", 8945], "wanted.gk2.secubox.in": [
"cpi.gk2.secubox.in": ["127.0.0.1", 8946], "127.0.0.1",
"holo.gk2.secubox.in": ["127.0.0.1", 8947], 8920
"dgse.gk2.secubox.in": ["127.0.0.1", 8954], ],
"camus.gk2.secubox.in": ["127.0.0.1", 8951], "eval.gk2.secubox.in": [
"bdgse.gk2.secubox.in": ["127.0.0.1", 8955], "127.0.0.1",
"lrh.gk2.secubox.in": ["127.0.0.1", 8952], 8921
"bcf.gk2.secubox.in": ["127.0.0.1", 8953], ],
"fm.gk2.secubox.in": ["127.0.0.1", 8956], "bazi.gk2.secubox.in": [
"dcb.gk2.secubox.in": ["127.0.0.1", 8957], "192.168.255.1",
"boom.gk2.secubox.in": ["127.0.0.1", 8958], 8509
"punk.gk2.secubox.in": ["127.0.0.1", 8948], ],
"ccom.gk2.secubox.in": ["127.0.0.1", 8949], "geo.gk2.secubox.in": [
"tuto.gk2.secubox.in": ["127.0.0.1", 8959], "127.0.0.1",
"tdah.gk2.secubox.in": ["127.0.0.1", 8960], 8922
"zlib.gk2.secubox.in": ["127.0.0.1", 8961], ],
"zoom.gk2.secubox.in": ["127.0.0.1", 8962], "gondwana.gk2.secubox.in": [
"rtdah.gk2.secubox.in": ["127.0.0.1", 8963], "127.0.0.1",
"srtc.gk2.secubox.in": ["127.0.0.1", 8964], 8923
"zkp.gk2.secubox.in": ["127.0.0.1", 8965], ],
"proofit.gk2.secubox.in": ["127.0.0.1", 8966], "social.gk2.secubox.in": [
"rcve.gk2.secubox.in": ["127.0.0.1", 8967], "192.168.255.1",
"pent.gk2.secubox.in": ["127.0.0.1", 8968], 8484
"penbd.gk2.secubox.in": ["127.0.0.1", 8969], ],
"rfg.gk2.secubox.in": ["127.0.0.1", 8970], "client.gk2.secubox.in": [
"form.gk2.secubox.in": ["127.0.0.1", 8971], "192.168.255.1",
"facb.gk2.secubox.in": ["127.0.0.1", 8972], 4002
"plainte.gk2.secubox.in": ["127.0.0.1", 8973], ],
"sosint.gk2.secubox.in": ["127.0.0.1", 8974], "clock.gk2.secubox.in": [
"aea.gk2.secubox.in": ["127.0.0.1", 8975], "127.0.0.1",
"siggk.gk2.secubox.in": ["127.0.0.1", 8976], 8924
"pix.gk2.secubox.in": ["192.168.255.1", 8506], ],
"wuyun.gk2.secubox.in": ["192.168.255.1", 8503], "photocloud.gk2.secubox.in": [
"yling.gk2.secubox.in": ["192.168.255.1", 8501], "192.168.255.1",
"bweep.gk2.secubox.in": ["192.168.255.1", 8507], 8526
"bweek.gk2.secubox.in": ["192.168.255.1", 8508], ],
"bazi.gk2.secubox.in": ["192.168.255.1", 8509], "sdlc.gk2.secubox.in": [
"BASIC.gk2.secubox.in": ["192.168.255.1", 8509], "127.0.0.1",
"secubox_evolution.gk2.secubox.in": ["192.168.255.1", 8510], 8925
"secubox_control.gk2.secubox.in": ["192.168.255.1", 8511], ],
"play.gk2.secubox.in": ["192.168.255.1", 8515], "gk2.eu": [
"play.gk2.sb.local": ["192.168.255.1", 8515], "127.0.0.1",
"console.gk2.secubox.in": ["192.168.255.1", 8515], 8926
"hermes.gk2.secubox.in": ["192.168.255.1", 8512], ],
"fabric.gk2.secubox.in": ["192.168.255.1", 8520], "money.gk2.secubox.in": [
"fabricator.gk2.secubox.in": ["192.168.255.1", 8520], "127.0.0.1",
"yijing360.gk2.secubox.in": ["192.168.255.1", 8521], 8927
"ftvm.gk2.secubox.in": ["192.168.255.1", 8522], ],
"cpf.gk2.secubox.in": ["192.168.255.1", 8523], "apr.gk2.secubox.in": [
"pdf.gk2.secubox.in": ["192.168.255.1", 8524], "127.0.0.1",
"papyrus.gk2.secubox.in": ["192.168.255.1", 8525], 8928
"pc.gk2.secubox.in": ["192.168.255.1", 8526], ],
"osint.gk2.secubox.in": ["192.168.255.1", 8527], "psy.gk2.secubox.in": [
"swg.gk2.secubox.in": ["192.168.255.1", 8513], "127.0.0.1",
"generix.gk2.secubox.in": ["192.168.255.1", 8528], 8929
"generik.gk2.secubox.in": ["192.168.255.1", 8528], ],
"prompt.gk2.secubox.in": ["192.168.255.1", 8502], "confid.gk2.secubox.in": [
"fanzine.gk2.secubox.in": ["192.168.255.1", 8504], "127.0.0.1",
"gk2.secubox.in": ["192.168.255.1", 8505], 8930
"hub.secubox.in": ["192.168.255.1", 8505], ],
"portal.secubox.in": ["192.168.255.1", 8505], "tube.gk2.secubox.in": [
"portal.gk2.secubox.in": ["192.168.255.1", 8505], "192.168.255.1",
"hub.gk2.secubox.in": ["192.168.255.1", 8505], 9001
"gk2.gk2.secubox.in": ["192.168.255.1", 8505], ],
"cybfan.gk2.secubox.in": ["192.168.255.1", 8529], "flash.gk2.secubox.in": [
"tam.gk2.secubox.in": ["192.168.255.1", 8514], "127.0.0.1",
"files_40.gk2.secubox.in": ["192.168.255.1", 8516], 8931
"files_42.gk2.secubox.in": ["192.168.255.1", 8517] ],
"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 json_dump
} }
# Method: get_vhosts # Method: get_vhosts - optimized single-pass awk parsing
method_get_vhosts() { method_get_vhosts() {
json_init uci show haproxy 2>/dev/null | awk '
json_add_array "vhosts" BEGIN {
printf "{\"vhosts\":["
for vh in $(uci show haproxy 2>/dev/null | grep "=vhost" | sed 's/haproxy\.//;s/=vhost//'); do first = 1
local domain=$(uci -q get haproxy.$vh.domain) }
local backend=$(uci -q get haproxy.$vh.backend) /=vhost$/ {
local enabled=$(uci -q get haproxy.$vh.enabled) # Output previous vhost if we have one
local ssl=$(uci -q get haproxy.$vh.ssl) if (current_vh != "") {
if (first == 0) printf ","
json_add_object "" first = 0
json_add_string "id" "$vh" if (enabled == "") enabled = "0"
json_add_string "domain" "$domain" if (ssl == "") ssl = "0"
json_add_string "backend" "$backend" printf "{\"id\":\"%s\",\"domain\":\"%s\",\"backend\":\"%s\",\"enabled\":\"%s\",\"ssl\":\"%s\"}", current_vh, domain, backend, enabled, ssl
json_add_string "enabled" "${enabled:-0}" }
json_add_string "ssl" "${ssl:-0}" # Start new vhost
json_close_object gsub(/^haproxy\./, "", $0)
done gsub(/=vhost$/, "", $0)
current_vh = $0
json_close_array domain = ""
json_dump 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 # List available methods