blob: 2f8671c5819144d8071e85593b3650fd6df9a737 (
plain) (
tree)
|
|
#include "utils.h"
#include <util/generic/utility.h>
#include <util/stream/output.h>
#include <util/stream/str.h>
#include <util/system/error.h>
#if defined(_unix_)
#include <pthread.h>
#endif
#if defined(_win_)
#include <windows.h>
#endif
using namespace NNeh;
size_t NNeh::RealStackSize(size_t len) noexcept {
#if defined(NDEBUG) && !defined(_san_enabled_)
return len;
#else
return Max<size_t>(len, 64000);
#endif
}
TString NNeh::PrintHostByRfc(const NAddr::IRemoteAddr& addr) {
TStringStream ss;
if (addr.Addr()->sa_family == AF_INET) {
NAddr::PrintHost(ss, addr);
} else if (addr.Addr()->sa_family == AF_INET6) {
ss << '[';
NAddr::PrintHost(ss, addr);
ss << ']';
}
return ss.Str();
}
NAddr::IRemoteAddrPtr NNeh::GetPeerAddr(SOCKET s) {
TAutoPtr<NAddr::TOpaqueAddr> addr(new NAddr::TOpaqueAddr());
if (getpeername(s, addr->MutableAddr(), addr->LenPtr()) < 0) {
ythrow TSystemError() << "getpeername() failed";
}
return NAddr::IRemoteAddrPtr(addr.Release());
}
|