// 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));
"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!
}
}
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();
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)
}
- 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){
public static void HEAD_handler(String fileName,
- BufferedWriter out, HTTPResponse resp){
+ OutputStream out, HTTPResponse resp){
HEAD_handler_int(fileName,out,resp);
}
}
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
if(resp.returnCode == 200){
// call the appropriate hanndler
switch(method(in)){
+
case 0:
if (webinterface.specialRequest(fileName)) {
String newfile=webinterface.handleresponse(fileName, out, resp);
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))
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();
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 {
}
- 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();