forked from I2P_Developers/i2p.i2p
* new configservice.jsp page that shuts down the router (and has hooks for a few other things)
* new safer way of shutting down the router per discussions with oOo (dealing with a graceful shutdown where the user updates their config before the shutdown is complete, etc) * graceful shutdown implemented in the router - shutdownGracefully(), cancelGracefulShutdown(), shutdownInProgress()
This commit is contained in:
@ -0,0 +1,46 @@
|
||||
package net.i2p.router.web;
|
||||
|
||||
import net.i2p.router.ClientTunnelSettings;
|
||||
|
||||
/**
|
||||
* Handler to deal with form submissions from the service config form and act
|
||||
* upon the values.
|
||||
*
|
||||
*/
|
||||
public class ConfigServiceHandler extends FormHandler {
|
||||
private String _action;
|
||||
private String _nonce;
|
||||
|
||||
public void ConfigNetHandler() {
|
||||
_action = null;
|
||||
_nonce = null;
|
||||
}
|
||||
|
||||
protected void processForm() {
|
||||
if (_action == null) return;
|
||||
if (_nonce == null) {
|
||||
addFormError("You trying to mess with me? Huh? Are you?");
|
||||
return;
|
||||
}
|
||||
String nonce = System.getProperty(ConfigServiceHandler.class.getName() + ".nonce");
|
||||
String noncePrev = System.getProperty(ConfigServiceHandler.class.getName() + ".noncePrev");
|
||||
if ( (!_nonce.equals(nonce)) && (!_nonce.equals(noncePrev)) ) {
|
||||
addFormError("Invalid nonce? Hmmm, someone is spoofing you. prev=["+ noncePrev + "] nonce=[" + nonce + "] param=[" + _nonce + "]");
|
||||
return;
|
||||
}
|
||||
if ("Shutdown gracefully".equals(_action)) {
|
||||
_context.router().shutdownGracefully();
|
||||
addFormNotice("Graceful shutdown initiated");
|
||||
} else if ("Shutdown immediately".equals(_action)) {
|
||||
_context.router().shutdown();
|
||||
addFormNotice("Shutdown immediately! boom bye bye bad bwoy");
|
||||
} else if ("Cancel graceful shutdown".equals(_action)) {
|
||||
_context.router().cancelGracefulShutdown();
|
||||
addFormNotice("Graceful shutdown cancelled");
|
||||
} else {
|
||||
addFormNotice("Blah blah blah. whatever. I'm not going to " + _action);
|
||||
}
|
||||
}
|
||||
public void setAction(String action) { _action = action; }
|
||||
public void setNonce(String nonce) { _nonce = nonce; }
|
||||
}
|
Reference in New Issue
Block a user