Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authorMHSanaei <ho3ein.sanaei@gmail.com>2023-06-14 19:20:19 +0300
committerMHSanaei <ho3ein.sanaei@gmail.com>2023-06-14 19:20:19 +0300
commitd40e61fc454a9c42d2ac69950074bf3504d484bf (patch)
treefdbc6f122ad99a078698c82205520c15167b8242 /web
parentc0f1a926e588303051a6a3e977ed2948e6dfd764 (diff)
fix and improve
Diffstat (limited to 'web')
-rw-r--r--web/controller/inbound.go7
-rw-r--r--web/html/xui/client_modal.html6
-rw-r--r--web/html/xui/index.html17
-rw-r--r--web/service/server.go15
4 files changed, 21 insertions, 24 deletions
diff --git a/web/controller/inbound.go b/web/controller/inbound.go
index 461c4b27..a9699bbb 100644
--- a/web/controller/inbound.go
+++ b/web/controller/inbound.go
@@ -145,12 +145,7 @@ func (a *InboundController) getClientIps(c *gin.Context) {
email := c.Param("email")
ips, err := a.inboundService.GetInboundClientIps(email)
- if err != nil {
- jsonObj(c, "Failed to get client IPs", nil)
- return
- }
-
- if ips == "" {
+ if err != nil || ips == "" {
jsonObj(c, "No IP Record", nil)
return
}
diff --git a/web/html/xui/client_modal.html b/web/html/xui/client_modal.html
index e8236778..a2d29417 100644
--- a/web/html/xui/client_modal.html
+++ b/web/html/xui/client_modal.html
@@ -124,12 +124,14 @@
try {
const msg = await HttpUtil.post(`/panel/inbound/clientIps/${email}`);
if (!msg.success) {
+ document.getElementById("clientIPs").value = msg.obj;
return;
}
- const ips = JSON.parse(msg.obj).join(",\n");
+ const ips = Array.isArray(msg.obj) ? msg.obj.join(",\n") : msg.obj;
document.getElementById("clientIPs").value = ips;
} catch (error) {
- document.getElementById("clientIPs").value = msg.obj;
+ console.error(error);
+ document.getElementById("clientIPs").value = 'An error occurred while making the request';
}
},
async clearDBClientIps(email) {
diff --git a/web/html/xui/index.html b/web/html/xui/index.html
index 9795e87d..989aa286 100644
--- a/web/html/xui/index.html
+++ b/web/html/xui/index.html
@@ -449,9 +449,13 @@
this.loadingTip = tip;
},
async getStatus() {
- const msg = await HttpUtil.post('/server/status');
- if (msg.success) {
- this.setStatus(msg.obj);
+ try {
+ const msg = await HttpUtil.post('/server/status');
+ if (msg.success) {
+ this.setStatus(msg.obj);
+ }
+ } catch (e) {
+ console.error("Failed to get status:", e);
}
},
setStatus(data) {
@@ -560,11 +564,14 @@
},
},
async mounted() {
- while (true) {
+ let retries = 0;
+ while (retries < 5) {
try {
await this.getStatus();
+ retries = 0;
} catch (e) {
- console.error(e);
+ console.error("Error occurred while fetching status:", e);
+ retries++;
}
await PromiseUtil.sleep(2000);
}
diff --git a/web/service/server.go b/web/service/server.go
index 198aa590..d5f7adc1 100644
--- a/web/service/server.go
+++ b/web/service/server.go
@@ -86,31 +86,24 @@ type ServerService struct {
inboundService InboundService
}
-const DebugMode = false // Set to true during development
-
func getPublicIP(url string) string {
resp, err := http.Get(url)
if err != nil {
- if DebugMode {
- logger.Warning("get public IP failed:", err)
- }
return "N/A"
}
defer resp.Body.Close()
ip, err := io.ReadAll(resp.Body)
if err != nil {
- if DebugMode {
- logger.Warning("read public IP failed:", err)
- }
return "N/A"
}
- if string(ip) == "" {
- return "N/A" // default value
+ ipString := string(ip)
+ if ipString == "" {
+ return "N/A"
}
- return string(ip)
+ return ipString
}
func (s *ServerService) GetStatus(lastStatus *Status) *Status {