Ignore:
File:
1 edited

Legend:

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

    rf2d88f3 r4c6fd56  
    11/*
     2 * Copyright (c) 2023 Jiri Svoboda
    23 * Copyright (c) 2013 Jakub Jermar
    34 * All rights reserved.
     
    4041#include <loc.h>
    4142#include <inet/addr.h>
     43#include <inet/eth_addr.h>
    4244#include <inet/iplink_srv.h>
    4345#include <io/chardev.h>
     
    6264static errno_t slip_send6(iplink_srv_t *, iplink_sdu6_t *);
    6365static errno_t slip_get_mtu(iplink_srv_t *, size_t *);
    64 static errno_t slip_get_mac48(iplink_srv_t *, addr48_t *);
     66static errno_t slip_get_mac48(iplink_srv_t *, eth_addr_t *);
    6567static errno_t slip_addr_add(iplink_srv_t *, inet_addr_t *);
    6668static errno_t slip_addr_remove(iplink_srv_t *, inet_addr_t *);
     
    176178}
    177179
    178 errno_t slip_get_mac48(iplink_srv_t *src, addr48_t *mac)
     180errno_t slip_get_mac48(iplink_srv_t *src, eth_addr_t *mac)
    179181{
    180182        log_msg(LOG_DEFAULT, LVL_DEBUG, "slip_get_mac48()");
     
    305307        chardev_t *chardev_out = NULL;
    306308        fid_t fid;
     309        loc_srv_t *srv;
    307310        errno_t rc;
    308311
     
    312315        async_set_fallback_port_handler(slip_client_conn, NULL);
    313316
    314         rc = loc_server_register(NAME);
     317        rc = loc_server_register(NAME, &srv);
    315318        if (rc != EOK) {
    316319                log_msg(LOG_DEFAULT, LVL_ERROR,
     
    321324        rc = loc_service_get_id(svcstr, &svcid, 0);
    322325        if (rc != EOK) {
     326                loc_server_unregister(srv);
    323327                log_msg(LOG_DEFAULT, LVL_ERROR,
    324328                    "Failed getting ID for service %s", svcstr);
     
    328332        rc = loc_category_get_id(CAT_IPLINK, &iplinkcid, 0);
    329333        if (rc != EOK) {
     334                loc_server_unregister(srv);
    330335                log_msg(LOG_DEFAULT, LVL_ERROR,
    331336                    "Failed to get category ID for %s",
     
    340345        sess_out = loc_service_connect(svcid, INTERFACE_DDF, 0);
    341346        if (!sess_out) {
     347                loc_server_unregister(srv);
    342348                log_msg(LOG_DEFAULT, LVL_ERROR,
    343349                    "Failed to connect to service %s (ID=%d)",
     
    348354        rc = chardev_open(sess_out, &chardev_out);
    349355        if (rc != EOK) {
     356                loc_server_unregister(srv);
    350357                log_msg(LOG_DEFAULT, LVL_ERROR,
    351358                    "Failed opening character device.");
     
    371378        }
    372379
    373         rc = loc_service_register(linkstr, &linksid);
     380        rc = loc_service_register(srv, linkstr, &linksid);
    374381        if (rc != EOK) {
    375382                log_msg(LOG_DEFAULT, LVL_ERROR,
     
    379386        }
    380387
    381         rc = loc_service_add_to_cat(linksid, iplinkcid);
    382         if (rc != EOK) {
     388        rc = loc_service_add_to_cat(srv, linksid, iplinkcid);
     389        if (rc != EOK) {
     390                loc_service_unregister(srv, linksid);
    383391                log_msg(LOG_DEFAULT, LVL_ERROR,
    384392                    "Failed to add service %d (%s) to category %d (%s).",
     
    399407
    400408fail:
     409        loc_server_unregister(srv);
    401410        chardev_close(chardev_out);
    402411        if (sess_out)
Note: See TracChangeset for help on using the changeset viewer.