mtinyproxy.java

来自「httptunnel.jar httptunnel java 源码」· Java 代码 · 共 81 行

JAVA
81
字号
package net.jumperz.app.MGuardian.plugin;

import java.io.*;
import java.util.*;
import java.net.*;
import net.jumperz.net.*;
import net.jumperz.util.*;
import net.jumperz.app.MGuardian.*;

public class MTinyProxy
extends MGuardianPlugin
{
//--------------------------------------------------------------------------------
public Map execute( Map sessionInfo )
throws IOException
{
MHttpRequest request = ( MHttpRequest )sessionInfo.get( "request" );
String uriStr = request.getUri();

if( uriStr.indexOf( "http://" ) != 0 )
	{
	return null;
	}

URI uri = null;
try
	{
	uri = new URI( uriStr );
	}
catch( URISyntaxException e )
	{
	throw new IOException( e.getMessage() );
	}

String host = uri.getHost();
InetAddress inetAddress = InetAddress.getByName( host );
int port = uri.getPort();
if( port == -1 )
	{
	port = 80;
	}

uriStr = uriStr.substring( 7 );
int index = uriStr.indexOf( '/' );
if( index == -1 )
	{
	return null;
	}

uriStr = uriStr.substring( index );
request.setUri( uriStr );

Socket oldSocket = ( Socket )sessionInfo.get( "serverSideSocket" );
if( oldSocket == null )
	{
	Socket serverSideSocket = new Socket( host, port );
	Map pluginResult = new HashMap();
	pluginResult.put( "serverSideSocket", serverSideSocket );
	return pluginResult;
	}
else
	{
	if( oldSocket.getInetAddress().equals( inetAddress ) 
	 && oldSocket.getPort() == port 
	  )
		{
			// reuse socket
		return null;
		}
	else
		{
			// change socket
		Socket serverSideSocket = new Socket( host, port );
		Map pluginResult = new HashMap();
		pluginResult.put( "serverSideSocket", serverSideSocket );
		return pluginResult;
		}
	}
}
//--------------------------------------------------------------------------------
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?