format proxy code, allow to change swf on the fly

This commit is contained in:
honfika@gmail.com
2014-09-01 16:56:55 +02:00
parent 8325d07b24
commit ed53ba9d0f
37 changed files with 1847 additions and 2267 deletions

View File

@@ -7,8 +7,8 @@ import java.io.IOException;
import java.io.DataOutputStream;
import java.util.List;
public class Server implements Runnable
{
public class Server implements Runnable {
ServerSocket server = null;
boolean running = false;
@@ -17,145 +17,121 @@ public class Server implements Runnable
private ReplacedListener replacedListener;
private List<Replacement> replacements;
static ThreadPool pool;
static ThreadPool pool;
static Server myServer;
static boolean serverRunning=false;
static boolean serverRunning = false;
static boolean stopping=false;
static boolean stopping = false;
public static ReusableThread getThread()
{
return pool.get();
public static ReusableThread getThread() {
return pool.get();
}
/**
* Starts proxy server
*
* @param port Listening port
* @param replacements List of replacements
* @param port Listening port
* @param replacements List of replacements
* @param catchedContentTypes Content types to sniff
* @param catchedListener Catched listener
* @param catchedListener Catched listener
*/
public static boolean startServer(int port, List<Replacement> replacements, List<String> catchedContentTypes, CatchedListener catchedListener, ReplacedListener replacedListener) {
stopServer();
try {
myServer = new Server(port, replacements, catchedContentTypes, catchedListener, replacedListener);
} catch (IOException ex) {
return false;
}
pool = new ThreadPool(ProxyConfig.appName+" Threads");
try {
myServer = new Server(port, replacements, catchedContentTypes, catchedListener, replacedListener);
} catch (IOException ex) {
return false;
}
pool = new ThreadPool(ProxyConfig.appName + " Threads");
/* Startup the Janitor */
Janitor j = new Janitor();
j.add(pool);
getThread().setRunnable(j);
serverRunning=true;
getThread().setRunnable(myServer);
return true;
Janitor j = new Janitor();
j.add(pool);
getThread().setRunnable(j);
serverRunning = true;
getThread().setRunnable(myServer);
return true;
}
public static void stopServer() {
if (serverRunning) {
serverRunning = false;
try {
myServer.server.close();
} catch (IOException ex) {
public static void stopServer()
{
if(serverRunning){
serverRunning=false;
try {
myServer.server.close();
} catch (IOException ex) {
}
pool.clean();
}
}
pool.clean();
}
}
Server(int port,List<Replacement> replacements, List<String> catchedContentTypes, CatchedListener catchedListener, ReplacedListener replacedListener) throws IOException
{
this.replacements = replacements;
this.catchedContentTypes = catchedContentTypes;
Server(int port, List<Replacement> replacements, List<String> catchedContentTypes, CatchedListener catchedListener, ReplacedListener replacedListener) throws IOException {
this.replacements = replacements;
this.catchedContentTypes = catchedContentTypes;
this.catchedListener = catchedListener;
this.replacedListener = replacedListener;
try
{
String bindaddr = ProxyConfig.bindAddress;
if (bindaddr != null && bindaddr.length() > 0)
{
server = new ServerSocket(port, 512,
InetAddress.getByName(bindaddr));
}
else
{
server = new ServerSocket(port, 512);
}
}
catch (IOException e)
{
throw e;
}
/* Initialize internal Httpd */
try {
String bindaddr = ProxyConfig.bindAddress;
if (bindaddr != null && bindaddr.length() > 0) {
server = new ServerSocket(port, 512,
InetAddress.getByName(bindaddr));
} else {
server = new ServerSocket(port, 512);
}
} catch (IOException e) {
throw e;
}
/* Initialize internal Httpd */
}
synchronized void suspend()
{
running = false;
synchronized void suspend() {
running = false;
}
synchronized void resume()
{
running = true;
synchronized void resume() {
running = true;
}
public void run() {
Thread.currentThread().setName(ProxyConfig.appName + " Server");
running = true;
for (;;) {
Socket socket;
public void run()
{
Thread.currentThread().setName(ProxyConfig.appName+" Server");
running = true;
for (;;)
{
Socket socket;
try {
socket = server.accept();
} catch (IOException e) {
if (stopping) {
break;
}
continue;
}
try
{
socket = server.accept();
}
catch (IOException e)
{
if(stopping){
break;
}
continue;
}
if (stopping) {
break;
}
if(stopping){
break;
}
if (running)
{
Handler h = new Handler(socket,replacements,catchedContentTypes,catchedListener,replacedListener);
ReusableThread rt = getThread();
rt.setRunnable(h);
}
else
{
error(socket, 503, ProxyConfig.appName+" proxy service is suspended.");
}
}
if (running) {
Handler h = new Handler(socket, replacements, catchedContentTypes, catchedListener, replacedListener);
ReusableThread rt = getThread();
rt.setRunnable(h);
} else {
error(socket, 503, ProxyConfig.appName + " proxy service is suspended.");
}
}
}
void error(Socket socket, int code, String message)
{
try
{
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeBytes((new HttpError(code, message)).toString());
out.close();
socket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
void error(Socket socket, int code, String message) {
try {
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeBytes((new HttpError(code, message)).toString());
out.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}