MCPcopy Create free account
hub / github.com/CCob/lsarelayx / ServerThread

Method ServerThread

client/Program.cs:334–380  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

332 }
333
334 static void ServerThread() {
335
336 using (NamedPipeServerStream serverStream = new NamedPipeServerStream("lsarelayx", PipeDirection.InOut, 10, PipeTransmissionMode.Byte)) {
337
338 serverThreadReady.Set();
339
340 while (true) {
341
342 try {
343
344 serverStream.WaitForConnection();
345 var command = BitseryObject.ReadFromStream(serverStream);
346
347 if (command is InitRequest) {
348 Console.WriteLine($"[+] Init command received from LSA");
349 initResponse.WriteToStream(serverStream);
350
351 } else if (command is RelayRequest relayRequest) {
352
353 var relayResponse = ProcessRelayRequest(relayRequest);
354 relayResponse.WriteToStream(serverStream);
355
356 } else if (command is NegotiateRequest negotiateRequest) {
357
358 var response = ProcessNegotiateToken(negotiateRequest);
359 response.WriteToStream(serverStream);
360
361 }
362
363 serverStream.Flush();
364
365 } catch (Exception e) {
366
367 Console.WriteLine($"[!] Pipe disconnected with error {e.Message}");
368
369 } finally {
370 try {
371 serverStream.WaitForPipeDrain();
372 } catch (Exception) {
373
374 } finally {
375 serverStream.Disconnect();
376 }
377 }
378 }
379 }
380 }
381
382
383 //https://stackoverflow.com/questions/283456/byte-array-pattern-search

Callers

nothing calls this directly

Calls 2

ReadFromStreamMethod · 0.80
WriteToStreamMethod · 0.80

Tested by

no test coverage detected