Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/inetsrv/inetsrv.c

    r9749e47 r695b6ff  
    4646#include <stdlib.h>
    4747#include <sys/types.h>
     48#include <net/socket_codes.h>
    4849#include "addrobj.h"
    4950#include "icmp.h"
     
    5455#include "inetcfg.h"
    5556#include "inetping.h"
     57#include "inetping6.h"
    5658#include "inet_link.h"
    5759#include "reass.h"
     
    6163
    6264static inet_naddr_t solicited_node_mask = {
    63         .version = ip_v6,
     65        .family = AF_INET6,
    6466        .addr6 = {0xff, 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01, 0xff, 0, 0, 0},
    6567        .prefix = 104
     
    6769
    6870static inet_addr_t broadcast4_all_hosts = {
    69         .version = ip_v4,
     71        .family = AF_INET,
    7072        .addr = 0xffffffff
    7173};
    7274
    7375static inet_addr_t multicast_all_nodes = {
    74         .version = ip_v6,
     76        .family = AF_INET6,
    7577        .addr6 = {0xff, 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01}
    7678};
     
    114116                return EEXIST;
    115117        }
     118       
     119        rc = loc_service_register_with_iface(SERVICE_NAME_INETPING6, &sid,
     120            INET_PORT_PING6);
     121        if (rc != EOK) {
     122                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering service (%d).", rc);
     123                return EEXIST;
     124        }
     125       
     126        rc = inet_link_discovery_start();
     127        if (rc != EOK)
     128                return EEXIST;
    116129       
    117130        return EOK;
     
    171184
    172185        if (dgram->iplink != 0) {
    173                 /* XXX TODO - IPv6 */
    174186                log_msg(LOG_DEFAULT, LVL_DEBUG, "dgram directly to iplink %zu",
    175187                    dgram->iplink);
     
    179191                        return ENOENT;
    180192
    181                 if (dgram->src.version != ip_v4 ||
    182                         dgram->dest.version != ip_v4)
     193                if (dgram->src.family != AF_INET ||
     194                        dgram->dest.family != AF_INET)
    183195                        return EINVAL;
    184196
     
    217229
    218230        /* Take source address from the address object */
    219         if (remote->version == ip_v4 && remote->addr == 0xffffffff) {
    220                 /* XXX TODO - IPv6 */
    221                 local->version = ip_v4;
     231        if (remote->family == AF_INET && remote->addr == 0xffffffff) {
     232                local->family = AF_INET;
    222233                local->addr = 0;
    223234                return EOK;
    224235        }
    225 
    226236        inet_naddr_addr(&dir.aobj->naddr, local);
    227237        return EOK;
     
    444454                inetping_conn(iid, icall, arg);
    445455                break;
     456        case INET_PORT_PING6:
     457                inetping6_conn(iid, icall, arg);
     458                break;
    446459        default:
    447460                async_answer_0(iid, ENOTSUP);
Note: See TracChangeset for help on using the changeset viewer.