This commit is contained in:
2021-05-22 00:50:41 +08:00
parent 14b9cd1176
commit 4f17632adf
2 changed files with 22 additions and 28 deletions

View File

@@ -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);

View File

@@ -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) {