Changeset 3e66428 in mainline for uspace/srv/net/dnsrsrv
- Timestamp:
- 2013-06-20T14:10:51Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 19a4f73
- Parents:
- b49d872
- Location:
- uspace/srv/net/dnsrsrv
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/dnsrsrv/dns_msg.c
rb49d872 r3e66428 299 299 assert(buf_size >= 4); 300 300 301 w = ((uint32_t) buf[0] << 24) +302 ((uint32_t) buf[1] << 16) +303 ((uint32_t) buf[2] << 8) +301 w = ((uint32_t) buf[0] << 24) + 302 ((uint32_t) buf[1] << 16) + 303 ((uint32_t) buf[2] << 8) + 304 304 buf[3]; 305 305 -
uspace/srv/net/dnsrsrv/dns_type.h
rb49d872 r3e66428 39 39 #include <adt/list.h> 40 40 #include <inet/inet.h> 41 #include <inet/addr2.h> 41 42 #include <stdbool.h> 42 43 #include <stdint.h> … … 115 116 char *cname; 116 117 /** Host address */ 117 inet _addr_t addr;118 inet2_addr_t addr; 118 119 } dns_host_info_t; 119 120 -
uspace/srv/net/dnsrsrv/dnsrsrv.c
rb49d872 r3e66428 116 116 return; 117 117 } 118 119 uint32_t addr; 120 rc = inet2_addr_pack(&hinfo->addr, &addr); 121 if (rc != EOK) { 122 async_answer_0(rcallid, rc); 123 async_answer_0(callid, rc); 124 return; 125 } 118 126 119 127 act_size = str_size(hinfo->cname); … … 125 133 126 134 retval = async_data_read_finalize(rcallid, hinfo->cname, act_size); 127 async_answer_1(callid, retval, hinfo->addr.ipv4);135 async_answer_1(callid, retval, (sysarg_t) addr); 128 136 129 137 dns_hostinfo_destroy(hinfo); 130 138 } 131 139 132 static void dnsr_get_srvaddr_srv(dnsr_client_t *client, ipc_callid_t callid,133 ipc_call_t * call)140 static void dnsr_get_srvaddr_srv(dnsr_client_t *client, ipc_callid_t iid, 141 ipc_call_t *icall) 134 142 { 135 143 log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_get_srvaddr_srv()"); 136 async_answer_1(callid, EOK, dns_server_addr.ipv4); 137 } 138 139 static void dnsr_set_srvaddr_srv(dnsr_client_t *client, ipc_callid_t callid, 140 ipc_call_t *call) 144 145 ipc_callid_t callid; 146 size_t size; 147 if (!async_data_read_receive(&callid, &size)) { 148 async_answer_0(callid, EREFUSED); 149 async_answer_0(iid, EREFUSED); 150 return; 151 } 152 153 if (size != sizeof(inet2_addr_t)) { 154 async_answer_0(callid, EINVAL); 155 async_answer_0(iid, EINVAL); 156 return; 157 } 158 159 // FIXME locking 160 161 sysarg_t retval = 162 async_data_read_finalize(callid, &dns_server_addr, size); 163 async_answer_0(iid, retval); 164 } 165 166 static void dnsr_set_srvaddr_srv(dnsr_client_t *client, ipc_callid_t iid, 167 ipc_call_t *icall) 141 168 { 142 169 log_msg(LOG_DEFAULT, LVL_DEBUG, "dnsr_set_srvaddr_srv()"); 143 144 dns_server_addr.ipv4 = IPC_GET_ARG1(*call); 145 146 async_answer_0(callid, EOK); 170 171 ipc_callid_t callid; 172 size_t size; 173 if (!async_data_write_receive(&callid, &size)) { 174 async_answer_0(callid, EREFUSED); 175 async_answer_0(iid, EREFUSED); 176 return; 177 } 178 179 if (size != sizeof(inet2_addr_t)) { 180 async_answer_0(callid, EINVAL); 181 async_answer_0(iid, EINVAL); 182 return; 183 } 184 185 // FIXME locking 186 187 sysarg_t retval = 188 async_data_write_finalize(callid, &dns_server_addr, size); 189 async_answer_0(iid, retval); 147 190 } 148 191 -
uspace/srv/net/dnsrsrv/query.c
rb49d872 r3e66428 128 128 129 129 info->cname = str_dup(rr->name); 130 info->addr.ipv4 = dns_uint32_t_decode(rr->rdata, rr->rdata_size); 131 log_msg(LOG_DEFAULT, LVL_DEBUG, "info->name = '%s' " 132 "info->addr = %x", info->cname, info->addr.ipv4); 133 130 inet2_addr_unpack(dns_uint32_t_decode(rr->rdata, rr->rdata_size), 131 &info->addr); 132 134 133 dns_message_destroy(msg); 135 134 dns_message_destroy(amsg); -
uspace/srv/net/dnsrsrv/transport.c
rb49d872 r3e66428 52 52 53 53 /** Request timeout (microseconds) */ 54 #define REQ_TIMEOUT (5 *1000*1000)54 #define REQ_TIMEOUT (5 * 1000 * 1000) 55 55 56 56 /** Maximum number of retries */ 57 57 #define REQ_RETRY_MAX 3 58 59 inet2_addr_t dns_server_addr; 58 60 59 61 typedef struct { … … 72 74 static fid_t recv_fid; 73 75 static int transport_fd = -1; 74 inet_addr_t dns_server_addr;75 76 76 77 /** Outstanding requests */ … … 194 195 addr.sin_family = AF_INET; 195 196 addr.sin_port = htons(DNS_SERVER_PORT); 196 addr.sin_addr.s_addr = host2uint32_t_be(dns_server_addr.ipv4);197 inet2_addr_sockaddr_in(&dns_server_addr, &addr); 197 198 198 199 rc = dns_message_encode(req, &req_data, &req_size); … … 204 205 while (ntry < REQ_RETRY_MAX) { 205 206 rc = sendto(transport_fd, req_data, req_size, 0, 206 (struct sockaddr *) &addr, sizeof(addr));207 (struct sockaddr *) &addr, sizeof(addr)); 207 208 if (rc != EOK) 208 209 goto error; -
uspace/srv/net/dnsrsrv/transport.h
rb49d872 r3e66428 37 37 #define TRANSPORT_H 38 38 39 #include <inet/addr .h>39 #include <inet/addr2.h> 40 40 #include "dns_type.h" 41 42 extern inet2_addr_t dns_server_addr; 41 43 42 44 extern int transport_init(void); … … 44 46 extern int dns_request(dns_message_t *, dns_message_t **); 45 47 46 extern inet_addr_t dns_server_addr;47 48 49 48 #endif 50 49
Note:
See TracChangeset
for help on using the changeset viewer.