feat: *
This commit is contained in:
@@ -11,26 +11,40 @@ class HostAndPort {
|
|||||||
|
|
||||||
class ManageConfig {
|
class ManageConfig {
|
||||||
String listen;
|
String listen;
|
||||||
|
|
||||||
|
ManageConfig({this.listen});
|
||||||
}
|
}
|
||||||
|
|
||||||
class ProxyItemConfig {
|
class ProxyItemConfig {
|
||||||
String listen;
|
String listen;
|
||||||
String backend;
|
String backend;
|
||||||
List<String> allowIps;
|
List<String> allowIps;
|
||||||
|
|
||||||
|
ProxyItemConfig({this.listen, this.backend, this.allowIps});
|
||||||
}
|
}
|
||||||
|
|
||||||
class ProxyConfig {
|
class ProxyConfig {
|
||||||
ManageConfig managementConfig;
|
ManageConfig managementConfig;
|
||||||
List<ProxyItemConfig> tcpListens;
|
List<ProxyItemConfig> tcpListens;
|
||||||
|
|
||||||
|
ProxyConfig({this.managementConfig, this.tcpListens});
|
||||||
}
|
}
|
||||||
|
|
||||||
ProxyConfig parseProxyConfig(String config) {
|
ProxyConfig parseProxyConfig(String config) {
|
||||||
final jsonConfig = json.decode(config);
|
final jsonConfig = json.decode(config);
|
||||||
|
|
||||||
|
ManageConfig manageConfig = null;
|
||||||
final managementConfig = jsonConfig['managementConfig'];
|
final managementConfig = jsonConfig['managementConfig'];
|
||||||
if (managementConfig != null) {
|
if (managementConfig != null) {
|
||||||
final managementListen = managementConfig['listen'];
|
final managementListen = managementConfig['listen'];
|
||||||
}
|
}
|
||||||
|
List<ProxyItemConfig> outTcpListens = [];
|
||||||
|
final tcpListens = jsonConfig['tcpListens'];
|
||||||
|
final tcpListenList = List.from(tcpListens);
|
||||||
|
for (final tl in tcpListenList) {
|
||||||
|
print(tl);
|
||||||
|
}
|
||||||
|
|
||||||
print(managementConfig);
|
print(managementConfig);
|
||||||
|
|
||||||
// print(jsonConfig);
|
// print(jsonConfig);
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import 'dart:convert';
|
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'config.dart';
|
import 'config.dart';
|
||||||
|
|
||||||
@@ -8,34 +7,15 @@ int upstreamBytes = 0;
|
|||||||
int downstreamBytes = 0;
|
int downstreamBytes = 0;
|
||||||
Map<int, bool> createdConnectionMap = <int, bool>{};
|
Map<int, bool> createdConnectionMap = <int, bool>{};
|
||||||
|
|
||||||
void main(List<String> arguments) {
|
Future<void> main(List<String> arguments) async {
|
||||||
final listenAddress = "127.0.0.1";
|
print('Arguments: ' + arguments.toString());
|
||||||
final listenPort = 8801;
|
final proxyConfig = await loadProxyConfig(arguments[0]);
|
||||||
final targetHost = "";
|
|
||||||
final targetPort = 443;
|
|
||||||
|
|
||||||
parseProxyConfig('''{
|
for (final tcpListen in proxyConfig.tcpListens) {
|
||||||
"managementConfig": { "listen": "127.0.0.1:8888" },
|
final listen = parseHostAndPort(tcpListen.listen);
|
||||||
"tcpListens": [
|
final target = parseHostAndPort(tcpListen.backend);
|
||||||
{
|
startListen(listen, target);
|
||||||
"listen": ":8443",
|
|
||||||
"backend": "101.132.122.240:443",
|
|
||||||
"allowIps": ["127.0.0.1"]
|
|
||||||
}
|
}
|
||||||
]
|
|
||||||
}''');
|
|
||||||
parseProxyConfig('''{
|
|
||||||
"tcpListens": [
|
|
||||||
{
|
|
||||||
"listen": ":8443",
|
|
||||||
"backend": "101.132.122.240:443",
|
|
||||||
"allowIps": ["127.0.0.1"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}''');
|
|
||||||
|
|
||||||
// TODO ...
|
|
||||||
print('Hello world!');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void startListen(HostAndPort listen, HostAndPort target) {
|
void startListen(HostAndPort listen, HostAndPort target) {
|
||||||
|
|||||||
Reference in New Issue
Block a user