@@ -4,92 +4,15 @@ import 'package:http/http.dart' as http;
44import 'package:flutter_v2ray/flutter_v2ray.dart' ;
55import 'package:dart_ping/dart_ping.dart' ;
66import 'package:rxdart/rxdart.dart' ;
7- import 'package:vpnclient_engine_flutter/vpnclient_engine_flutter.dart' ;
87import 'package:vpnclient_engine_flutter/vpnclient_engine/core.dart' ;
9- import 'package:vpnclient_engine_flutter/vpnclient_engine/protocols/openvpn.dart' ;
8+ // import 'package:vpnclient_engine_flutter/vpnclient_engine/protocols/openvpn.dart';
109import 'package:vpnclient_engine_flutter/vpnclient_engine/protocols/v2ray.dart' ;
11- import 'package:vpnclient_engine_flutter/vpnclient_engine/protocols/wireguard.dart' ;
12-
13- enum Action { block, allow, routeThroughVPN, direct, proxy }
14-
15- class Server {
16- final String address;
17- final int ? latency;
18- final String ? location;
19- final bool ? isPreferred;
20-
21- Server ({
22- required this .address,
23- this .latency,
24- this .location,
25- this .isPreferred,
26- });
27- }
28-
29- class SubscriptionDetails {
30- final DateTime ? expiryDate;
31- final int ? dataLimit;
32- final int ? usedData;
33-
34- SubscriptionDetails ({this .expiryDate, this .dataLimit, this .usedData});
35- }
36-
37- class SessionStatistics {
38- final Duration ? sessionDuration;
39- final int dataInBytes;
40- final int dataOutBytes;
10+ //import 'package:vpnclient_engine_flutter/vpnclient_engine/protocols/wireguard.dart';
4111
42- SessionStatistics ({
43- this .sessionDuration,
44- required this .dataInBytes,
45- required this .dataOutBytes,
46- });
47- }
48-
49- class ErrorDetails {
50- final ErrorCode errorCode;
51- final String errorMessage;
52-
53- ErrorDetails ({required this .errorCode, required this .errorMessage});
54- }
55-
56- class ProxyConfig {
57- final ProxyType type;
58- final String address;
59- final int port;
60- final String ? credentials;
61-
62- ProxyConfig ({
63- required this .type,
64- required this .address,
65- required this .port,
66- this .credentials,
67- });
68- }
69-
70- class PingResult {
71- final int subscriptionIndex;
72- final int serverIndex;
73- final int latencyInMs;
74-
75- PingResult ({
76- required this .subscriptionIndex,
77- required this .serverIndex,
78- required this .latencyInMs,
79- });
80- }
81-
82- class RoutingRule {
83- final String ? appName;
84- final String ? domain;
85- final String action; // proxy, direct, block
86-
87- RoutingRule ({this .appName, this .domain, required this .action});
88- }
12+ export 'package:vpnclient_engine_flutter/vpnclient_engine/core.dart' ;
8913
9014class VPNclientEngine {
9115 static List <List <String >> _subscriptionServers = [];
92- static Map <int , ServerConnection > _connections = {};
9316 static List <String > _subscriptions = [];
9417
9518 static final _connectionStatusSubject = BehaviorSubject <ConnectionStatus >();
@@ -217,10 +140,10 @@ class VPNclientEngine {
217140 url.startsWith ('vmess://' ) ||
218141 url.startsWith ('v2ray://' )) {
219142 _vpnCore = V2RayCore ();
220- } else if (url.startsWith ('wg://' )) {
221- _vpnCore = WireGuardCore ();
222- } else if (url.startsWith ('openvpn://' ) || url.endsWith ('.ovpn' )) {
223- _vpnCore = OpenVPNCore ();
143+ // } else if (url.startsWith('wg://')) {
144+ // _vpnCore = WireGuardCore();
145+ // } else if (url.startsWith('openvpn://') || url.endsWith('.ovpn')) {
146+ // _vpnCore = OpenVPNCore();
224147 } else {
225148 _emitError (ErrorCode .unknownError, 'Unsupported URL format' );
226149 return ;
@@ -232,8 +155,8 @@ class VPNclientEngine {
232155 }
233156
234157 await _vpnCore.connect (
235- Server (address : _subscriptionServers[ subscriptionIndex][serverIndex]) ,
236- proxyConfig ,
158+ subscriptionIndex : subscriptionIndex,
159+ serverIndex : serverIndex ,
237160 );
238161 }
239162
0 commit comments