/*
* Connection.java
*
* Created on 03 February 2005, 05:54
*/
package org.owasp.webscarab.plugin.proxy;
import java.net.Socket;
import java.net.InetAddress;
import java.io.IOException;
import org.owasp.webscarab.model.Request;
import org.owasp.webscarab.model.Response;
/**
* This is a scriptable object, which represents a connection from a browser,
* the request that the browser submits, and the response that is returned.
* @author rogan
*/
public class ScriptableConnection {
private Socket _socket = null;
private Request _request = null;
private Response _response = null;
/** Creates a new instance of Connection */
public ScriptableConnection(Socket socket) {
_socket = socket;
}
/**
* This is the address of the remote host that is connected.
* If the connection should not be allowed, call connection.closeConnection();
* @return the address of the remote host
*/
public InetAddress getAddress() {
return _socket.getInetAddress();
}
/**
* closes the connection to the browser
*/
public void closeConnection() {
try {
_socket.close();
} catch (IOException ioe) {}
}
/**
* Sets the Request object that will be sent to the server.
*
* Don't change this in a script that modifies the Response
*
* Set the Request to null to abort the request, and send an error back to the browser
* If you set the response as well, that response will be returned to the browser, and
* nothing will be added to the model
* @param request The request that should be sent to the server
*/
public void setRequest(Request request) {
_request = request;
}
/**
* Can be called by a script to get the request that will be sent to the server
* @return the Request that will be sent to the server
*/
public Request getRequest() {
return _request;
}
/**
* Sets the Response that will be sent back to the browser.
*
* If this is called before the request has ben sent to the server, the request
* will be aborted, and the response will be sent back to the browser.
* @param response the response to send back to the browser
*/
public void setResponse(Response response) {
_response = response;
}
/**
* Gets the Response that was returned by the server
* @return the Response that was returned by the server
*/
public Response getResponse() {
return _response;
}
}