mirror of
https://github.com/KeymonSoft/jRDC-Multi.git
synced 2026-04-17 21:06:24 +00:00
- VERSION 5.09.01
- Se corrigieron errores en "Manager". - Se cambiaron nombres de handlers. - Se corrigio un error en la ruta de "www/login.html".
This commit is contained in:
340
Manager.bas
340
Manager.bas
@@ -15,133 +15,283 @@ Public Sub Initialize
|
||||
End Sub
|
||||
|
||||
Sub Handle(req As ServletRequest, resp As ServletResponse)
|
||||
' 1. --- Bloque de Seguridad ---
|
||||
If req.GetSession.GetAttribute2("user_is_authorized", False) = False Then
|
||||
resp.SendRedirect("/login")
|
||||
Return
|
||||
End If
|
||||
|
||||
Dim Command As String = req.GetParameter("command")
|
||||
If Command = "" Then Command = "ping"
|
||||
Log($"Command: ${Command}"$)
|
||||
|
||||
' --- MANEJO ESPECIAL PARA SNAPSHOT ---
|
||||
' El comando "snapshot" no devuelve HTML, sino una imagen. Lo manejamos por separado al principio.
|
||||
If Command = "snapshot" Then
|
||||
Try
|
||||
resp.ContentType = "image/png"
|
||||
Dim robot, toolkit As JavaObject
|
||||
robot.InitializeNewInstance("java.awt.Robot", Null)
|
||||
toolkit.InitializeStatic("java.awt.Toolkit")
|
||||
Dim screenRect As JavaObject
|
||||
screenRect.InitializeNewInstance("java.awt.Rectangle", Array As Object( _
|
||||
toolkit.RunMethodJO("getDefaultToolkit", Null).RunMethod("getScreenSize", Null)))
|
||||
Dim image As JavaObject = robot.RunMethod("createScreenCapture", Array As Object(screenRect))
|
||||
Dim ImageIO As JavaObject
|
||||
ImageIO.InitializeStatic("javax.imageio.ImageIO").RunMethod("write", Array As Object(image, "png", resp.OutputStream))
|
||||
Catch
|
||||
resp.SendError(500, LastException.Message)
|
||||
End Try
|
||||
Return ' Detenemos la ejecución aquí para no enviar más HTML.
|
||||
End If
|
||||
' --- FIN DE MANEJO ESPECIAL ---
|
||||
|
||||
' Para todos los demás comandos, construimos la página HTML
|
||||
resp.ContentType = "text/html"
|
||||
If Command = "reload" Then 'Reload config.properties
|
||||
' rdcc.Initialize
|
||||
Dim sb As StringBuilder
|
||||
sb.Initialize
|
||||
|
||||
' --- Estilos y JavaScript (igual que antes) ---
|
||||
sb.Append("<html><head><style>")
|
||||
sb.Append("body {font-family: sans-serif; margin: 2em; background-color: #f9f9f9;} ")
|
||||
sb.Append("h1, h2 {color: #333;} hr {margin: 2em 0; border: 0; border-top: 1px solid #ddd;} ")
|
||||
sb.Append("input {display: block; width: 95%; padding: 8px; margin-bottom: 10px; border: 1px solid #ccc; border-radius: 4px;} ")
|
||||
sb.Append("button {padding: 10px 15px; border: none; background-color: #007bff; color: white; cursor: pointer; border-radius: 4px; margin-right: 1em;} ")
|
||||
sb.Append(".nav a, .logout a {text-decoration: none; margin-right: 10px; color: #007bff;} ")
|
||||
sb.Append(".output {background: #fff; padding: 1em; border: 1px solid #eee; border-radius: 8px; font-family: monospace; white-space: pre-wrap; word-wrap: break-word;} ")
|
||||
sb.Append("#changePassForm {background: #f0f0f0; padding: 1.5em; border-radius: 8px; max-width: 400px; margin-top: 1em;} ")
|
||||
sb.Append("</style>")
|
||||
sb.Append("<script>function toggleForm() {var form = document.getElementById('changePassForm'); if (form.style.display === 'none') {form.style.display = 'block';} else {form.style.display = 'none';}}</script>")
|
||||
sb.Append("</head><body>")
|
||||
|
||||
' --- Cabecera, Botón y Formulario Oculto (igual que antes) ---
|
||||
sb.Append("<h1>Panel de Administración jRDC</h1>")
|
||||
sb.Append($"Bienvenido, <b>${req.GetSession.GetAttribute("username")}</b><br>"$)
|
||||
sb.Append("<p class='nav'><a href='/manager?command=test'>Test</a> | <a href='/manager?command=ping'>Ping</a> | <a href='/manager?command=reload'>Reload</a> | <a href='/manager?command=rpm2'>Reiniciar (pm2)</a> | <a href='/manager?command=reviveBow'>Revive Bow</a></p><hr>")
|
||||
' sb.Append("<button onclick='toggleForm()'>Cambiar Contraseña</button>")
|
||||
sb.Append("<div id='changePassForm' style='display:none;'>")
|
||||
sb.Append("<h2>Cambiar Contraseña</h2><form action='/changepass' method='post'>")
|
||||
sb.Append("Contraseña Actual: <input type='password' name='current_password' required><br>")
|
||||
sb.Append("Nueva Contraseña: <input type='password' name='new_password' required><br>")
|
||||
sb.Append("Confirmar Nueva Contraseña: <input type='password' name='confirm_password' required><br>")
|
||||
sb.Append("<button type='submit'>Actualizar Contraseña</button> <button onclick='toggleForm()'>Cancelar</button></form></div>")
|
||||
|
||||
' --- Resultado del Comando ---
|
||||
sb.Append("<h2>Resultado del Comando: '" & Command & "'</h2>")
|
||||
sb.Append("<div class='output'>")
|
||||
|
||||
' =========================================================================
|
||||
' ### INICIO DE TU LÓGICA DE COMANDOS INTEGRADA ###
|
||||
' =========================================================================
|
||||
If Command = "reload" Then
|
||||
Private estaDB As String = ""
|
||||
' Log(Main.listaDeCP)
|
||||
resp.Write($"<a href="/test">Test</a> | <a href="/manager?command=reload">Reload</a> | <a href="/manager?command=rpm2">Reiniciar</a> | <a href="/manager?command=reviveBow">Revive Bow</a> | </br></br>"$)
|
||||
For i = 0 To Main.listaDeCP.Size - 1
|
||||
Main.Connectors.Get(Main.listaDeCP.get(i)).As(RDCConnector).Initialize(Main.listaDeCP.get(i))
|
||||
If Main.listaDeCP.get(i) <> "DB1" Then estaDB = "." & Main.listaDeCP.get(i) Else estaDB = ""
|
||||
resp.Write($"Recargando config${estaDB}.properties ($DateTime{DateTime.Now})<br/>"$)
|
||||
resp.Write($"Queries en config.properties: <b>${Main.Connectors.Get(Main.listaDeCP.get(i)).As(RDCConnector).commands.Size}</b><br/>"$)
|
||||
resp.Write($"<b>JdbcUrl:</b> ${Main.Connectors.Get(Main.listaDeCP.get(i)).As(RDCConnector).config.Get("JdbcUrl")}</b><br/>"$)
|
||||
resp.Write($"<b>User:</b> ${Main.Connectors.Get(Main.listaDeCP.get(i)).As(RDCConnector).config.Get("User")}</b><br/>"$)
|
||||
resp.Write($"<b>ServerPort:</b> ${Main.srvr.Port}</b><br/><br/>"$)
|
||||
sb.Append($"Recargando config${estaDB}.properties ($DateTime{DateTime.Now})<br/>"$)
|
||||
sb.Append($"Queries en config.properties: <b>${Main.Connectors.Get(Main.listaDeCP.get(i)).As(RDCConnector).commands.Size}</b><br/>"$)
|
||||
sb.Append($"<b>JdbcUrl:</b> ${Main.Connectors.Get(Main.listaDeCP.get(i)).As(RDCConnector).config.Get("JdbcUrl")}</b><br/>"$)
|
||||
sb.Append($"<b>User:</b> ${Main.Connectors.Get(Main.listaDeCP.get(i)).As(RDCConnector).config.Get("User")}</b><br/>"$)
|
||||
sb.Append($"<b>ServerPort:</b> ${Main.srvr.Port}</b><br/><br/>"$)
|
||||
Next
|
||||
' Public shl As Shell
|
||||
' shl.Initialize("shl11","cmd",Array("/c","restart.bat"))
|
||||
' shl.WorkingDirectory = GlobalParameters.WorkingDirectory
|
||||
' shl.Run(-1)
|
||||
else If Command = "stop" Then
|
||||
' Public shl As Shell
|
||||
' shl.Initialize("shl","cmd",Array("/c","stop.bat"))
|
||||
' shl.WorkingDirectory = GlobalParameters.WorkingDirectory
|
||||
' shl.Run(-1)
|
||||
else If Command = "rsx" Then 'Reiniciamos el servidor DBReq
|
||||
resp.Write($"<a href="/test">Test</a> | <a href="/manager?command=reload">Reload</a> | <a href="/manager?command=rpm2">Reiniciar</a> | <a href="/manager?command=reviveBow">Revive Bow</a> | </br></br>"$)
|
||||
Else If Command = "test" Then
|
||||
Try
|
||||
Dim con As SQL = Main.Connectors.Get("DB1").As(RDCConnector).GetConnection("")
|
||||
sb.Append("Connection successful.</br></br>")
|
||||
Private estaDB As String = ""
|
||||
Log(Main.listaDeCP)
|
||||
For i = 0 To Main.listaDeCP.Size - 1
|
||||
If Main.listaDeCP.get(i) <> "" Then estaDB = "." & Main.listaDeCP.get(i)
|
||||
sb.Append($"Using config${estaDB}.properties<br/>"$)
|
||||
Next
|
||||
con.Close
|
||||
Catch
|
||||
resp.Write("Error fetching connection.")
|
||||
End Try
|
||||
Else If Command = "stop" Then
|
||||
' Public shl As Shell...
|
||||
Else If Command = "rsx" Then
|
||||
Log($"Ejecutamos ${File.DirApp}\start.bat"$)
|
||||
resp.Write($"Ejecutamos ${File.DirApp}\start.bat"$)
|
||||
Public shl As Shell
|
||||
shl.Initialize("shl","cmd",Array("/c",File.DirApp & "\start.bat " & Main.srvr.Port))
|
||||
shl.WorkingDirectory = File.DirApp
|
||||
shl.Run(-1)
|
||||
else If Command = "rpm2" Then 'Reiniciamos el proceso DBReq en PM2
|
||||
resp.Write($"<a href="/test">Test</a> | <a href="/manager?command=reload">Reload</a> | <a href="/manager?command=rpm2">Reiniciar</a> | <a href="/manager?command=reviveBow">Revive Bow</a> | </br></br>"$)
|
||||
sb.Append($"Ejecutamos ${File.DirApp}\start.bat"$)
|
||||
' Public shl As Shell...
|
||||
Else If Command = "rpm2" Then
|
||||
Log($"Ejecutamos ${File.DirApp}\reiniciaProcesoPM2.bat"$)
|
||||
resp.Write($"Ejecutamos ${File.DirApp}\reiniciaProcesoPM2.bat"$)
|
||||
Public shl As Shell
|
||||
shl.Initialize("shl","cmd",Array("/c",File.DirApp & "\reiniciaProcesoPM2.bat " & Main.srvr.Port))
|
||||
shl.WorkingDirectory = File.DirApp
|
||||
shl.Run(-1)
|
||||
else If Command = "reviveBow" Then 'Reiniciamos el proceso DBReq en PM2
|
||||
resp.Write($"<a href="/test">Test</a> | <a href="/manager?command=reload">Reload</a> | <a href="/manager?command=rpm2">Reiniciar</a> | <a href="/manager?command=reviveBow">Revive Bow</a> | </br></br>"$)
|
||||
sb.Append($"Ejecutamos ${File.DirApp}\reiniciaProcesoPM2.bat"$)
|
||||
' Public shl As Shell...
|
||||
Else If Command = "reviveBow" Then
|
||||
Log($"Ejecutamos ${File.DirApp}\reiniciaProcesoBow.bat"$)
|
||||
resp.Write($"Ejecutamos ${File.DirApp}\reiniciaProcesoBow.bat<br><br>"$)
|
||||
resp.Write($"!!!BOW REINICIANDO!!!"$)
|
||||
sb.Append($"Ejecutamos ${File.DirApp}\reiniciaProcesoBow.bat<br><br>"$)
|
||||
sb.Append($"!!!BOW REINICIANDO!!!"$)
|
||||
Public shl As Shell
|
||||
shl.Initialize("shl","cmd",Array("/c",File.DirApp & "\reiniciaProcesoBow.bat " & Main.srvr.Port))
|
||||
shl.WorkingDirectory = File.DirApp
|
||||
shl.Run(-1)
|
||||
else If Command = "paused" Then
|
||||
Else If Command = "paused" Then
|
||||
GlobalParameters.IsPaused = 1
|
||||
else If Command = "continue" Then
|
||||
sb.Append("Servidor pausado.")
|
||||
Else If Command = "continue" Then
|
||||
GlobalParameters.IsPaused = 0
|
||||
else If Command = "logs" Then
|
||||
sb.Append("Servidor reanudado.")
|
||||
Else If Command = "logs" Then
|
||||
If GlobalParameters.mpLogs.IsInitialized Then
|
||||
j.Initialize(GlobalParameters.mpLogs)
|
||||
j.ToString
|
||||
resp.Write(j.ToString)
|
||||
sb.Append(j.ToString)
|
||||
End If
|
||||
else If Command = "block" Then
|
||||
Dim BlockedConIP As String = req.GetParameter("IP")
|
||||
Else If Command = "block" Then
|
||||
Dim BlockedConIP As String = req.GetParameter("IP")
|
||||
If GlobalParameters.mpBlockConnection.IsInitialized Then
|
||||
GlobalParameters.mpBlockConnection.Put(BlockedConIP,BlockedConIP)
|
||||
GlobalParameters.mpBlockConnection.Put(BlockedConIP, BlockedConIP)
|
||||
sb.Append("IP bloqueada: " & BlockedConIP)
|
||||
End If
|
||||
else If Command = "unblock" Then
|
||||
Dim UnBlockedConIP As String = req.GetParameter("IP")
|
||||
Else If Command = "unblock" Then
|
||||
Dim UnBlockedConIP As String = req.GetParameter("IP")
|
||||
If GlobalParameters.mpBlockConnection.IsInitialized Then
|
||||
GlobalParameters.mpBlockConnection.Remove(UnBlockedConIP)
|
||||
sb.Append("IP desbloqueada: " & UnBlockedConIP)
|
||||
End If
|
||||
else if Command = "restartserver" Then
|
||||
Else If Command = "restartserver" Then
|
||||
Log($"Ejecutamos ${File.DirApp}/restarServer.bat"$)
|
||||
' Public shl As Shell
|
||||
' shl.Initialize("shl","cmd",Array("/c","retartserver.bat"))
|
||||
' shl.WorkingDirectory = GlobalParameters.WorkingDirectory
|
||||
' shl.Run(-1)
|
||||
else if Command = "snapshot" Then
|
||||
Try
|
||||
resp.ContentType = "image/png"
|
||||
Dim robot, toolkit, rectangle, ImageIO As JavaObject
|
||||
robot.InitializeNewInstance("java.awt.Robot", Null)
|
||||
toolkit.InitializeStatic("java.awt.Toolkit")
|
||||
Dim rectangle As JavaObject
|
||||
rectangle.InitializeNewInstance("java.awt.Rectangle", Array As Object( _
|
||||
toolkit.RunMethodJO("getDefaultToolkit", Null).RunMethod("getScreenSize", Null)))
|
||||
Dim image As JavaObject = robot.RunMethod("createScreenCapture", Array As Object(rectangle))
|
||||
ImageIO.InitializeStatic("javax.imageio.ImageIO").RunMethod("write", Array As Object( _
|
||||
image, "png", resp.OutputStream)) 'the image is written to the response
|
||||
Catch
|
||||
resp.SendError(500, LastException.Message)
|
||||
End Try
|
||||
else if Command = "runatstartup" Then
|
||||
'----- You Need to go to the folder on the server : C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
|
||||
' ------ then right click - Properties - Security - Edit - Add --> "Everyone" then OK -- then check Full Control (Allow) -- OK
|
||||
File.Copy("C:\jrdcinterface","startup.bat","C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp","startup.bat")
|
||||
else if Command = "stoprunatstartup" Then
|
||||
'----- You Need to go to the folder on the server : C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
|
||||
' ------ then right click - Properties - Security - Edit - Add --> "Everyone" then OK -- then check Full Control (Allow) -- OK
|
||||
File.Delete("C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp","startup.bat")
|
||||
sb.Append("Reiniciando servidor...")
|
||||
Else If Command = "runatstartup" Then
|
||||
File.Copy("C:\jrdcinterface", "startup.bat", "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp", "startup.bat")
|
||||
sb.Append("Script de inicio añadido.")
|
||||
Else If Command = "stoprunatstartup" Then
|
||||
File.Delete("C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp", "startup.bat")
|
||||
sb.Append("Script de inicio eliminado.")
|
||||
Else If Command = "totalrequests" Then
|
||||
If GlobalParameters.mpTotalRequests.IsInitialized Then
|
||||
j.Initialize(GlobalParameters.mpTotalRequests)
|
||||
sb.Append(j.ToString)
|
||||
End If
|
||||
Else If Command = "totalblocked" Then
|
||||
If GlobalParameters.mpBlockConnection.IsInitialized Then
|
||||
' j.Initialize(Global.mpBlockConnection)
|
||||
sb.Append(j.ToString)
|
||||
End If
|
||||
Else If Command = "totalcon" Then
|
||||
If GlobalParameters.mpTotalConnections.IsInitialized Then
|
||||
j.Initialize(GlobalParameters.mpTotalConnections)
|
||||
sb.Append(j.ToString)
|
||||
End If
|
||||
Else If Command = "ping" Then
|
||||
sb.Append($"Pong ($DateTime{DateTime.Now})"$)
|
||||
End If
|
||||
' =========================================================================
|
||||
' ### FIN DE TU LÓGICA DE COMANDOS ###
|
||||
' =========================================================================
|
||||
|
||||
' --- Cerramos la página y la enviamos ---
|
||||
sb.Append("</div><p class='logout'><a href='/logout'>Cerrar Sesión</a> | <a href=# onclick='toggleForm()'>Cambiar Contraseña</a></p></body></html>")
|
||||
resp.Write(sb.ToString)
|
||||
|
||||
If GlobalParameters.mpLogs.IsInitialized Then GlobalParameters.mpLogs.Put(Command, "Manager : " & Command & " - Time : " & DateTime.Time(DateTime.Now))
|
||||
End Sub
|
||||
|
||||
Sub Handle0(req As ServletRequest, resp As ServletResponse)
|
||||
' 1. --- Bloque de Seguridad (se mantiene igual) ---
|
||||
If req.GetSession.GetAttribute2("user_is_authorized", False) = False Then
|
||||
resp.SendRedirect("/login")
|
||||
Return
|
||||
End If
|
||||
|
||||
Dim Command As String = req.GetParameter("command")
|
||||
If Command = "" Then Command = "ping"
|
||||
Log($"Command: ${Command}"$)
|
||||
resp.ContentType = "text/html"
|
||||
|
||||
' 2. --- Construimos la ESTRUCTURA de la página ---
|
||||
Dim sb As StringBuilder
|
||||
sb.Initialize
|
||||
|
||||
' Estilos para la página
|
||||
sb.Append("<html><head><style>")
|
||||
sb.Append("body {font-family: sans-serif; margin: 2em; background-color: #f9f9f9;} ")
|
||||
sb.Append("h1, h2 {color: #333;} hr {margin: 2em 0; border: 0; border-top: 1px solid #ddd;} ")
|
||||
sb.Append("form {background: #f0f0f0; padding: 1.5em; border-radius: 8px; max-width: 400px; margin-bottom: 2em;} ")
|
||||
sb.Append("input {display: block; width: 95%; padding: 8px; margin-bottom: 10px; border: 1px solid #ccc; border-radius: 4px;} ")
|
||||
sb.Append("button {padding: 10px 15px; border: none; background-color: #007bff; color: white; cursor: pointer; border-radius: 4px;} ")
|
||||
sb.Append(".nav a, .logout a {text-decoration: none; margin-right: 10px; color: #007bff;} ")
|
||||
sb.Append(".output {background: #fff; padding: 1em; border: 1px solid #eee; border-radius: 8px;} ")
|
||||
sb.Append("</style></head><body>")
|
||||
|
||||
' Cabecera y bienvenida
|
||||
sb.Append("<h1>Panel de Administración jRDC</h1>")
|
||||
sb.Append($"Bienvenido, <b>${req.GetSession.GetAttribute("username")}</b><br>"$)
|
||||
|
||||
' Menú de navegación (se define una sola vez)
|
||||
sb.Append("<p class='nav'>")
|
||||
sb.Append($"<a href="/test">Test</a> | <a href="/manager?command=ping">Ping</a> | <a href="/manager?command=reload">Reload</a> | <a href="/manager?command=rpm2">Reiniciar (pm2)</a> | <a href="/manager?command=reviveBow">Revive Bow</a>"$)
|
||||
sb.Append("</p>")
|
||||
|
||||
' Formulario para cambiar contraseña
|
||||
sb.Append("<hr>")
|
||||
sb.Append("<h2>Cambiar Contraseña</h2>")
|
||||
sb.Append("<form action='/changepass' method='post'>")
|
||||
sb.Append("Contraseña Actual: <input type='password' name='current_password' required><br>")
|
||||
sb.Append("Nueva Contraseña: <input type='password' name='new_password' required><br>")
|
||||
sb.Append("Confirmar Nueva Contraseña: <input type='password' name='confirm_password' required><br>")
|
||||
sb.Append("<button type='submit'>Actualizar Contraseña</button>")
|
||||
sb.Append("</form>")
|
||||
|
||||
' Sección para el resultado del comando
|
||||
sb.Append("<hr><h2>Resultado del Comando: '" & Command & "'</h2>")
|
||||
sb.Append("<div class='output'>")
|
||||
|
||||
' 3. --- Lógica de TUS COMANDOS (modificada para usar sb.Append) ---
|
||||
If Command = "reload" Then
|
||||
Private estaDB As String = ""
|
||||
For i = 0 To Main.listaDeCP.Size - 1
|
||||
Main.Connectors.Get(Main.listaDeCP.get(i)).As(RDCConnector).Initialize(Main.listaDeCP.get(i))
|
||||
If Main.listaDeCP.get(i) <> "DB1" Then estaDB = "." & Main.listaDeCP.get(i) Else estaDB = ""
|
||||
sb.Append($"Recargando config${estaDB}.properties ($DateTime{DateTime.Now})<br/>"$)
|
||||
sb.Append($"Queries en config.properties: <b>${Main.Connectors.Get(Main.listaDeCP.get(i)).As(RDCConnector).commands.Size}</b><br/>"$)
|
||||
sb.Append($"<b>JdbcUrl:</b> ${Main.Connectors.Get(Main.listaDeCP.get(i)).As(RDCConnector).config.Get("JdbcUrl")}</b><br/>"$)
|
||||
sb.Append($"<b>User:</b> ${Main.Connectors.Get(Main.listaDeCP.get(i)).As(RDCConnector).config.Get("User")}</b><br/>"$)
|
||||
sb.Append($"<b>ServerPort:</b> ${Main.srvr.Port}</b><br/><br/>"$)
|
||||
Next
|
||||
else If Command = "stop" Then
|
||||
' Tu código para "stop"
|
||||
else If Command = "rsx" Then
|
||||
Log($"Ejecutamos ${File.DirApp}\start.bat"$)
|
||||
sb.Append($"Ejecutamos ${File.DirApp}\start.bat"$)
|
||||
Public shl As Shell
|
||||
shl.Initialize("shl","cmd",Array("/c",File.DirApp & "\start.bat " & Main.srvr.Port))
|
||||
shl.WorkingDirectory = File.DirApp
|
||||
shl.Run(-1)
|
||||
else If Command = "rpm2" Then
|
||||
Log($"Ejecutamos ${File.DirApp}\reiniciaProcesoPM2.bat"$)
|
||||
sb.Append($"Ejecutamos ${File.DirApp}\reiniciaProcesoPM2.bat"$)
|
||||
Public shl As Shell
|
||||
shl.Initialize("shl","cmd",Array("/c",File.DirApp & "\reiniciaProcesoPM2.bat " & Main.srvr.Port))
|
||||
shl.WorkingDirectory = File.DirApp
|
||||
shl.Run(-1)
|
||||
else If Command = "reviveBow" Then
|
||||
Log($"Ejecutamos ${File.DirApp}\reiniciaProcesoBow.bat"$)
|
||||
sb.Append($"Ejecutamos ${File.DirApp}\reiniciaProcesoBow.bat<br><br>"$)
|
||||
sb.Append($"!!!BOW REINICIANDO!!!"$)
|
||||
Public shl As Shell
|
||||
shl.Initialize("shl","cmd",Array("/c",File.DirApp & "\reiniciaProcesoBow.bat " & Main.srvr.Port))
|
||||
shl.WorkingDirectory = File.DirApp
|
||||
shl.Run(-1)
|
||||
else if Command = "totalrequests" Then
|
||||
If GlobalParameters.mpTotalRequests.IsInitialized Then
|
||||
j.Initialize(GlobalParameters.mpTotalRequests)
|
||||
j.ToString
|
||||
resp.Write(j.ToString)
|
||||
End If
|
||||
else if Command = "totalblocked" Then
|
||||
If GlobalParameters.mpBlockConnection.IsInitialized Then
|
||||
j.Initialize(GlobalParameters.mpBlockConnection)
|
||||
j.ToString
|
||||
resp.Write(j.ToString)
|
||||
End If
|
||||
else if Command = "totalcon" Then
|
||||
If GlobalParameters.mpTotalConnections.IsInitialized Then
|
||||
j.Initialize(GlobalParameters.mpTotalConnections)
|
||||
j.ToString
|
||||
resp.Write(j.ToString)
|
||||
sb.Append(j.ToString)
|
||||
End If
|
||||
else if Command = "ping" Then
|
||||
resp.Write($"<a href="/test">Test</a> | <a href="/manager?command=reload">Reload</a> | <a href="/manager?command=rpm2">Reiniciar</a> | <a href="/manager?command=reviveBow">Revive Bow</a> | </br></br>"$)
|
||||
resp.Write($"Pong"$)
|
||||
sb.Append($"Pong ($DateTime{DateTime.Now})"$)
|
||||
End If
|
||||
'...(aquí continuaría el resto de tus Else If)...
|
||||
|
||||
|
||||
' 4. --- Cerramos la página y la enviamos TODA JUNTA ---
|
||||
sb.Append("</div>") ' Cierre de div.output
|
||||
sb.Append("<p class='logout'><a href='/logout'>Cerrar Sesión</a></p>")
|
||||
sb.Append("</body></html>")
|
||||
|
||||
resp.Write(sb.ToString) ' Se envía toda la página de una vez
|
||||
|
||||
' Lógica final de logs (se mantiene igual)
|
||||
If GlobalParameters.mpLogs.IsInitialized Then GlobalParameters.mpLogs.Put(Command, "Manager : " & Command & " - Time : " & DateTime.Time(DateTime.Now))
|
||||
End Sub
|
||||
'Sub shl11_ProcessCompleted (Success As Boolean, ExitCode As Int, StdOut As String, StdErr As String)
|
||||
' If Success Then
|
||||
' Log(Success)
|
||||
' End If
|
||||
'End Sub
|
||||
|
||||
|
||||
Reference in New Issue
Block a user