Changeset 0c2d9bb in mainline for uspace/srv/net/dnsrsrv/transport.c


Ignore:
Timestamp:
2013-12-25T22:54:29Z (10 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b51cf2c
Parents:
f7a33de (diff), ac36aed (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

merge mainline changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/dnsrsrv/transport.c

    rf7a33de r0c2d9bb  
    158158        assert(fibril_mutex_is_locked(&treq_lock));
    159159
    160         list_foreach(treq_list, link) {
    161                 trans_req_t *treq = list_get_instance(link, trans_req_t, lreq);
    162 
     160        list_foreach(treq_list, lreq, trans_req_t, treq) {
    163161                if (treq->req->id == resp->id) {
    164162                        /* Match */
     
    184182{
    185183        trans_req_t *treq = NULL;
     184        struct sockaddr *saddr = NULL;
     185        socklen_t saddrlen;
    186186       
    187187        void *req_data;
     
    191191                goto error;
    192192       
    193         struct sockaddr_in addr;
    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;
     193        rc = inet_addr_sockaddr(&dns_server_addr, DNS_SERVER_PORT,
     194            &saddr, &saddrlen);
     195        if (rc != EOK) {
     196                assert(rc == ENOMEM);
    214197                goto error;
    215198        }
     
    219202        while (ntry < REQ_RETRY_MAX) {
    220203                rc = sendto(transport_fd, req_data, req_size, 0,
    221                     (struct sockaddr *) address, addrlen);
     204                    saddr, saddrlen);
    222205                if (rc != EOK)
    223206                        goto error;
     
    258241        treq_destroy(treq);
    259242        free(req_data);
     243        free(saddr);
    260244        return EOK;
    261245       
     
    265249       
    266250        free(req_data);
     251        free(saddr);
    267252        return rc;
    268253}
Note: See TracChangeset for help on using the changeset viewer.