package net.gnehzr.tnoodle.server;
import java.net.InetAddress;
import java.util.LinkedHashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
public class DeathServlet extends SafeHttpServlet {
@Override
protected void wrappedService(HttpServletRequest request,
HttpServletResponse response, String[] path,
LinkedHashMap<String, String> query) throws Exception {
if(path.length == 1 && path[0].equals("now")) {
// If localhost makes a request to
// http://localhost:PORT/kill/now
// that's enough for us to commit honorable suicide.
InetAddress remote = InetAddress.getByName(request.getRemoteAddr());
System.out.print("Asked to kill myself by " + remote + "...");
if(remote.isLoopbackAddress()) {
// Only kill ourselves if someone on this machine requested it
sendText(request, response, "Nice knowing ya'!");
System.out.println("committing suicide");
System.exit(0);
}
System.out.println("ignoring request");
}
sendText(request, response, TNoodleServer.NAME + "-" + TNoodleServer.VERSION);
}
}