feat: init commit
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
|
.idea/
|
||||||
# ---> Dart
|
# ---> Dart
|
||||||
# See https://www.dartlang.org/guides/libraries/private-files
|
# See https://www.dartlang.org/guides/libraries/private-files
|
||||||
|
|
||||||
|
|||||||
3
CHANGELOG.md
Normal file
3
CHANGELOG.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
## 1.0.0
|
||||||
|
|
||||||
|
- Initial version, created by Stagehand
|
||||||
@@ -1,2 +1,4 @@
|
|||||||
# simple-dart-tcp-proxy
|
A simple command-line application.
|
||||||
|
|
||||||
|
Created from templates made available by Stagehand under a BSD-style
|
||||||
|
[license](https://github.com/dart-lang/stagehand/blob/master/LICENSE).
|
||||||
|
|||||||
14
analysis_options.yaml
Normal file
14
analysis_options.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Defines a default set of lint rules enforced for
|
||||||
|
# projects at Google. For details and rationale,
|
||||||
|
# see https://github.com/dart-lang/pedantic#enabled-lints.
|
||||||
|
include: package:pedantic/analysis_options.yaml
|
||||||
|
|
||||||
|
# For lint rules and documentation, see http://dart-lang.github.io/linter/lints.
|
||||||
|
# Uncomment to specify additional rules.
|
||||||
|
# linter:
|
||||||
|
# rules:
|
||||||
|
# - camel_case_types
|
||||||
|
|
||||||
|
analyzer:
|
||||||
|
# exclude:
|
||||||
|
# - path/to/excluded/files/**
|
||||||
25
bin/config.dart
Normal file
25
bin/config.dart
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
class HostAndPort {
|
||||||
|
String host;
|
||||||
|
int port;
|
||||||
|
}
|
||||||
|
|
||||||
|
class ManageConfig {
|
||||||
|
String listen;
|
||||||
|
}
|
||||||
|
|
||||||
|
class ProxyItemConfig {
|
||||||
|
String listen;
|
||||||
|
String backend;
|
||||||
|
List<String> allowIps;
|
||||||
|
}
|
||||||
|
|
||||||
|
class ProxyConfig {
|
||||||
|
ManageConfig managementConfig;
|
||||||
|
List<ProxyItemConfig> tcpListens;
|
||||||
|
}
|
||||||
|
|
||||||
|
ProxyConfig parseProxyConfig(String config) {
|
||||||
|
final jsonConfig = json.decode(config);
|
||||||
|
}
|
||||||
22
bin/simple_dart_tcp_proxy.dart
Normal file
22
bin/simple_dart_tcp_proxy.dart
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
import 'dart:io';
|
||||||
|
import 'config.dart';
|
||||||
|
|
||||||
|
void main(List<String> arguments) {
|
||||||
|
final listenAddress = "127.0.0.1";
|
||||||
|
final listenPort = 8801;
|
||||||
|
final targetHost = "";
|
||||||
|
final targetPort = 443;
|
||||||
|
|
||||||
|
// TODO ...
|
||||||
|
print('Hello world!');
|
||||||
|
}
|
||||||
|
|
||||||
|
void startListen(HostAndPort listen, HostAndPort target) {
|
||||||
|
ServerSocket.bind(listen.host, listen.port).then((serverSocket) {
|
||||||
|
Socket.connect(target.host, target.port).then((clientSocket) {
|
||||||
|
// TODO ...
|
||||||
|
});
|
||||||
|
// serverSocket.listen((event) { })
|
||||||
|
});
|
||||||
|
}
|
||||||
13
pubspec.yaml
Normal file
13
pubspec.yaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
name: simple_dart_tcp_proxy
|
||||||
|
description: A simple command-line application.
|
||||||
|
# version: 1.0.0
|
||||||
|
# homepage: https://www.example.com
|
||||||
|
|
||||||
|
environment:
|
||||||
|
sdk: '>=2.8.1 <3.0.0'
|
||||||
|
|
||||||
|
#dependencies:
|
||||||
|
# path: ^1.7.0
|
||||||
|
|
||||||
|
dev_dependencies:
|
||||||
|
pedantic: ^1.9.0
|
||||||
Reference in New Issue
Block a user