Unverified Commit 24f4e735 authored by Kenton Varda's avatar Kenton Varda Committed by GitHub

Merge pull request #908 from capnproto/connection-receiver-getsockname

Add getsockname() to ConnectionReceiver.
parents 0d7c955b 9e625f7e
......@@ -1135,6 +1135,11 @@ public:
void setsockopt(int level, int option, const void* value, uint length) override {
KJ_SYSCALL(::setsockopt(fd, level, option, value, length));
}
void getsockname(struct sockaddr* addr, uint* length) override {
socklen_t socklen = *length;
KJ_SYSCALL(::getsockname(fd, addr, &socklen));
*length = socklen;
}
public:
UnixEventPort& eventPort;
......
......@@ -955,6 +955,11 @@ public:
KJ_WINSOCK(::setsockopt(fd, level, option,
reinterpret_cast<const char*>(value), length));
}
void getsockname(struct sockaddr* addr, uint* length) override {
socklen_t socklen = *length;
KJ_WINSOCK(::getsockname(fd, addr, &socklen));
*length = socklen;
}
public:
Win32EventPort& eventPort;
......
......@@ -1939,6 +1939,9 @@ void ConnectionReceiver::getsockopt(int level, int option, void* value, uint* le
void ConnectionReceiver::setsockopt(int level, int option, const void* value, uint length) {
KJ_UNIMPLEMENTED("Not a socket.");
}
void ConnectionReceiver::getsockname(struct sockaddr* addr, uint* length) {
KJ_UNIMPLEMENTED("Not a socket.");
}
void DatagramPort::getsockopt(int level, int option, void* value, uint* length) {
KJ_UNIMPLEMENTED("Not a socket.");
}
......
......@@ -295,6 +295,7 @@ public:
virtual void getsockopt(int level, int option, void* value, uint* length);
virtual void setsockopt(int level, int option, const void* value, uint length);
virtual void getsockname(struct sockaddr* addr, uint* length);
// Same as the methods of AsyncIoStream.
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment