From 5a81f15c6e8fe931d9a219dfa4985f61305e5e39 Mon Sep 17 00:00:00 2001 From: bdemsky Date: Tue, 5 Jun 2007 19:51:55 +0000 Subject: [PATCH] changes to fix web interface --- Robust/src/Interface/HTTPHeader.java | 6 ++--- Robust/src/Interface/HTTPServices.java | 33 ++++++++++---------------- Robust/src/Interface/JhttpWorker.java | 9 ++++--- Robust/src/Interface/WebInterface.java | 8 +++---- 4 files changed, 24 insertions(+), 32 deletions(-) diff --git a/Robust/src/Interface/HTTPHeader.java b/Robust/src/Interface/HTTPHeader.java index db7d206c..b862c5fc 100644 --- a/Robust/src/Interface/HTTPHeader.java +++ b/Robust/src/Interface/HTTPHeader.java @@ -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! } } diff --git a/Robust/src/Interface/HTTPServices.java b/Robust/src/Interface/HTTPServices.java index be380a00..30804fb8 100644 --- a/Robust/src/Interface/HTTPServices.java +++ b/Robust/src/Interface/HTTPServices.java @@ -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); } } diff --git a/Robust/src/Interface/JhttpWorker.java b/Robust/src/Interface/JhttpWorker.java index f2f8bfeb..4613422f 100644 --- a/Robust/src/Interface/JhttpWorker.java +++ b/Robust/src/Interface/JhttpWorker.java @@ -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); diff --git a/Robust/src/Interface/WebInterface.java b/Robust/src/Interface/WebInterface.java index 9b62ce3d..eb88d969 100644 --- a/Robust/src/Interface/WebInterface.java +++ b/Robust/src/Interface/WebInterface.java @@ -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(); -- 2.34.1