net/SocketDescriptor: add method GetIntOption()
This commit is contained in:
parent
85286d74ef
commit
1239e075b8
@ -23,14 +23,7 @@
|
||||
int
|
||||
SocketDescriptor::GetType() const noexcept
|
||||
{
|
||||
assert(IsDefined());
|
||||
|
||||
int type;
|
||||
socklen_t size = sizeof(type);
|
||||
return getsockopt(fd, SOL_SOCKET, SO_TYPE,
|
||||
(char *)&type, &size) == 0
|
||||
? type
|
||||
: -1;
|
||||
return GetIntOption(SOL_SOCKET, SO_TYPE, -1);
|
||||
}
|
||||
|
||||
bool
|
||||
@ -210,6 +203,14 @@ SocketDescriptor::GetOption(int level, int name,
|
||||
: 0;
|
||||
}
|
||||
|
||||
int
|
||||
SocketDescriptor::GetIntOption(int level, int name, int fallback) const noexcept
|
||||
{
|
||||
int value = fallback;
|
||||
GetOption(level, name, &value, sizeof(value));
|
||||
return value;
|
||||
}
|
||||
|
||||
#ifdef HAVE_STRUCT_UCRED
|
||||
|
||||
struct ucred
|
||||
|
@ -188,6 +188,9 @@ public:
|
||||
std::size_t GetOption(int level, int name,
|
||||
void *value, std::size_t size) const noexcept;
|
||||
|
||||
[[gnu::pure]]
|
||||
int GetIntOption(int level, int name, int fallback) const noexcept;
|
||||
|
||||
#ifdef HAVE_STRUCT_UCRED
|
||||
/**
|
||||
* Receive peer credentials (SO_PEERCRED). On error, the pid
|
||||
|
Loading…
Reference in New Issue
Block a user