Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/locsrv/locsrv.c

    ra3fcfba r50ad3f3  
    656656}
    657657
    658 static void loc_service_get_server_name(ipc_callid_t iid, ipc_call_t *icall)
    659 {
    660         ipc_callid_t callid;
    661         size_t size;
    662         size_t act_size;
    663         loc_service_t *svc;
    664        
    665         if (!async_data_read_receive(&callid, &size)) {
    666                 async_answer_0(callid, EREFUSED);
    667                 async_answer_0(iid, EREFUSED);
    668                 return;
    669         }
    670        
    671         fibril_mutex_lock(&services_list_mutex);
    672        
    673         svc = loc_service_find_id(IPC_GET_ARG1(*icall));
    674         if (svc == NULL) {
    675                 fibril_mutex_unlock(&services_list_mutex);
    676                 async_answer_0(callid, ENOENT);
    677                 async_answer_0(iid, ENOENT);
    678                 return;
    679         }
    680        
    681         if (svc->server == NULL) {
    682                 fibril_mutex_unlock(&services_list_mutex);
    683                 async_answer_0(callid, EINVAL);
    684                 async_answer_0(iid, EINVAL);
    685                 return;
    686         }
    687        
    688         act_size = str_size(svc->server->name);
    689         if (act_size > size) {
    690                 fibril_mutex_unlock(&services_list_mutex);
    691                 async_answer_0(callid, EOVERFLOW);
    692                 async_answer_0(iid, EOVERFLOW);
    693                 return;
    694         }
    695        
    696         sysarg_t retval = async_data_read_finalize(callid, svc->server->name,
    697             min(size, act_size));
    698        
    699         fibril_mutex_unlock(&services_list_mutex);
    700        
    701         async_answer_0(iid, retval);
    702 }
    703 
    704658/** Connect client to the service.
    705659 *
     
    14511405                        loc_service_get_name(callid, &call);
    14521406                        break;
    1453                 case LOC_SERVICE_GET_SERVER_NAME:
    1454                         loc_service_get_server_name(callid, &call);
    1455                         break;
    14561407                case LOC_NAMESPACE_GET_ID:
    14571408                        loc_namespace_get_id(callid, &call);
Note: See TracChangeset for help on using the changeset viewer.