Commit f130feff authored by Administrator's avatar Administrator

update

parent 5bfb543f
......@@ -6,7 +6,10 @@ dependencies {
implementation 'org.slf4j:slf4j-api:1.7.24'
implementation 'com.google.guava:guava:23.4-android'
implementation 'org.apache.commons:commons-lang3:3.7'
implementation 'org.littleshoot:dnssec4j:0.1.6'
compile('org.littleshoot:dnssec4j:0.1.6') {
exclude group: 'org.slf4j', module: 'slf4j-log4j12'
exclude group: 'log4j', module: 'log4j'
}
}
sourceCompatibility = "1.7"
......
package org.littleshoot.proxy;
import org.apache.log4j.xml.DOMConfigurator;
//import org.apache.log4j.xml.DOMConfigurator;
import org.littleshoot.proxy.impl.DefaultHttpProxyServer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -30,7 +30,7 @@ public class Launcher {
* @param port Any command line arguments.
*/
public static void startHttpProxyService(int port) {
pollLog4JConfigurationFileIfAvailable();
// pollLog4JConfigurationFileIfAvailable();
System.out.println("About to start server on port: " + port);
HttpProxyServerBootstrap bootstrap = DefaultHttpProxyServer
......@@ -43,11 +43,11 @@ public class Launcher {
bootstrap.start();
}
private static void pollLog4JConfigurationFileIfAvailable() {
File log4jConfigurationFile = new File("src/test/resources/log4j.xml");
if (log4jConfigurationFile.exists()) {
DOMConfigurator.configureAndWatch(
log4jConfigurationFile.getAbsolutePath(), 15);
}
}
// private static void pollLog4JConfigurationFileIfAvailable() {
// File log4jConfigurationFile = new File("src/test/resources/log4j.xml");
// if (log4jConfigurationFile.exists()) {
// DOMConfigurator.configureAndWatch(
// log4jConfigurationFile.getAbsolutePath(), 15);
// }
// }
}
......@@ -57,7 +57,10 @@ dependencies {
api 'ir.mtajik.android:advancedsmsmanager:1.1.0'
api 'com.google.dagger:dagger:2.7'
annotationProcessor 'com.google.dagger:dagger-compiler:2.7'
implementation project(':g4proxy-new')
api project(':g4proxy-new')
api 'com.github.tony19:logback-android:1.3.0-2'
// compileOnly 'org.projectlombok:lombok:1.18.2'
}
......@@ -81,15 +81,14 @@
</intent-filter>
</receiver>
<!--覆盖安装后唤醒service-->
<receiver android:name="com.virjar.g4proxy.SelfStartReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package"/>
</intent-filter>
</receiver>
<!--&lt;!&ndash;覆盖安装后唤醒service&ndash;&gt;-->
<!--<receiver android:name="com.virjar.g4proxy.SelfStartReceiver">-->
<!--<intent-filter>-->
<!--<action android:name="android.intent.action.PACKAGE_REPLACED" />-->
<!--<data android:scheme="package" />-->
<!--</intent-filter>-->
<!--</receiver>-->
<service
android:name="top.wuhaojie.installerlibrary.InstallAccessibilityService"
......@@ -119,7 +118,7 @@
<service
android:name="com.virjar.g4proxy.AppUpdateService"
android:enabled="true"
android:exported="true"></service>
android:exported="true" />
</application>
</manifest>
\ No newline at end of file
......@@ -19,13 +19,14 @@ import com.tencent.mm.R;
import com.virjar.g4proxy_new.client.G4ProxyClient;
import com.virjar.g4proxy_new.client.LittelProxyBootstrap;
import com.virjar.nat.ALOG;
import com.virjar.nat.client.ProxyClient;
import com.virjar.nat.protocol.Constants;
import org.littleshoot.proxy.Launcher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.concurrent.atomic.AtomicBoolean;
import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
/**
......@@ -33,10 +34,14 @@ import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
*/
public class HttpProxyService extends Service {
private static final Logger log = LoggerFactory.getLogger(HttpProxyService.class);
@Nullable
@Override
public IBinder onBind(Intent intent) {
startService();
return null;
}
......@@ -143,6 +148,8 @@ public class HttpProxyService extends Service {
//新的代理服务器实现
LogbackConfig.config();
//默认使用3128,为了不影响之前的代码,先设置为3129
LittelProxyBootstrap.setLittelServerPort(3129);
G4ProxyClient g4ProxyClient = new G4ProxyClient("www.scumall.com", 50000, clientKey);
......@@ -151,4 +158,5 @@ public class HttpProxyService extends Service {
// g4ProxyClient2.startup();
}
}
package com.virjar.g4proxy;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.android.LogcatAppender;
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
public class LogbackConfig {
static {
configLog();
}
public static void config() {
}
private static void configLog() {
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
context.reset();
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setPattern("g4Proxy-%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n");
encoder.setContext(context);
encoder.start();
LogcatAppender logcatAppender = new LogcatAppender();
logcatAppender.setContext(context);
logcatAppender.setEncoder(encoder);
logcatAppender.setName("logcat1");
logcatAppender.start();
Logger root = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
root.setLevel(Level.INFO);
root.addAppender(logcatAppender);
}
}
......@@ -25,6 +25,12 @@ public class ClientIdleCheckHandler extends IdleStateHandler {
proxyMessage.setType(NatMessage.TYPE_HEARTBEAT);
ctx.channel().writeAndFlush(proxyMessage);
} else if (IdleStateEvent.FIRST_READER_IDLE_STATE_EVENT == evt) {
//不能在readTimeout的时候,就判定超时。比如在下载大文件的时候,只有数据写。没有写idle发生。也就没有heartbeat的ack。不会产生heartbeat的响应包
log.info("first read idle, write a heartbeat message to server");
NatMessage proxyMessage = new NatMessage();
proxyMessage.setType(NatMessage.TYPE_HEARTBEAT);
ctx.channel().writeAndFlush(proxyMessage);
} else if (IdleStateEvent.READER_IDLE_STATE_EVENT == evt) {
log.info("read timeout,close channel");
ctx.channel().close();
log.info("the cmd channel lost,restart client");
......
......@@ -30,12 +30,18 @@ public class NatClientChannelHandler extends SimpleChannelInboundHandler<NatMess
case NatMessage.TYPE_DISCONNECT:
handleDisconnectMessage(ctx, msg);
break;
case NatMessage.TYPE_HEARTBEAT:
handleHeartbeatMessage();
break;
default:
log.warn("Unknown message type:{}", msg.getType());
break;
}
}
private void handleHeartbeatMessage() {
log.info("receive heartbeat message from nat server");
}
private void handleDisconnectMessage(ChannelHandlerContext ctx, NatMessage msg) {
long serialNumber = msg.getSerialNumber();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment