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