mirror of
https://github.com/tobychui/zoraxy.git
synced 2025-08-02 03:16:45 +02:00
Fixed #688
- Added auto restart after config change in static web server
This commit is contained in:
@@ -69,6 +69,12 @@ func (ws *WebServer) HandlePortChange(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
// Check if newPort is a valid TCP port number (1-65535)
|
||||
if newPort < 1 || newPort > 65535 {
|
||||
utils.SendErrorResponse(w, "invalid port number given")
|
||||
return
|
||||
}
|
||||
|
||||
err = ws.ChangePort(strconv.Itoa(newPort))
|
||||
if err != nil {
|
||||
utils.SendErrorResponse(w, err.Error())
|
||||
@@ -106,6 +112,17 @@ func (ws *WebServer) SetDisableListenToAllInterface(w http.ResponseWriter, r *ht
|
||||
utils.SendErrorResponse(w, "unable to save setting")
|
||||
return
|
||||
}
|
||||
|
||||
// Update the option in the web server instance
|
||||
ws.option.DisableListenToAllInterface = disableListen
|
||||
|
||||
// If the server is running and the setting is changed, we need to restart the server
|
||||
if ws.IsRunning() {
|
||||
err = ws.Restart()
|
||||
if err != nil {
|
||||
utils.SendErrorResponse(w, "unable to restart web server: "+err.Error())
|
||||
return
|
||||
}
|
||||
}
|
||||
utils.SendOK(w)
|
||||
}
|
||||
|
@@ -210,6 +210,27 @@ func (ws *WebServer) Stop() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ws *WebServer) Restart() error {
|
||||
if ws.isRunning {
|
||||
if err := ws.Stop(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if err := ws.Start(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
ws.option.Logger.PrintAndLog("static-webserv", "Static Web Server restarted. Listening on :"+ws.option.Port, nil)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ws *WebServer) IsRunning() bool {
|
||||
ws.mu.Lock()
|
||||
defer ws.mu.Unlock()
|
||||
return ws.isRunning
|
||||
}
|
||||
|
||||
// UpdateDirectoryListing enables or disables directory listing.
|
||||
func (ws *WebServer) UpdateDirectoryListing(enable bool) {
|
||||
ws.option.EnableDirectoryListing = enable
|
||||
|
Reference in New Issue
Block a user