Ignore:
File:
1 edited

Legend:

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

    r984a9ba r4c6fd56  
    11/*
    2  * Copyright (c) 2012 Jiri Svoboda
     2 * Copyright (c) 2023 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    4141#include <inet/iplink_srv.h>
    4242#include <inet/addr.h>
     43#include <inet/eth_addr.h>
    4344#include <io/log.h>
    4445#include <loc.h>
     
    5556static errno_t loopip_send6(iplink_srv_t *srv, iplink_sdu6_t *sdu);
    5657static errno_t loopip_get_mtu(iplink_srv_t *srv, size_t *mtu);
    57 static errno_t loopip_get_mac48(iplink_srv_t *srv, addr48_t *mac);
     58static errno_t loopip_get_mac48(iplink_srv_t *srv, eth_addr_t *mac);
    5859static errno_t loopip_addr_add(iplink_srv_t *srv, inet_addr_t *addr);
    5960static errno_t loopip_addr_remove(iplink_srv_t *srv, inet_addr_t *addr);
     
    102103static errno_t loopip_init(void)
    103104{
     105        loc_srv_t *srv;
     106
    104107        async_set_fallback_port_handler(loopip_client_conn, NULL);
    105108
    106         errno_t rc = loc_server_register(NAME);
     109        errno_t rc = loc_server_register(NAME, &srv);
    107110        if (rc != EOK) {
    108111                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering server.");
     
    118121        const char *svc_name = "net/loopback";
    119122        service_id_t sid;
    120         rc = loc_service_register(svc_name, &sid);
    121         if (rc != EOK) {
     123        rc = loc_service_register(srv, svc_name, &sid);
     124        if (rc != EOK) {
     125                loc_server_unregister(srv);
    122126                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering service %s.",
    123127                    svc_name);
     
    128132        rc = loc_category_get_id("iplink", &iplink_cat, IPC_FLAG_BLOCKING);
    129133        if (rc != EOK) {
     134                loc_service_unregister(srv, sid);
     135                loc_server_unregister(srv);
    130136                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed resolving category 'iplink'.");
    131137                return rc;
    132138        }
    133139
    134         rc = loc_service_add_to_cat(sid, iplink_cat);
    135         if (rc != EOK) {
     140        rc = loc_service_add_to_cat(srv, sid, iplink_cat);
     141        if (rc != EOK) {
     142                loc_service_unregister(srv, sid);
     143                loc_server_unregister(srv);
    136144                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed adding %s to category.",
    137145                    svc_name);
     
    140148
    141149        fid_t fid = fibril_create(loopip_recv_fibril, NULL);
    142         if (fid == 0)
    143                 return ENOMEM;
     150        if (fid == 0) {
     151                loc_service_unregister(srv, sid);
     152                loc_server_unregister(srv);
     153                return ENOMEM;
     154        }
    144155
    145156        fibril_add_ready(fid);
     
    231242}
    232243
    233 static errno_t loopip_get_mac48(iplink_srv_t *src, addr48_t *mac)
     244static errno_t loopip_get_mac48(iplink_srv_t *src, eth_addr_t *mac)
    234245{
    235246        log_msg(LOG_DEFAULT, LVL_DEBUG, "loopip_get_mac48()");
Note: See TracChangeset for help on using the changeset viewer.