Changes in uspace/srv/locsrv/locsrv.c [a3fcfba:50ad3f3] in mainline
- File:
-
- 1 edited
-
uspace/srv/locsrv/locsrv.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/locsrv/locsrv.c
ra3fcfba r50ad3f3 656 656 } 657 657 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 704 658 /** Connect client to the service. 705 659 * … … 1451 1405 loc_service_get_name(callid, &call); 1452 1406 break; 1453 case LOC_SERVICE_GET_SERVER_NAME:1454 loc_service_get_server_name(callid, &call);1455 break;1456 1407 case LOC_NAMESPACE_GET_ID: 1457 1408 loc_namespace_get_id(callid, &call);
Note:
See TracChangeset
for help on using the changeset viewer.
