home *** CD-ROM | disk | FTP | other *** search
Wrap
package sun.rmi.transport.proxy; import java.util.Hashtable; public final class CGIHandler { static int ContentLength = Integer.getInteger("CONTENT_LENGTH", 0); static String QueryString = System.getProperty("QUERY_STRING", ""); static String RequestMethod = System.getProperty("REQUEST_METHOD", ""); static String ServerName = System.getProperty("SERVER_NAME", ""); static int ServerPort = Integer.getInteger("SERVER_PORT", 0); private static CGICommandHandler[] commands = new CGICommandHandler[]{new CGIForwardCommand(), new CGIGethostnameCommand(), new CGIPingCommand(), new CGITryHostnameCommand()}; private static Hashtable commandLookup = new Hashtable(); private CGIHandler() { } public static void main(String[] var0) { try { int var3 = QueryString.indexOf("="); String var1; String var2; if (var3 == -1) { var1 = QueryString; var2 = ""; } else { var1 = QueryString.substring(0, var3); var2 = QueryString.substring(var3 + 1); } CGICommandHandler var4 = (CGICommandHandler)commandLookup.get(var1); if (var4 != null) { try { var4.execute(var2); } catch (CGIClientException var6) { returnClientError(((Throwable)var6).getMessage()); } catch (CGIServerException var7) { returnServerError(((Throwable)var7).getMessage()); } } else { returnClientError("invalid command: " + var1); } } catch (Exception var8) { returnServerError("internal error: " + ((Throwable)var8).getMessage()); } System.exit(0); } private static void returnClientError(String var0) { System.out.println("Status: 400 Bad Request: " + var0); System.out.println("Content-type: text/html"); System.out.println(""); System.out.println("<HTML><HEAD><TITLE>Java RMI Client Error</TITLE></HEAD><BODY>"); System.out.println("<H1>Java RMI Client Error</H1>"); System.out.println(""); System.out.println(var0); System.out.println("</BODY></HTML>"); System.exit(1); } private static void returnServerError(String var0) { System.out.println("Status: 500 Server Error: " + var0); System.out.println("Content-type: text/html"); System.out.println(""); System.out.println("<HTML><HEAD><TITLE>Java RMI Server Error</TITLE></HEAD><BODY>"); System.out.println("<H1>Java RMI Server Error</H1>"); System.out.println(""); System.out.println(var0); System.out.println("</BODY></HTML>"); System.exit(1); } static { for(int var0 = 0; var0 < commands.length; ++var0) { commandLookup.put(commands[var0].getName(), commands[var0]); } } }