@@ -295,7 +295,8 @@ Socket::UdpConnect(llvm::StringRef host_and_port,
295
295
return UDPSocket::Connect (host_and_port, child_processes_inherit);
296
296
}
297
297
298
- llvm::Expected<Socket::HostAndPort> Socket::DecodeHostAndPort (llvm::StringRef host_and_port) {
298
+ llvm::Expected<Socket::HostAndPort>
299
+ Socket::DecodeHostAndPort (llvm::StringRef host_and_port) {
299
300
static llvm::Regex g_regex (" ([^:]+|\\ [[0-9a-fA-F:]+.*\\ ]):([0-9]+)" );
300
301
HostAndPort ret;
301
302
llvm::SmallVector<llvm::StringRef, 3 > matches;
@@ -371,8 +372,8 @@ Status Socket::Write(const void *buf, size_t &num_bytes) {
371
372
" , src = %p, src_len = %" PRIu64 " , flags = 0) => %" PRIi64
372
373
" (error = %s)" ,
373
374
static_cast <void *>(this ), static_cast <uint64_t >(m_socket), buf,
374
- static_cast <uint64_t >(src_len),
375
- static_cast < int64_t >(bytes_sent), error.AsCString ());
375
+ static_cast <uint64_t >(src_len), static_cast < int64_t >(bytes_sent),
376
+ error.AsCString ());
376
377
}
377
378
378
379
return error;
@@ -497,3 +498,28 @@ llvm::raw_ostream &lldb_private::operator<<(llvm::raw_ostream &OS,
497
498
const Socket::HostAndPort &HP) {
498
499
return OS << ' [' << HP.hostname << ' ]' << ' :' << HP.port ;
499
500
}
501
+
502
+ std::optional<Socket::ProtocolModePair>
503
+ Socket::GetProtocolAndMode (llvm::StringRef scheme) {
504
+ // Keep in sync with ConnectionFileDescriptor::Connect.
505
+ return llvm::StringSwitch<std::optional<ProtocolModePair>>(scheme)
506
+ .Case (" listen" , ProtocolModePair{SocketProtocol::ProtocolTcp,
507
+ SocketMode::ModeAccept})
508
+ .Cases (" accept" , " unix-accept" ,
509
+ ProtocolModePair{SocketProtocol::ProtocolUnixDomain,
510
+ SocketMode::ModeAccept})
511
+ .Case (" unix-abstract-accept" ,
512
+ ProtocolModePair{SocketProtocol::ProtocolUnixAbstract,
513
+ SocketMode::ModeAccept})
514
+ .Cases (" connect" , " tcp-connect" ,
515
+ ProtocolModePair{SocketProtocol::ProtocolTcp,
516
+ SocketMode::ModeConnect})
517
+ .Case (" udp" , ProtocolModePair{SocketProtocol::ProtocolTcp,
518
+ SocketMode::ModeConnect})
519
+ .Case (" unix-connect" , ProtocolModePair{SocketProtocol::ProtocolUnixDomain,
520
+ SocketMode::ModeConnect})
521
+ .Case (" unix-abstract-connect" ,
522
+ ProtocolModePair{SocketProtocol::ProtocolUnixAbstract,
523
+ SocketMode::ModeConnect})
524
+ .Default (std::nullopt);
525
+ }
0 commit comments