Changeset 02a09ed in mainline for uspace/srv/net/dnsrsrv/dnsrsrv.c
- Timestamp:
- 2013-06-28T20:20:03Z (11 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1d24ad3
- Parents:
- edf0d27
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/dnsrsrv/dnsrsrv.c
redf0d27 r02a09ed 84 84 } 85 85 86 static void dnsr_name2host_srv(dnsr_client_t *client, ipc_callid_t callid, 87 ipc_call_t *call) 88 { 86 static void dnsr_name2host_srv(dnsr_client_t *client, ipc_callid_t iid, 87 ipc_call_t *icall) 88 { 89 log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_get_srvaddr_srv()"); 90 89 91 char *name; 92 int rc = async_data_write_accept((void **) &name, true, 0, 93 DNS_NAME_MAX_SIZE, 0, NULL); 94 if (rc != EOK) { 95 async_answer_0(iid, rc); 96 return; 97 } 98 90 99 dns_host_info_t *hinfo; 91 ipc_callid_t rcallid;92 size_t size;93 sysarg_t retval;94 size_t act_size;95 int rc;96 97 log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_get_srvaddr_srv()");98 99 rc = async_data_write_accept((void **) &name, true, 0,100 DNS_NAME_MAX_SIZE, 0, NULL);101 if (rc != EOK) {102 async_answer_0(callid, rc);103 return;104 }105 106 if (!async_data_read_receive(&rcallid, &size)) {107 async_answer_0(rcallid, EREFUSED);108 async_answer_0(callid, EREFUSED);109 return;110 }111 112 100 rc = dns_name2host(name, &hinfo); 113 101 if (rc != EOK) { 114 async_answer_0(rcallid, rc); 115 async_answer_0(callid, rc); 116 return; 117 } 118 119 uint32_t addr; 120 rc = inet_addr_pack(&hinfo->addr, &addr); 121 if (rc != EOK) { 122 async_answer_0(rcallid, rc); 123 async_answer_0(callid, rc); 124 return; 125 } 126 127 act_size = str_size(hinfo->cname); 128 if (act_size > size) { 129 async_answer_0(rcallid, EOVERFLOW); 130 async_answer_0(callid, EOVERFLOW); 131 return; 132 } 133 134 retval = async_data_read_finalize(rcallid, hinfo->cname, act_size); 135 async_answer_1(callid, retval, (sysarg_t) addr); 136 137 dns_hostinfo_destroy(hinfo); 138 } 139 140 static void dnsr_get_srvaddr_srv(dnsr_client_t *client, ipc_callid_t iid, 141 ipc_call_t *icall) 142 { 143 log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_get_srvaddr_srv()"); 102 async_answer_0(iid, rc); 103 return; 104 } 144 105 145 106 ipc_callid_t callid; … … 157 118 } 158 119 120 rc = async_data_read_finalize(callid, &hinfo->addr, size); 121 if (rc != EOK) { 122 async_answer_0(callid, rc); 123 async_answer_0(iid, rc); 124 return; 125 } 126 127 if (!async_data_read_receive(&callid, &size)) { 128 async_answer_0(callid, EREFUSED); 129 async_answer_0(iid, EREFUSED); 130 return; 131 } 132 133 size_t act_size = str_size(hinfo->cname); 134 if (act_size > size) { 135 async_answer_0(callid, EINVAL); 136 async_answer_0(iid, EINVAL); 137 return; 138 } 139 140 rc = async_data_read_finalize(callid, hinfo->cname, act_size); 141 if (rc != EOK) 142 async_answer_0(callid, rc); 143 144 async_answer_0(iid, (sysarg_t) rc); 145 146 dns_hostinfo_destroy(hinfo); 147 } 148 149 static void dnsr_get_srvaddr_srv(dnsr_client_t *client, ipc_callid_t iid, 150 ipc_call_t *icall) 151 { 152 log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_get_srvaddr_srv()"); 153 154 ipc_callid_t callid; 155 size_t size; 156 if (!async_data_read_receive(&callid, &size)) { 157 async_answer_0(callid, EREFUSED); 158 async_answer_0(iid, EREFUSED); 159 return; 160 } 161 162 if (size != sizeof(inet_addr_t)) { 163 async_answer_0(callid, EINVAL); 164 async_answer_0(iid, EINVAL); 165 return; 166 } 167 159 168 // FIXME locking 160 169 161 sysarg_t retval = 162 async_data_read_finalize(callid, &dns_server_addr, size); 163 async_answer_0(iid, retval); 170 int rc = async_data_read_finalize(callid, &dns_server_addr, size); 171 if (rc != EOK) 172 async_answer_0(callid, rc); 173 174 async_answer_0(iid, rc); 164 175 } 165 176 … … 185 196 // FIXME locking 186 197 187 sysarg_t retval = 188 async_data_write_finalize(callid, &dns_server_addr, size); 189 async_answer_0(iid, retval); 198 int rc = async_data_write_finalize(callid, &dns_server_addr, size); 199 if (rc != EOK) 200 async_answer_0(callid, rc); 201 202 async_answer_0(iid, (sysarg_t) rc); 190 203 } 191 204
Note:
See TracChangeset
for help on using the changeset viewer.