1- use std:: { net:: { IpAddr , SocketAddr } , sync :: Arc } ;
1+ use std:: net:: { IpAddr , SocketAddr } ;
22
33use crate :: {
44 config:: Configuration ,
@@ -8,7 +8,6 @@ use futures::{
88 stream:: { SplitSink , SplitStream } ,
99 SinkExt , StreamExt ,
1010} ;
11- use roles_logic_sv2:: utils:: Mutex ;
1211use tokio:: {
1312 net:: { TcpListener , TcpStream } ,
1413 sync:: mpsc:: { channel, Receiver , Sender } ,
@@ -73,10 +72,9 @@ impl Downstream {
7372 sender : Sender < String > ,
7473 ) {
7574 let ( writer, reader) = framed. split ( ) ;
76- let firmware = Arc :: new ( Mutex :: new ( Firmware :: Uninitialized ) ) ;
7775 let result = tokio:: select! {
78- result1 = Self :: receive_from_downstream_and_relay_up( reader, sender, firmware . clone ( ) ) => result1,
79- result2 = Self :: receive_from_upstream_and_relay_down( writer, receiver, firmware . clone ( ) ) => result2,
76+ result1 = Self :: receive_from_downstream_and_relay_up( reader, sender) => result1,
77+ result2 = Self :: receive_from_upstream_and_relay_down( writer, receiver) => result2,
8078 } ;
8179 // upstream disconnected make sure to clean everything before exit
8280 match result {
@@ -88,24 +86,12 @@ impl Downstream {
8886 async fn receive_from_downstream_and_relay_up (
8987 mut recv : SplitStream < Framed < TcpStream , LinesCodec > > ,
9088 send : Sender < String > ,
91- firmware : Arc < Mutex < Firmware > > ,
9289 ) -> Sv1IngressError {
93- let mut is_subscribed = false ;
9490 let task = tokio:: spawn ( async move {
9591 while let Some ( Ok ( message) ) = recv. next ( ) . await {
9692 if Configuration :: sv1_ingress_log ( ) {
9793 info ! ( "Sending msg to upstream: {}" , message) ;
9894 }
99- if ! is_subscribed {
100- if message. contains ( "mining.subscribe" ) {
101- is_subscribed = true ;
102- if message. contains ( "LUXminer" ) {
103- firmware. safe_lock ( |f| * f = Firmware :: Luxor ) . unwrap ( ) ;
104- } else {
105- firmware. safe_lock ( |f| * f = Firmware :: Other ) . unwrap ( ) ;
106- }
107- }
108- }
10995 if send. send ( message) . await . is_err ( ) {
11096 error ! ( "Upstream dropped trying to send" ) ;
11197 return Sv1IngressError :: TranslatorDropped ;
@@ -123,21 +109,12 @@ impl Downstream {
123109 async fn receive_from_upstream_and_relay_down (
124110 mut send : SplitSink < Framed < TcpStream , LinesCodec > , String > ,
125111 mut recv : Receiver < String > ,
126- firmware_ : Arc < Mutex < Firmware > > ,
127112 ) -> Sv1IngressError {
128- let mut firmware = Firmware :: Uninitialized ;
129113 let task = tokio:: spawn ( async move {
130114 while let Some ( message) = recv. recv ( ) . await {
131- let mut message = message. replace ( [ '\n' , '\r' ] , "" ) ;
132- if !firmware. is_initialized ( ) {
133- firmware = firmware_. safe_lock ( |f| * f) . unwrap ( ) ;
134- } else if firmware. is_luxor ( ) {
135- if let Some ( pos) = message. find ( '{' ) {
136- message. insert_str ( pos + 1 , r#""id":null,"# ) ;
137- }
138- }
115+ let message = message. replace ( [ '\n' , '\r' ] , "" ) ;
139116 if Configuration :: sv1_ingress_log ( ) {
140- info ! ( "Sending msg to downstream_ : {}" , message) ;
117+ info ! ( "Sending msg to downstream : {}" , message) ;
141118 }
142119 if send. send ( message) . await . is_err ( ) {
143120 warn ! ( "Downstream dropped while trying to send message down" ) ;
@@ -157,19 +134,3 @@ impl Downstream {
157134 }
158135 }
159136}
160-
161- #[ derive( Debug , Clone , Copy ) ]
162- enum Firmware {
163- Luxor ,
164- Other ,
165- Uninitialized ,
166- }
167-
168- impl Firmware {
169- fn is_initialized ( & self ) -> bool {
170- !matches ! ( self , Firmware :: Uninitialized )
171- }
172- fn is_luxor ( & self ) -> bool {
173- matches ! ( self , Firmware :: Luxor )
174- }
175- }
0 commit comments