| 114 | } |
| 115 | |
| 116 | void NetAsync::queueLookup(const char* remoteAddr, NetSocket socket) |
| 117 | { |
| 118 | // do we have it already? |
| 119 | |
| 120 | U32 i = 0; |
| 121 | for (i = 0; i < mLookupRequests.size(); ++i) |
| 122 | { |
| 123 | if (mLookupRequests[i].sock == socket) |
| 124 | // found it. ignore more than one lookup at a time for a socket. |
| 125 | return; |
| 126 | } |
| 127 | |
| 128 | // not found, so add it |
| 129 | |
| 130 | mLookupRequests.increment(); |
| 131 | NameLookupRequest& lookupRequest = mLookupRequests.last(); |
| 132 | lookupRequest.sock = socket; |
| 133 | dStrncpy(lookupRequest.remoteAddr, remoteAddr, sizeof(lookupRequest.remoteAddr)); |
| 134 | |
| 135 | ThreadSafeRef< NameLookupWorkItem > workItem( new NameLookupWorkItem( lookupRequest ) ); |
| 136 | ThreadPool::GLOBAL().queueWorkItem( workItem ); |
| 137 | } |
| 138 | |
| 139 | bool NetAsync::checkLookup(NetSocket socket, void* out_h_addr, |
| 140 | S32* out_h_length, S32 out_h_addr_size) |
no test coverage detected