MCPcopy Create free account
hub / github.com/danoon2/Boxedwine / bind

Method bind

source/kernel/knativesocket.cpp:911–931  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

909}
910
911U32 KNativeSocketObject::bind(KThread* thread, const KFileDescriptorPtr& fd, U32 address, U32 len) {
912 KMemory* memory = thread->memory;
913
914 U32 family = memory->readw(address);
915 if (family == K_AF_INET) {
916 if (fd->kobject->type!=KTYPE_NATIVE_SOCKET) {
917 return -K_ENOTSOCK;
918 }
919 struct sockaddr_in addr = {0};
920 readSockAddrIn(&addr, memory, address);
921 int result = ::bind(this->nativeSocket, (struct sockaddr*)&addr, sizeof(struct sockaddr_in));
922 LOG_SOCK("native socket: %x bind result=%x", nativeSocket, result);
923 if (result == 0) {
924 this->error = 0;
925 return 0;
926 }
927 std::shared_ptr< KNativeSocketObject> t = std::dynamic_pointer_cast<KNativeSocketObject>(shared_from_this());
928 return handleNativeSocketError(t, false);
929 }
930 return -K_EAFNOSUPPORT;
931}
932
933U32 KNativeSocketObject::connect(KThread* thread, const KFileDescriptorPtr& fd, U32 address, U32 len) {
934 char buffer[1024] = {};

Callers

nothing calls this directly

Calls 4

readSockAddrInFunction · 0.85
bindFunction · 0.85
handleNativeSocketErrorFunction · 0.85
readwMethod · 0.45

Tested by

no test coverage detected