changes to fix web interface
authorbdemsky <bdemsky>
Tue, 5 Jun 2007 19:51:55 +0000 (19:51 +0000)
committerbdemsky <bdemsky>
Tue, 5 Jun 2007 19:51:55 +0000 (19:51 +0000)
Robust/src/Interface/HTTPHeader.java
Robust/src/Interface/HTTPServices.java
Robust/src/Interface/JhttpWorker.java
Robust/src/Interface/WebInterface.java

index db7d206c9032435b235a8e7a34b67323eee74d4e..b862c5fc01336f6eae36c51ec7e534abeb6fd49e 100644 (file)
@@ -57,7 +57,7 @@ public class HTTPHeader{
 // Purpose:     Send an HTTP header
 //*************************************************************************
 
-  static public void send_header(BufferedWriter out, int returnCode,
+  static public void send_header(OutputStream out, int returnCode,
                                   String filename, long fileLength){
       String contentType  = getContentTypeFor(filename);
       String returnString = (String) rc.get(String.valueOf(returnCode));
@@ -72,10 +72,10 @@ public class HTTPHeader{
          "Content-Type: " + contentType + "\n" +        // type
          "Content-Length: "+ fileLength + "\n\n";       // length
       try{
-         out.write(header,0,header.length());
+         out.write(header.getBytes());
       }
       catch(IOException e){
-         ; // do nothing!
+         e.printStackTrace(); // do nothing!
       }
   }
 
index be380a002054b8297ff07cd1903a9c33a06f7dff..30804fb8234762a8e8e724bdd547fbdb52c7f1cd 100644 (file)
@@ -7,8 +7,7 @@ public class HTTPServices{
 
     static private String webRoot = ".";
 
-    static private Reader get_reader(String fileName,HTTPResponse resp) throws IOException{
-       try{
+    static private FileInputStream get_reader(String fileName,HTTPResponse resp) throws IOException{
 //         if(fileName.equals("/daytime")){
 //             String date_str = (new Date()).toString();
 //             resp.sentBytes = date_str.length();
@@ -23,24 +22,18 @@ public class HTTPServices{
            
            File f = new File(fileName);
            resp.sentBytes = f.length();
-           return new FileReader(f);
-       }
-       catch(IOException e){
-           resp.returnCode = 501;
-           return
-               new StringReader("Error accessing " + fileName);
-       }
+           return new FileInputStream(f);
     }
 
-    public static void GET_handler(String fileName, BufferedWriter out,HTTPResponse resp){
+    public static void GET_handler(String fileName, OutputStream out, HTTPResponse resp){
        
-       BufferedReader reader  = null;
-       char buffer[];
+       FileInputStream reader  = null;
+       byte buffer[];
        int size;
 
        if((reader = HEAD_handler_int(fileName,out,resp)) == null) return;
 
-       buffer = new char[1024];
+       buffer = new byte[1024];
 
        try{
            while((size = reader.read(buffer,0,buffer.length)) != -1)
@@ -54,16 +47,16 @@ public class HTTPServices{
 
     }
 
-    public static void POST_handler(String fileName, BufferedWriter out, HTTPResponse resp){
-       GET_handler(fileName,out,resp);
+    public static void POST_handler(String fileName, OutputStream out, HTTPResponse resp){
+       GET_handler(fileName,out, resp);
     }
 
-    static private BufferedReader HEAD_handler_int(String fileName,
-                                                   BufferedWriter out,HTTPResponse resp){
-       BufferedReader reader = null;
+    static private FileInputStream HEAD_handler_int(String fileName,
+                                                   OutputStream out,HTTPResponse resp){
+       FileInputStream reader = null;
 
        try{
-           reader = new BufferedReader(get_reader(fileName, resp));
+           reader = get_reader(fileName, resp);
            resp.returnCode = 200;
        }
        catch(IOException e){
@@ -82,7 +75,7 @@ public class HTTPServices{
        
 
     public static void HEAD_handler(String fileName, 
-                                  BufferedWriter out, HTTPResponse resp){
+                                  OutputStream out, HTTPResponse resp){
        HEAD_handler_int(fileName,out,resp);
     }
 }
index f2f8bfebd51d6aaddf6d49422b74230c141403ff..4613422f50994e5aaaa22ffc3b755091952733ff 100644 (file)
@@ -34,20 +34,18 @@ public class JhttpWorker extends Thread{
        HTTPResponse resp = new HTTPResponse();
 
        BufferedReader  in = null;
-       BufferedWriter out = null;
+       OutputStream out = null;
 
        resp.returnCode = 200;
        resp.sentBytes = 0;
 
-       try{
+       try {
 
            in = new BufferedReader(
                   new InputStreamReader(
                    client.getInputStream()));
 
-           out = new BufferedWriter(
-                  new OutputStreamWriter(
-                   client.getOutputStream()));
+           out = client.getOutputStream();
        }
        catch(IOException e){
            // I'm not too good at HTTP. Normally, we should put some
@@ -59,6 +57,7 @@ public class JhttpWorker extends Thread{
        if(resp.returnCode == 200){
            // call the appropriate hanndler
            switch(method(in)){
+
            case 0:
                if (webinterface.specialRequest(fileName)) {
                    String newfile=webinterface.handleresponse(fileName, out, resp);
index 9b62ce3d79aeef78c37f37687e01bf5aaa2c0b42..eb88d969b33208f146ab1603bd7bd32e25e45601 100644 (file)
@@ -34,7 +34,7 @@ public class WebInterface {
        return false;
     }
 
-    public String handleresponse(String filename, BufferedWriter out, HTTPResponse resp) {
+    public String handleresponse(String filename, OutputStream out, HTTPResponse resp) {
        if (filename.equals("/index.html"))
            return indexpage(out, resp);
        if (taskmap.containsKey(filename))
@@ -44,7 +44,7 @@ public class WebInterface {
        return "NORESP";
     }
 
-    private String flagstate(ClassDescriptor cd, BufferedWriter out, HTTPResponse resp) {
+    private String flagstate(ClassDescriptor cd, OutputStream out, HTTPResponse resp) {
        Set objects=taskanalysis.getFlagStates(cd);
        File file=new File(cd.getSymbol()+".dot");
        Vector namers=new Vector();
@@ -70,7 +70,7 @@ public class WebInterface {
        return null;
     }
 
-    private String taskstate(ClassDescriptor cd, BufferedWriter out, HTTPResponse resp) {
+    private String taskstate(ClassDescriptor cd, OutputStream out, HTTPResponse resp) {
        Set objects=taskgraph.getTaskNodes(cd);
        File file=new File(cd.getSymbol()+"-t.dot");
        try {
@@ -93,7 +93,7 @@ public class WebInterface {
     }
 
 
-    private String indexpage(BufferedWriter out, HTTPResponse resp) {
+    private String indexpage(OutputStream out, HTTPResponse resp) {
        PrintWriter pw=new PrintWriter(out);
        for(Iterator it_classes=state.getClassSymbolTable().getDescriptorsIterator();it_classes.hasNext();) {
            ClassDescriptor cd=(ClassDescriptor) it_classes.next();