From 4f17632adf4cbd38323cba60ec251d8ce483eb79 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sat, 22 May 2021 00:50:41 +0800 Subject: [PATCH] feat: * --- bin/config.dart | 14 ++++++++++++++ bin/main.dart | 36 ++++++++---------------------------- 2 files changed, 22 insertions(+), 28 deletions(-) diff --git a/bin/config.dart b/bin/config.dart index ea4c680..e95beac 100644 --- a/bin/config.dart +++ b/bin/config.dart @@ -11,26 +11,40 @@ class HostAndPort { class ManageConfig { String listen; + + ManageConfig({this.listen}); } class ProxyItemConfig { String listen; String backend; List allowIps; + + ProxyItemConfig({this.listen, this.backend, this.allowIps}); } class ProxyConfig { ManageConfig managementConfig; List 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 outTcpListens = []; + final tcpListens = jsonConfig['tcpListens']; + final tcpListenList = List.from(tcpListens); + for (final tl in tcpListenList) { + print(tl); + } + print(managementConfig); // print(jsonConfig); diff --git a/bin/main.dart b/bin/main.dart index ef18cb4..65ee770 100644 --- a/bin/main.dart +++ b/bin/main.dart @@ -1,4 +1,3 @@ -import 'dart:convert'; import 'dart:io'; import 'config.dart'; @@ -8,34 +7,15 @@ int upstreamBytes = 0; int downstreamBytes = 0; Map createdConnectionMap = {}; -void main(List arguments) { - final listenAddress = "127.0.0.1"; - final listenPort = 8801; - final targetHost = ""; - final targetPort = 443; +Future main(List 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) {