| 90 | /////////////////////////////////////////////////////////////////////// |
| 91 | |
| 92 | class dns_ipc : public ipc_client |
| 93 | { |
| 94 | public: |
| 95 | dns_ipc(dns_service* server, acl_int64 magic) |
| 96 | : ipc_client(magic) |
| 97 | , server_(server) |
| 98 | { |
| 99 | } |
| 100 | |
| 101 | ~dns_ipc(void) {} |
| 102 | |
| 103 | virtual void on_message(int nMsg acl_unused, |
| 104 | void* data, int dlen acl_unused) |
| 105 | { |
| 106 | if (nMsg != IPC_RES) { |
| 107 | logger_error("invalid nMsg(%d)", nMsg); |
| 108 | this->close(); |
| 109 | return; |
| 110 | } |
| 111 | |
| 112 | DNS_IPC_DATA* dat = (DNS_IPC_DATA*) data; |
| 113 | dns_res* res = dat->res; |
| 114 | |
| 115 | server_->on_result(*res); |
| 116 | delete res; |
| 117 | } |
| 118 | protected: |
| 119 | virtual void on_close(void) |
| 120 | { |
| 121 | delete this; |
| 122 | } |
| 123 | |
| 124 | private: |
| 125 | dns_service* server_; |
| 126 | }; |
| 127 | |
| 128 | /////////////////////////////////////////////////////////////////////// |
| 129 | #ifdef ACL_WINDOWS |
no outgoing calls
no test coverage detected
searching dependent graphs…