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 {
String listen;
ManageConfig({this.listen});
}
class ProxyItemConfig {
String listen;
String backend;
List<String> allowIps;
ProxyItemConfig({this.listen, this.backend, this.allowIps});
}
class ProxyConfig {
ManageConfig managementConfig;
List<ProxyItemConfig> tcpListens;
ProxyConfig({this.managementConfig, this.tcpListens});
}
ProxyConfig parseProxyConfig(String config) {
final jsonConfig = json.decode(config);
ManageConfig manageConfig = null;
final managementConfig = jsonConfig['managementConfig'];
if (managementConfig != null) {
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(jsonConfig);

View File

@@ -1,4 +1,3 @@
import 'dart:convert';
import 'dart:io';
import 'config.dart';
@@ -8,34 +7,15 @@ int upstreamBytes = 0;
int downstreamBytes = 0;
Map<int, bool> createdConnectionMap = <int, bool>{};
void main(List<String> arguments) {
final listenAddress = "127.0.0.1";
final listenPort = 8801;
final targetHost = "";
final targetPort = 443;
Future<void> main(List<String> arguments) async {
print('Arguments: ' + arguments.toString());
final proxyConfig = await loadProxyConfig(arguments[0]);
parseProxyConfig('''{
"managementConfig": { "listen": "127.0.0.1:8888" },
"tcpListens": [
{
"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!');
for (final tcpListen in proxyConfig.tcpListens) {
final listen = parseHostAndPort(tcpListen.listen);
final target = parseHostAndPort(tcpListen.backend);
startListen(listen, target);
}
}
void startListen(HostAndPort listen, HostAndPort target) {