Ignore:
File:
1 edited

Legend:

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

    rf9b2cb4c r8d48c7e  
    7777};
    7878
     79static void inet_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg);
     80
    7981static FIBRIL_MUTEX_INITIALIZE(client_list_lock);
    8082static LIST_INITIALIZE(client_list);
    8183
    82 static void inet_default_conn(ipc_callid_t, ipc_call_t *, void *);
    83 
    8484static int inet_init(void)
    8585{
    8686        log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_init()");
    8787       
    88         port_id_t port;
    89         int rc = async_create_port(INTERFACE_INET,
    90             inet_default_conn, NULL, &port);
    91         if (rc != EOK)
    92                 return rc;
    93        
    94         rc = async_create_port(INTERFACE_INETCFG,
    95             inet_cfg_conn, NULL, &port);
    96         if (rc != EOK)
    97                 return rc;
    98        
    99         rc = async_create_port(INTERFACE_INETPING,
    100             inetping_conn, NULL, &port);
    101         if (rc != EOK)
    102                 return rc;
    103        
    104         rc = loc_server_register(NAME);
     88        async_set_client_connection(inet_client_conn);
     89       
     90        int rc = loc_server_register(NAME);
    10591        if (rc != EOK) {
    10692                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering server (%d).", rc);
     
    10995       
    11096        service_id_t sid;
    111         rc = loc_service_register(SERVICE_NAME_INET, &sid);
     97        rc = loc_service_register_with_iface(SERVICE_NAME_INET, &sid,
     98            INET_PORT_DEFAULT);
     99        if (rc != EOK) {
     100                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering service (%d).", rc);
     101                return EEXIST;
     102        }
     103       
     104        rc = loc_service_register_with_iface(SERVICE_NAME_INETCFG, &sid,
     105            INET_PORT_CFG);
     106        if (rc != EOK) {
     107                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering service (%d).", rc);
     108                return EEXIST;
     109        }
     110       
     111        rc = loc_service_register_with_iface(SERVICE_NAME_INETPING, &sid,
     112            INET_PORT_PING);
    112113        if (rc != EOK) {
    113114                log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering service (%d).", rc);
     
    428429}
    429430
     431static void inet_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
     432{
     433        sysarg_t port;
     434
     435        port = IPC_GET_ARG1(*icall);
     436
     437        switch (port) {
     438        case INET_PORT_DEFAULT:
     439                inet_default_conn(iid, icall, arg);
     440                break;
     441        case INET_PORT_CFG:
     442                inet_cfg_conn(iid, icall, arg);
     443                break;
     444        case INET_PORT_PING:
     445                inetping_conn(iid, icall, arg);
     446                break;
     447        default:
     448                async_answer_0(iid, ENOTSUP);
     449                break;
     450        }
     451}
     452
    430453static inet_client_t *inet_client_find(uint8_t proto)
    431454{
Note: See TracChangeset for help on using the changeset viewer.