@@ -181,45 +181,54 @@ public void Connect()
181181
182182 public async Task Enable ( )
183183 {
184- if ( ! this . socket . Connected || ! this . IsEnabled )
185- await socket . EmitAsync ( "enable" ,
186- ( SocketIOResponse resp ) =>
187- {
188- Utils . PrintResponseMessage ( resp ) ;
189- // Debugger.Break();
190- SharedData . Logger . LogInfo ( $ "启用成功") ;
191- this . IsEnabled = true ;
192- } ,
193- new
184+ if ( socket . Connected && IsEnabled )
185+ {
186+ SharedData . Logger . LogWarn ( $ "试图在节点禁用且连接未断开时调用 Enable") ;
187+ return ;
188+ }
189+ await socket . EmitAsync ( "enable" , ( SocketIOResponse resp ) =>
190+ {
191+ Utils . PrintResponseMessage ( resp ) ;
192+ // Debugger.Break();
193+ SharedData . Logger . LogInfo ( $ "启用成功") ;
194+ this . IsEnabled = true ;
195+ } , new
196+ {
197+ host = SharedData . Config . HOST ,
198+ port = SharedData . Config . PORT ,
199+ version = SharedData . Config . clusterVersion ,
200+ byoc = SharedData . Config . byoc ,
201+ noFastEnable = SharedData . Config . noFastEnable ,
202+ flavor = new
194203 {
195- host = SharedData . Config . HOST ,
196- port = SharedData . Config . PORT ,
197- version = SharedData . Config . clusterVersion ,
198- byoc = SharedData . Config . byoc ,
199- noFastEnable = SharedData . Config . noFastEnable ,
200- flavor = new
201- {
202- runtime = Utils . GetRuntime ( ) ,
203- storage = Utils . GetStorageType ( this . storage )
204- }
205- } ) ;
204+ runtime = Utils . GetRuntime ( ) ,
205+ storage = Utils . GetStorageType ( this . storage )
206+ }
207+ } ) ;
206208 }
207209
208210 public async Task Disable ( )
209211 {
210- if ( this . IsEnabled )
211- await socket . EmitAsync ( "disable" ,
212- ( SocketIOResponse resp ) =>
213- {
214- Utils . PrintResponseMessage ( resp ) ;
215- SharedData . Logger . LogInfo ( $ "禁用成功") ;
216- this . IsEnabled = false ;
217- } ) ;
212+ if ( ! this . IsEnabled )
213+ {
214+ SharedData . Logger . LogWarn ( $ "试图在节点禁用时调用 { Disable } ") ;
215+ return ;
216+ }
217+ await socket . EmitAsync ( "disable" , ( SocketIOResponse resp ) =>
218+ {
219+ Utils . PrintResponseMessage ( resp ) ;
220+ SharedData . Logger . LogInfo ( $ "禁用成功") ;
221+ this . IsEnabled = false ;
222+ } ) ;
218223 }
219224
220225 public async Task KeepAlive ( )
221226 {
222- if ( ! this . IsEnabled ) return ;
227+ if ( ! this . IsEnabled )
228+ {
229+ SharedData . Logger . LogWarn ( $ "试图在节点禁用时调用 { KeepAlive } ") ;
230+ return ;
231+ }
223232 string time = DateTime . Now . ToStandardTimeString ( ) ;
224233 // socket.Connected.Dump();
225234 await socket . EmitAsync ( "keep-alive" ,
@@ -284,7 +293,12 @@ protected async Task CheckFiles()
284293 {
285294 count ++ ;
286295 }
287- VerifyFile ( hash , size , SharedData . Config . startupCheckMode ) ;
296+ bool valid = VerifyFile ( hash , size , SharedData . Config . startupCheckMode ) ;
297+ if ( ! valid )
298+ {
299+ SharedData . Logger . LogWarn ( $ "文件 { path } 损坏!期望哈希值为 { hash } ") ;
300+ await DownloadFile ( hash , path , true ) ;
301+ }
288302 SharedData . Logger . LogInfoNoNewLine ( $ "\r { count } /{ files . Length } ") ;
289303 }
290304 }
@@ -314,10 +328,10 @@ protected bool VerifyFile(string hash, long size, FileVerificationMode mode)
314328 }
315329 }
316330
317- private async Task DownloadFile ( string hash , string path )
331+ private async Task DownloadFile ( string hash , string path , bool force = false )
318332 {
319333 string filePath = Path . Combine ( SharedData . Config . cacheDirectory , Utils . HashToFileName ( hash ) ) ;
320- if ( File . Exists ( filePath ) )
334+ if ( File . Exists ( filePath ) && ! force )
321335 {
322336 return ;
323337 }
0 commit comments