mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2025-02-02 03:06:29 +00:00
use tor for nodes
This commit is contained in:
parent
7a01682bff
commit
f7ddaa1f73
2 changed files with 30 additions and 7 deletions
|
@ -38,8 +38,8 @@ class JsonRPC {
|
||||||
final _JsonRPCRequestQueue _requestQueue = _JsonRPCRequestQueue();
|
final _JsonRPCRequestQueue _requestQueue = _JsonRPCRequestQueue();
|
||||||
Socket? _socket;
|
Socket? _socket;
|
||||||
SOCKSSocket? _socksSocket;
|
SOCKSSocket? _socksSocket;
|
||||||
StreamSubscription<Uint8List>? _subscription;
|
StreamSubscription<List<int>>? _subscription;
|
||||||
StreamSubscription<Uint8List>? get subscription => _subscription;
|
StreamSubscription<List<int>>? get subscription => _subscription;
|
||||||
|
|
||||||
void _dataHandler(List<int> data) {
|
void _dataHandler(List<int> data) {
|
||||||
_requestQueue.nextIncompleteReq.then((req) {
|
_requestQueue.nextIncompleteReq.then((req) {
|
||||||
|
@ -86,7 +86,7 @@ class JsonRPC {
|
||||||
_socket!.write('${req.jsonRequest}\r\n');
|
_socket!.write('${req.jsonRequest}\r\n');
|
||||||
}
|
}
|
||||||
if (_socksSocket != null) {
|
if (_socksSocket != null) {
|
||||||
_socksSocket!.write('${req.jsonRequest}\r\n\n');
|
_socksSocket!.write('${req.jsonRequest}\r\n');
|
||||||
// _socksSocket!.socket.writeln('${req.jsonRequest}\r\n');
|
// _socksSocket!.socket.writeln('${req.jsonRequest}\r\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,7 +248,7 @@ class JsonRPC {
|
||||||
"JsonRPC.connect(): failed to connect to tor proxy, $e");
|
"JsonRPC.connect(): failed to connect to tor proxy, $e");
|
||||||
}
|
}
|
||||||
|
|
||||||
_subscription = _socksSocket!.socket.listen(
|
_subscription = _socksSocket!.listen(
|
||||||
_dataHandler,
|
_dataHandler,
|
||||||
onError: _errorHandler,
|
onError: _errorHandler,
|
||||||
onDone: _doneHandler,
|
onDone: _doneHandler,
|
||||||
|
|
|
@ -73,10 +73,12 @@ class SOCKSSocket {
|
||||||
StreamController.broadcast();
|
StreamController.broadcast();
|
||||||
|
|
||||||
/// Getter for the StreamController that listens to the _socksSocket and
|
/// Getter for the StreamController that listens to the _socksSocket and
|
||||||
/// broadcasts.
|
/// broadcasts, or the _secureSocksSocket and broadcasts if SSL is enabled.
|
||||||
StreamController<List<int>> get responseController =>
|
StreamController<List<int>> get responseController =>
|
||||||
sslEnabled ? _secureResponseController : _responseController;
|
sslEnabled ? _secureResponseController : _responseController;
|
||||||
|
|
||||||
|
StreamSubscription? _subscription;
|
||||||
|
|
||||||
/// A StreamController that listens to the _secureSocksSocket and broadcasts.
|
/// A StreamController that listens to the _secureSocksSocket and broadcasts.
|
||||||
final StreamController<List<int>> _secureResponseController =
|
final StreamController<List<int>> _secureResponseController =
|
||||||
StreamController.broadcast();
|
StreamController.broadcast();
|
||||||
|
@ -134,7 +136,7 @@ class SOCKSSocket {
|
||||||
);
|
);
|
||||||
|
|
||||||
// Listen to the socket.
|
// Listen to the socket.
|
||||||
_socksSocket.listen(
|
_subscription = _socksSocket.listen(
|
||||||
(data) {
|
(data) {
|
||||||
// Add the data to the response controller.
|
// Add the data to the response controller.
|
||||||
_responseController.add(data);
|
_responseController.add(data);
|
||||||
|
@ -217,7 +219,7 @@ class SOCKSSocket {
|
||||||
);
|
);
|
||||||
|
|
||||||
// Listen to the secure socket.
|
// Listen to the secure socket.
|
||||||
_secureSocksSocket.listen(
|
_subscription = _secureSocksSocket.listen(
|
||||||
(data) {
|
(data) {
|
||||||
// Add the data to the response controller.
|
// Add the data to the response controller.
|
||||||
_secureResponseController.add(data);
|
_secureResponseController.add(data);
|
||||||
|
@ -311,4 +313,25 @@ class SOCKSSocket {
|
||||||
await _responseController.close();
|
await _responseController.close();
|
||||||
return await _socksSocket.close();
|
return await _socksSocket.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
StreamSubscription<List<int>> listen(
|
||||||
|
void Function(List<int> data)? onData, {
|
||||||
|
Function? onError,
|
||||||
|
void Function()? onDone,
|
||||||
|
bool? cancelOnError,
|
||||||
|
}) {
|
||||||
|
return sslEnabled
|
||||||
|
? _secureResponseController.stream.listen(
|
||||||
|
onData,
|
||||||
|
onError: onError,
|
||||||
|
onDone: onDone,
|
||||||
|
cancelOnError: cancelOnError,
|
||||||
|
)
|
||||||
|
: _responseController.stream.listen(
|
||||||
|
onData,
|
||||||
|
onError: onError,
|
||||||
|
onDone: onDone,
|
||||||
|
cancelOnError: cancelOnError,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue