@@ -271,7 +271,8 @@ Socket::UdpConnect(llvm::StringRef host_and_port) {
271
271
return UDPSocket::CreateConnected (host_and_port);
272
272
}
273
273
274
- llvm::Expected<Socket::HostAndPort> Socket::DecodeHostAndPort (llvm::StringRef host_and_port) {
274
+ llvm::Expected<Socket::HostAndPort>
275
+ Socket::DecodeHostAndPort (llvm::StringRef host_and_port) {
275
276
static llvm::Regex g_regex (" ([^:]+|\\ [[0-9a-fA-F:]+.*\\ ]):([0-9]+)" );
276
277
HostAndPort ret;
277
278
llvm::SmallVector<llvm::StringRef, 3 > matches;
@@ -347,8 +348,8 @@ Status Socket::Write(const void *buf, size_t &num_bytes) {
347
348
" , src = %p, src_len = %" PRIu64 " , flags = 0) => %" PRIi64
348
349
" (error = %s)" ,
349
350
static_cast <void *>(this ), static_cast <uint64_t >(m_socket), buf,
350
- static_cast <uint64_t >(src_len),
351
- static_cast < int64_t >(bytes_sent), error.AsCString ());
351
+ static_cast <uint64_t >(src_len), static_cast < int64_t >(bytes_sent),
352
+ error.AsCString ());
352
353
}
353
354
354
355
return error;
@@ -476,3 +477,28 @@ llvm::raw_ostream &lldb_private::operator<<(llvm::raw_ostream &OS,
476
477
const Socket::HostAndPort &HP) {
477
478
return OS << ' [' << HP.hostname << ' ]' << ' :' << HP.port ;
478
479
}
480
+
481
+ std::optional<Socket::ProtocolModePair>
482
+ Socket::GetProtocolAndMode (llvm::StringRef scheme) {
483
+ // Keep in sync with ConnectionFileDescriptor::Connect.
484
+ return llvm::StringSwitch<std::optional<ProtocolModePair>>(scheme)
485
+ .Case (" listen" , ProtocolModePair{SocketProtocol::ProtocolTcp,
486
+ SocketMode::ModeAccept})
487
+ .Cases (" accept" , " unix-accept" ,
488
+ ProtocolModePair{SocketProtocol::ProtocolUnixDomain,
489
+ SocketMode::ModeAccept})
490
+ .Case (" unix-abstract-accept" ,
491
+ ProtocolModePair{SocketProtocol::ProtocolUnixAbstract,
492
+ SocketMode::ModeAccept})
493
+ .Cases (" connect" , " tcp-connect" ,
494
+ ProtocolModePair{SocketProtocol::ProtocolTcp,
495
+ SocketMode::ModeConnect})
496
+ .Case (" udp" , ProtocolModePair{SocketProtocol::ProtocolTcp,
497
+ SocketMode::ModeConnect})
498
+ .Case (" unix-connect" , ProtocolModePair{SocketProtocol::ProtocolUnixDomain,
499
+ SocketMode::ModeConnect})
500
+ .Case (" unix-abstract-connect" ,
501
+ ProtocolModePair{SocketProtocol::ProtocolUnixAbstract,
502
+ SocketMode::ModeConnect})
503
+ .Default (std::nullopt );
504
+ }
0 commit comments