Changes in uspace/srv/net/dnsrsrv/dnsrsrv.c [a46e56b:a35b458] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/dnsrsrv/dnsrsrv.c
ra46e56b ra35b458 53 53 #define NAME "dnsres" 54 54 55 static void dnsr_client_conn( cap_call_handle_t, ipc_call_t *, void *);55 static void dnsr_client_conn(ipc_callid_t, ipc_call_t *, void *); 56 56 57 57 static errno_t dnsr_init(void) … … 86 86 } 87 87 88 static void dnsr_name2host_srv(dnsr_client_t *client, cap_call_handle_t icall_handle,88 static void dnsr_name2host_srv(dnsr_client_t *client, ipc_callid_t iid, 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 call_handle, rc);99 async_answer_0(iid, rc); 100 100 return; 101 101 } … … 104 104 rc = dns_name2host(name, &hinfo, ver); 105 105 if (rc != EOK) { 106 async_answer_0(i call_handle, rc);107 return; 108 } 109 110 cap_call_handle_t chandle;106 async_answer_0(iid, rc); 107 return; 108 } 109 110 ipc_callid_t callid; 111 111 size_t size; 112 if (!async_data_read_receive(&c handle, &size)) {113 async_answer_0(c handle, EREFUSED);114 async_answer_0(i call_handle, EREFUSED);112 if (!async_data_read_receive(&callid, &size)) { 113 async_answer_0(callid, EREFUSED); 114 async_answer_0(iid, EREFUSED); 115 115 return; 116 116 } 117 117 118 118 if (size != sizeof(inet_addr_t)) { 119 async_answer_0(c handle, EINVAL);120 async_answer_0(i call_handle, EINVAL);121 return; 122 } 123 124 rc = async_data_read_finalize(c handle, &hinfo->addr, size);125 if (rc != EOK) { 126 async_answer_0(c handle, rc);127 async_answer_0(i call_handle, rc);128 return; 129 } 130 131 if (!async_data_read_receive(&c handle, &size)) {132 async_answer_0(c handle, EREFUSED);133 async_answer_0(i call_handle, EREFUSED);119 async_answer_0(callid, EINVAL); 120 async_answer_0(iid, EINVAL); 121 return; 122 } 123 124 rc = async_data_read_finalize(callid, &hinfo->addr, size); 125 if (rc != EOK) { 126 async_answer_0(callid, rc); 127 async_answer_0(iid, rc); 128 return; 129 } 130 131 if (!async_data_read_receive(&callid, &size)) { 132 async_answer_0(callid, EREFUSED); 133 async_answer_0(iid, 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 handle, EINVAL);140 async_answer_0(i call_handle, EINVAL);141 return; 142 } 143 144 rc = async_data_read_finalize(c handle, hinfo->cname, act_size);139 async_answer_0(callid, EINVAL); 140 async_answer_0(iid, EINVAL); 141 return; 142 } 143 144 rc = async_data_read_finalize(callid, hinfo->cname, act_size); 145 145 if (rc != EOK) 146 async_answer_0(c handle, rc);147 148 async_answer_0(i call_handle, rc);146 async_answer_0(callid, rc); 147 148 async_answer_0(iid, 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 icall_handle,153 static void dnsr_get_srvaddr_srv(dnsr_client_t *client, ipc_callid_t iid, 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 chandle;158 ipc_callid_t callid; 159 159 size_t size; 160 if (!async_data_read_receive(&c handle, &size)) {161 async_answer_0(c handle, EREFUSED);162 async_answer_0(i call_handle, EREFUSED);160 if (!async_data_read_receive(&callid, &size)) { 161 async_answer_0(callid, EREFUSED); 162 async_answer_0(iid, EREFUSED); 163 163 return; 164 164 } 165 165 166 166 if (size != sizeof(inet_addr_t)) { 167 async_answer_0(c handle, EINVAL);168 async_answer_0(i call_handle, EINVAL);167 async_answer_0(callid, EINVAL); 168 async_answer_0(iid, EINVAL); 169 169 return; 170 170 } … … 172 172 // FIXME locking 173 173 174 errno_t rc = async_data_read_finalize(c handle, &dns_server_addr, size);174 errno_t rc = async_data_read_finalize(callid, &dns_server_addr, size); 175 175 if (rc != EOK) 176 async_answer_0(c handle, rc);177 178 async_answer_0(i call_handle, rc);179 } 180 181 static void dnsr_set_srvaddr_srv(dnsr_client_t *client, cap_call_handle_t icall_handle,176 async_answer_0(callid, rc); 177 178 async_answer_0(iid, rc); 179 } 180 181 static void dnsr_set_srvaddr_srv(dnsr_client_t *client, ipc_callid_t iid, 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 chandle;186 ipc_callid_t callid; 187 187 size_t size; 188 if (!async_data_write_receive(&c handle, &size)) {189 async_answer_0(c handle, EREFUSED);190 async_answer_0(i call_handle, EREFUSED);188 if (!async_data_write_receive(&callid, &size)) { 189 async_answer_0(callid, EREFUSED); 190 async_answer_0(iid, EREFUSED); 191 191 return; 192 192 } 193 193 194 194 if (size != sizeof(inet_addr_t)) { 195 async_answer_0(c handle, EINVAL);196 async_answer_0(i call_handle, EINVAL);195 async_answer_0(callid, EINVAL); 196 async_answer_0(iid, EINVAL); 197 197 return; 198 198 } … … 200 200 // FIXME locking 201 201 202 errno_t rc = async_data_write_finalize(c handle, &dns_server_addr, size);203 if (rc != EOK) { 204 async_answer_0(c handle, rc);205 async_answer_0(i call_handle, rc);206 } 207 208 async_answer_0(i call_handle, rc);209 } 210 211 static void dnsr_client_conn( cap_call_handle_t icall_handle, ipc_call_t *icall, void *arg)202 errno_t rc = async_data_write_finalize(callid, &dns_server_addr, size); 203 if (rc != EOK) { 204 async_answer_0(callid, rc); 205 async_answer_0(iid, rc); 206 } 207 208 async_answer_0(iid, rc); 209 } 210 211 static void dnsr_client_conn(ipc_callid_t iid, 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 call_handle, EOK);218 async_answer_0(iid, EOK); 219 219 220 220 while (true) { 221 221 ipc_call_t call; 222 cap_call_handle_t chandle= async_get_call(&call);222 ipc_callid_t callid = 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 handle, EOK);227 async_answer_0(callid, EOK); 228 228 return; 229 229 } … … 231 231 switch (method) { 232 232 case DNSR_NAME2HOST: 233 dnsr_name2host_srv(&client, c handle, &call);233 dnsr_name2host_srv(&client, callid, &call); 234 234 break; 235 235 case DNSR_GET_SRVADDR: 236 dnsr_get_srvaddr_srv(&client, c handle, &call);236 dnsr_get_srvaddr_srv(&client, callid, &call); 237 237 break; 238 238 case DNSR_SET_SRVADDR: 239 dnsr_set_srvaddr_srv(&client, c handle, &call);239 dnsr_set_srvaddr_srv(&client, callid, &call); 240 240 break; 241 241 default: 242 async_answer_0(c handle, EINVAL);242 async_answer_0(callid, EINVAL); 243 243 } 244 244 }
Note:
See TracChangeset
for help on using the changeset viewer.