| 1084 | } |
| 1085 | |
| 1086 | U32 KNativeSocketObject::getpeername(KThread* thread, const KFileDescriptorPtr& fd, U32 address, U32 plen) { |
| 1087 | KMemory* memory = thread->memory; |
| 1088 | //socklen_t len = (socklen_t)memory->readd( plen); |
| 1089 | struct sockaddr_in addr = {0}; |
| 1090 | socklen_t nativeLen = sizeof(struct sockaddr_in); |
| 1091 | |
| 1092 | S32 result = ::getpeername(this->nativeSocket, (struct sockaddr*)&addr, &nativeLen); |
| 1093 | if (result==0) { |
| 1094 | writeSockAddrIn(&addr, memory, address); |
| 1095 | memory->writed(plen, 16); |
| 1096 | this->error = 0; |
| 1097 | } else { |
| 1098 | std::shared_ptr< KNativeSocketObject> t = std::dynamic_pointer_cast<KNativeSocketObject>(shared_from_this()); |
| 1099 | result = handleNativeSocketError(t, false); |
| 1100 | } |
| 1101 | return result; |
| 1102 | } |
| 1103 | |
| 1104 | U32 KNativeSocketObject::shutdown(KThread* thread, const KFileDescriptorPtr& fd, U32 how) { |
| 1105 | LOG_SOCK("native socket: %x shutdown", nativeSocket); |
nothing calls this directly
no test coverage detected