Changeset 58e8646 in mainline for uspace/srv/net/udp/assoc.c


Ignore:
Timestamp:
2017-08-23T18:37:21Z (7 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
258d77e
Parents:
853802e
Message:

Fix DNS resolution not working due to missing local address.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/udp/assoc.c

    r853802e r58e8646  
    4040#include <fibril_synch.h>
    4141#include <inet/endpoint.h>
     42#include <inet/inet.h>
    4243#include <io/log.h>
    4344#include <nettl/amap.h>
     
    261262                return EINVAL;
    262263
     264        /* This association has no local address set. Need to determine one. */
     265        log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_assoc_send - check no local addr");
     266        if (inet_addr_is_any(&epp.local.addr) && !assoc->nolocal) {
     267                log_msg(LOG_DEFAULT, LVL_DEBUG, "Determine local address.");
     268                rc = inet_get_srcaddr(&epp.remote.addr, 0, &epp.local.addr);
     269                if (rc != EOK) {
     270                        log_msg(LOG_DEFAULT, LVL_DEBUG, "Cannot determine "
     271                            "local address.");
     272                        return EINVAL;
     273                }
     274        }
     275
    263276        log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_assoc_send - check version");
    264277
    265         if (epp.remote.addr.version != epp.local.addr.version)
     278        if (!inet_addr_is_any(&epp.local.addr) &&
     279            epp.remote.addr.version != epp.local.addr.version)
    266280                return EINVAL;
    267281
Note: See TracChangeset for help on using the changeset viewer.