From: Michal Sojka Date: Wed, 27 May 2009 14:06:40 +0000 (+0200) Subject: FCB produces more meaningful error messages now X-Git-Url: http://rtime.felk.cvut.cz/gitweb/frescor/frsh.git/commitdiff_plain/094c0f9aa73c4f1a75a55611db8c673173a0af1c FCB produces more meaningful error messages now --- diff --git a/fres/cbroker/fcb.c b/fres/cbroker/fcb.c index 02e99cf..9da5e68 100644 --- a/fres/cbroker/fcb.c +++ b/fres/cbroker/fcb.c @@ -346,7 +346,7 @@ prepare_fcb_contracts(struct fcb *fcb, struct fcb_contract *fcb_contracts[], if (!*resource) { ul_logerr("No resource manager for %d.%d registered\n", key.type, key.id); - return FRSH_ERR_RESOURCE_ID_INVALID; + return FRES_ERR_NO_RESOURCE_MANAGER; } } else if (key.type != key2.type || @@ -818,6 +818,7 @@ CORBA_long register_allocator(fres_contract_broker obj, struct res_key resource; forb_server_id server_id; char server_id_str[40]; + int ret; forb_get_server_id(ra_obj, &server_id); forb_server_id_to_string(server_id_str, &server_id, sizeof(server_id_str)); @@ -830,6 +831,7 @@ CORBA_long register_allocator(fres_contract_broker obj, if (!res) { ul_logerr("No manager found for %d.%d. Unable to register the allocator!\n", restype, resid); + ret = FRES_ERR_NO_RESOURCE_MANAGER; goto err; } ra = fcb_alloc_find(res, &server_id); @@ -838,10 +840,12 @@ CORBA_long register_allocator(fres_contract_broker obj, ul_logerr("Allocator from already registered (%s)\n", str); forb_free(str); + ret = FRES_ERR_ALLOCATOR_ALREADY_REGISTERED; goto err; } ra = malloc(sizeof(*ra)); if (!ra) { + ret = ENOMEM; goto err; } ra->app = server_id; @@ -849,7 +853,7 @@ CORBA_long register_allocator(fres_contract_broker obj, fcb_alloc_insert(res, ra); return 0; err: - return FRSH_ERR_RESOURCE_ID_INVALID; + return ret; } void get_resources(fres_contract_broker obj, fres_resource_seq** resources, CORBA_Environment *ev) diff --git a/fres/contract/fres_error.c b/fres/contract/fres_error.c index 740f907..bfcf30f 100644 --- a/fres/contract/fres_error.c +++ b/fres/contract/fres_error.c @@ -122,6 +122,8 @@ int fres_strerror (int error, char *message, size_t size) MSG(FORB_EX_OBJECT_NOT_EXIST); MSG(FORB_EX_TIMEOUT); MSG(FORB_EX_APPLICATION); + MSG(NO_RESOURCE_MANAGER); + MSG(ALLOCATOR_ALREADY_REGISTERED); } if (s == NULL) return FRSH_ERR_BAD_ARGUMENT; diff --git a/fres/contract/fres_error.h b/fres/contract/fres_error.h index aacc7ad..8864b45 100644 --- a/fres/contract/fres_error.h +++ b/fres/contract/fres_error.h @@ -91,6 +91,8 @@ enum fres_error { FRES_ERR_FORB_EX_OBJECT_NOT_EXIST, FRES_ERR_FORB_EX_TIMEOUT, FRES_ERR_FORB_EX_APPLICATION, + FRES_ERR_NO_RESOURCE_MANAGER, + FRES_ERR_ALLOCATOR_ALREADY_REGISTERED, }; int fres_strerror (int error, char *message, size_t size);