Changeset a46e56b in mainline for uspace/srv/net/dnsrsrv/dnsrsrv.c
- Timestamp:
- 2018-03-22T06:49:35Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 77f0a1d
- Parents:
- 3e242d2
- git-author:
- Jakub Jermar <jakub@…> (2018-03-21 23:29:06)
- git-committer:
- Jakub Jermar <jakub@…> (2018-03-22 06:49:35)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/dnsrsrv/dnsrsrv.c
r3e242d2 ra46e56b 86 86 } 87 87 88 static void dnsr_name2host_srv(dnsr_client_t *client, cap_call_handle_t i id,88 static void dnsr_name2host_srv(dnsr_client_t *client, cap_call_handle_t icall_handle, 89 89 ipc_call_t *icall) 90 90 { … … 97 97 DNS_NAME_MAX_SIZE, 0, NULL); 98 98 if (rc != EOK) { 99 async_answer_0(i id, rc);99 async_answer_0(icall_handle, rc); 100 100 return; 101 101 } … … 104 104 rc = dns_name2host(name, &hinfo, ver); 105 105 if (rc != EOK) { 106 async_answer_0(i id, rc);107 return; 108 } 109 110 cap_call_handle_t c allid;106 async_answer_0(icall_handle, rc); 107 return; 108 } 109 110 cap_call_handle_t chandle; 111 111 size_t size; 112 if (!async_data_read_receive(&c allid, &size)) {113 async_answer_0(c allid, EREFUSED);114 async_answer_0(i id, EREFUSED);112 if (!async_data_read_receive(&chandle, &size)) { 113 async_answer_0(chandle, EREFUSED); 114 async_answer_0(icall_handle, EREFUSED); 115 115 return; 116 116 } 117 117 118 118 if (size != sizeof(inet_addr_t)) { 119 async_answer_0(c allid, EINVAL);120 async_answer_0(i id, EINVAL);121 return; 122 } 123 124 rc = async_data_read_finalize(c allid, &hinfo->addr, size);125 if (rc != EOK) { 126 async_answer_0(c allid, rc);127 async_answer_0(i id, rc);128 return; 129 } 130 131 if (!async_data_read_receive(&c allid, &size)) {132 async_answer_0(c allid, EREFUSED);133 async_answer_0(i id, EREFUSED);119 async_answer_0(chandle, EINVAL); 120 async_answer_0(icall_handle, EINVAL); 121 return; 122 } 123 124 rc = async_data_read_finalize(chandle, &hinfo->addr, size); 125 if (rc != EOK) { 126 async_answer_0(chandle, rc); 127 async_answer_0(icall_handle, rc); 128 return; 129 } 130 131 if (!async_data_read_receive(&chandle, &size)) { 132 async_answer_0(chandle, EREFUSED); 133 async_answer_0(icall_handle, EREFUSED); 134 134 return; 135 135 } … … 137 137 size_t act_size = str_size(hinfo->cname); 138 138 if (act_size > size) { 139 async_answer_0(c allid, EINVAL);140 async_answer_0(i id, EINVAL);141 return; 142 } 143 144 rc = async_data_read_finalize(c allid, hinfo->cname, act_size);139 async_answer_0(chandle, EINVAL); 140 async_answer_0(icall_handle, EINVAL); 141 return; 142 } 143 144 rc = async_data_read_finalize(chandle, hinfo->cname, act_size); 145 145 if (rc != EOK) 146 async_answer_0(c allid, rc);147 148 async_answer_0(i id, rc);146 async_answer_0(chandle, rc); 147 148 async_answer_0(icall_handle, rc); 149 149 150 150 dns_hostinfo_destroy(hinfo); 151 151 } 152 152 153 static void dnsr_get_srvaddr_srv(dnsr_client_t *client, cap_call_handle_t i id,153 static void dnsr_get_srvaddr_srv(dnsr_client_t *client, cap_call_handle_t icall_handle, 154 154 ipc_call_t *icall) 155 155 { 156 156 log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_get_srvaddr_srv()"); 157 157 158 cap_call_handle_t c allid;158 cap_call_handle_t chandle; 159 159 size_t size; 160 if (!async_data_read_receive(&c allid, &size)) {161 async_answer_0(c allid, EREFUSED);162 async_answer_0(i id, EREFUSED);160 if (!async_data_read_receive(&chandle, &size)) { 161 async_answer_0(chandle, EREFUSED); 162 async_answer_0(icall_handle, EREFUSED); 163 163 return; 164 164 } 165 165 166 166 if (size != sizeof(inet_addr_t)) { 167 async_answer_0(c allid, EINVAL);168 async_answer_0(i id, EINVAL);167 async_answer_0(chandle, EINVAL); 168 async_answer_0(icall_handle, EINVAL); 169 169 return; 170 170 } … … 172 172 // FIXME locking 173 173 174 errno_t rc = async_data_read_finalize(c allid, &dns_server_addr, size);174 errno_t rc = async_data_read_finalize(chandle, &dns_server_addr, size); 175 175 if (rc != EOK) 176 async_answer_0(c allid, rc);177 178 async_answer_0(i id, rc);179 } 180 181 static void dnsr_set_srvaddr_srv(dnsr_client_t *client, cap_call_handle_t i id,176 async_answer_0(chandle, rc); 177 178 async_answer_0(icall_handle, rc); 179 } 180 181 static void dnsr_set_srvaddr_srv(dnsr_client_t *client, cap_call_handle_t icall_handle, 182 182 ipc_call_t *icall) 183 183 { 184 184 log_msg(LOG_DEFAULT, LVL_DEBUG, "dnsr_set_srvaddr_srv()"); 185 185 186 cap_call_handle_t c allid;186 cap_call_handle_t chandle; 187 187 size_t size; 188 if (!async_data_write_receive(&c allid, &size)) {189 async_answer_0(c allid, EREFUSED);190 async_answer_0(i id, EREFUSED);188 if (!async_data_write_receive(&chandle, &size)) { 189 async_answer_0(chandle, EREFUSED); 190 async_answer_0(icall_handle, EREFUSED); 191 191 return; 192 192 } 193 193 194 194 if (size != sizeof(inet_addr_t)) { 195 async_answer_0(c allid, EINVAL);196 async_answer_0(i id, EINVAL);195 async_answer_0(chandle, EINVAL); 196 async_answer_0(icall_handle, EINVAL); 197 197 return; 198 198 } … … 200 200 // FIXME locking 201 201 202 errno_t rc = async_data_write_finalize(c allid, &dns_server_addr, size);203 if (rc != EOK) { 204 async_answer_0(c allid, rc);205 async_answer_0(i id, rc);206 } 207 208 async_answer_0(i id, rc);209 } 210 211 static void dnsr_client_conn(cap_call_handle_t i id, ipc_call_t *icall, void *arg)202 errno_t rc = async_data_write_finalize(chandle, &dns_server_addr, size); 203 if (rc != EOK) { 204 async_answer_0(chandle, rc); 205 async_answer_0(icall_handle, rc); 206 } 207 208 async_answer_0(icall_handle, rc); 209 } 210 211 static void dnsr_client_conn(cap_call_handle_t icall_handle, ipc_call_t *icall, void *arg) 212 212 { 213 213 dnsr_client_t client; … … 216 216 217 217 /* Accept the connection */ 218 async_answer_0(i id, EOK);218 async_answer_0(icall_handle, EOK); 219 219 220 220 while (true) { 221 221 ipc_call_t call; 222 cap_call_handle_t c allid= async_get_call(&call);222 cap_call_handle_t chandle = async_get_call(&call); 223 223 sysarg_t method = IPC_GET_IMETHOD(call); 224 224 225 225 if (!method) { 226 226 /* The other side has hung up */ 227 async_answer_0(c allid, EOK);227 async_answer_0(chandle, EOK); 228 228 return; 229 229 } … … 231 231 switch (method) { 232 232 case DNSR_NAME2HOST: 233 dnsr_name2host_srv(&client, c allid, &call);233 dnsr_name2host_srv(&client, chandle, &call); 234 234 break; 235 235 case DNSR_GET_SRVADDR: 236 dnsr_get_srvaddr_srv(&client, c allid, &call);236 dnsr_get_srvaddr_srv(&client, chandle, &call); 237 237 break; 238 238 case DNSR_SET_SRVADDR: 239 dnsr_set_srvaddr_srv(&client, c allid, &call);239 dnsr_set_srvaddr_srv(&client, chandle, &call); 240 240 break; 241 241 default: 242 async_answer_0(c allid, EINVAL);242 async_answer_0(chandle, EINVAL); 243 243 } 244 244 }
Note:
See TracChangeset
for help on using the changeset viewer.