Changeset 02a09ed in mainline for uspace/srv/net/dnsrsrv/transport.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/transport.c
redf0d27 r02a09ed 183 183 int dns_request(dns_message_t *req, dns_message_t **rresp) 184 184 { 185 int rc; 185 trans_req_t *treq = NULL; 186 186 187 void *req_data; 187 188 size_t req_size; 189 int rc = dns_message_encode(req, &req_data, &req_size); 190 if (rc != EOK) 191 goto error; 192 188 193 struct sockaddr_in addr; 189 trans_req_t *treq; 190 int ntry; 191 192 req_data = NULL; 193 treq = NULL; 194 195 addr.sin_family = AF_INET; 196 addr.sin_port = htons(DNS_SERVER_PORT); 197 inet_addr_sockaddr_in(&dns_server_addr, &addr); 198 199 rc = dns_message_encode(req, &req_data, &req_size); 200 if (rc != EOK) 201 goto error; 202 203 ntry = 0; 204 194 struct sockaddr_in6 addr6; 195 uint16_t af = 196 inet_addr_sockaddr_in(&dns_server_addr, &addr, &addr6); 197 198 struct sockaddr *address; 199 socklen_t addrlen; 200 201 switch (af) { 202 case AF_INET: 203 addr.sin_port = htons(DNS_SERVER_PORT); 204 address = (struct sockaddr *) &addr; 205 addrlen = sizeof(addr); 206 break; 207 case AF_INET6: 208 addr6.sin6_port = htons(DNS_SERVER_PORT); 209 address = (struct sockaddr *) &addr6; 210 addrlen = sizeof(addr6); 211 break; 212 default: 213 rc = EAFNOSUPPORT; 214 goto error; 215 } 216 217 size_t ntry = 0; 218 205 219 while (ntry < REQ_RETRY_MAX) { 206 220 rc = sendto(transport_fd, req_data, req_size, 0, 207 (struct sockaddr *) &addr, sizeof(addr));221 (struct sockaddr *) address, addrlen); 208 222 if (rc != EOK) 209 223 goto error;
Note:
See TracChangeset
for help on using the changeset viewer.