diff options
author | Frederic Peters <fpeters@entrouvert.com> | 2004-12-13 15:23:24 +0000 |
---|---|---|
committer | Frederic Peters <fpeters@entrouvert.com> | 2004-12-13 15:23:24 +0000 |
commit | b04103301a98b3522f92882604a2c22c6d6e8e7d (patch) | |
tree | 0bd896cae7a815e08fe1eb49f33f494a03fb359c | |
parent | 92dfd8e1b1af9fa155b65adc22aec87470eb2d67 (diff) | |
download | lasso-b04103301a98b3522f92882604a2c22c6d6e8e7d.tar.gz lasso-b04103301a98b3522f92882604a2c22c6d6e8e7d.tar.xz lasso-b04103301a98b3522f92882604a2c22c6d6e8e7d.zip |
dealing with errors; now like this:
return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_ADD_PROVIDER_FAILED);
-rw-r--r-- | lasso/id-ff/defederation.c | 10 | ||||
-rw-r--r-- | lasso/id-ff/login.c | 10 | ||||
-rw-r--r-- | lasso/id-ff/logout.c | 14 | ||||
-rw-r--r-- | lasso/id-ff/name_identifier_mapping.c | 16 | ||||
-rw-r--r-- | lasso/id-ff/name_registration.c | 24 | ||||
-rw-r--r-- | lasso/id-ff/server.c | 3 | ||||
-rw-r--r-- | lasso/xml/tools.c | 7 | ||||
-rw-r--r-- | lasso/xml/tools.h | 10 |
8 files changed, 51 insertions, 43 deletions
diff --git a/lasso/id-ff/defederation.c b/lasso/id-ff/defederation.c index 5b037520..ab27d73b 100644 --- a/lasso/id-ff/defederation.c +++ b/lasso/id-ff/defederation.c @@ -161,12 +161,11 @@ lasso_defederation_init_notification(LassoDefederation *defederation, gchar *rem return -1; } - remote_provider = g_hash_table_lookup( profile->server->providers, profile->remote_providerID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "Remote provider not found"); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } /* get federation */ @@ -354,8 +353,9 @@ lasso_defederation_validate_notification(LassoDefederation *defederation) remote_provider = g_hash_table_lookup(profile->server->providers, profile->remote_providerID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "Provider not found"); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, + LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } /* build the QUERY and the url. Dont need to sign the query, diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c index 33a4ca41..d42f5d89 100644 --- a/lasso/id-ff/login.c +++ b/lasso/id-ff/login.c @@ -586,7 +586,8 @@ lasso_login_build_authn_request_msg(LassoLogin *login, const gchar *remote_provi remote_provider = g_hash_table_lookup(LASSO_PROFILE(login)->server->providers, LASSO_PROFILE(login)->remote_providerID); if (remote_provider == NULL) { - return -1; /* XXX */ + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + LASSO_PROFILE(login)->remote_providerID); } protocolProfile = LASSO_LIB_AUTHN_REQUEST(LASSO_PROFILE(login)->request)->ProtocolProfile; @@ -789,8 +790,8 @@ lasso_login_build_request_msg(LassoLogin *login) remote_provider = g_hash_table_lookup(profile->server->providers, profile->remote_providerID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "Remote provider not found"); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } profile->msg_url = lasso_provider_get_metadata_one(remote_provider, "SoapEndpoint"); return 0; @@ -1004,8 +1005,7 @@ lasso_login_init_idp_initiated_authn_request(LassoLogin *login, if (remote_providerID == NULL) { first_providerID = lasso_server_get_first_providerID(LASSO_PROFILE(login)->server); LASSO_PROFILE(login)->remote_providerID = first_providerID; - } - else { + } else { LASSO_PROFILE(login)->remote_providerID = g_strdup(remote_providerID); } diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c index e40654fb..e5a14cbb 100644 --- a/lasso/id-ff/logout.c +++ b/lasso/id-ff/logout.c @@ -75,8 +75,8 @@ lasso_logout_build_request_msg(LassoLogout *logout) remote_provider = g_hash_table_lookup(profile->server->providers, profile->remote_providerID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "XXX"); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } /* build the logout request message */ @@ -322,8 +322,8 @@ lasso_logout_init_request(LassoLogout *logout, char *remote_providerID, remote_provider = g_hash_table_lookup( profile->server->providers, profile->remote_providerID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "Remote provider not found"); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } /* before setting profile->request, verify if it is already set */ @@ -654,8 +654,10 @@ lasso_logout_validate_request(LassoLogout *logout) /* get the provider */ remote_provider = g_hash_table_lookup(profile->server->providers, profile->remote_providerID); - if (remote_provider == NULL) - return -1; + if (remote_provider == NULL) { + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); + } /* Set LogoutResponse */ profile->response = NULL; diff --git a/lasso/id-ff/name_identifier_mapping.c b/lasso/id-ff/name_identifier_mapping.c index 06131ea9..cc73a150 100644 --- a/lasso/id-ff/name_identifier_mapping.c +++ b/lasso/id-ff/name_identifier_mapping.c @@ -43,8 +43,8 @@ lasso_name_identifier_mapping_build_request_msg(LassoNameIdentifierMapping *mapp remote_provider = g_hash_table_lookup(profile->server->providers, profile->remote_providerID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "Provider %s not found", profile->remote_providerID); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } if (remote_provider->role != LASSO_PROVIDER_ROLE_IDP) { @@ -82,8 +82,8 @@ lasso_name_identifier_mapping_build_response_msg(LassoNameIdentifierMapping *map remote_provider = g_hash_table_lookup(profile->server->providers, profile->remote_providerID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "Provider %s not found", profile->remote_providerID); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } if (remote_provider->role != LASSO_PROVIDER_ROLE_SP) { @@ -141,8 +141,8 @@ lasso_name_identifier_mapping_init_request(LassoNameIdentifierMapping *mapping, remote_provider = g_hash_table_lookup(profile->server->providers, profile->remote_providerID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "XXX"); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } if (remote_provider->role != LASSO_PROVIDER_ROLE_IDP) { message(G_LOG_LEVEL_CRITICAL, "Init request method is forbidden for an IDP"); @@ -269,8 +269,8 @@ lasso_name_identifier_mapping_process_response_msg(LassoNameIdentifierMapping *m remote_provider = g_hash_table_lookup(profile->server->providers, LASSO_LIB_NAME_IDENTIFIER_MAPPING_RESPONSE(profile->response)->ProviderID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "XXX"); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } /* verify signature */ diff --git a/lasso/id-ff/name_registration.c b/lasso/id-ff/name_registration.c index b6dde3ac..da8cbbad 100644 --- a/lasso/id-ff/name_registration.c +++ b/lasso/id-ff/name_registration.c @@ -63,8 +63,8 @@ lasso_name_registration_build_request_msg(LassoNameRegistration *name_registrati remote_provider = g_hash_table_lookup(profile->server->providers, profile->remote_providerID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "XXX"); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } if (profile->http_request_method == LASSO_HTTP_METHOD_SOAP) { @@ -118,8 +118,8 @@ lasso_name_registration_build_response_msg(LassoNameRegistration *name_registrat remote_provider = g_hash_table_lookup(profile->server->providers, profile->remote_providerID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "XXX"); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } if (profile->http_request_method == LASSO_HTTP_METHOD_SOAP) { @@ -190,8 +190,8 @@ lasso_name_registration_init_request(LassoNameRegistration *name_registration, remote_provider = g_hash_table_lookup(profile->server->providers, profile->remote_providerID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "XXX"); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } /* Get federation */ @@ -386,8 +386,8 @@ lasso_name_registration_process_response_msg(LassoNameRegistration *name_registr remote_provider = g_hash_table_lookup(profile->server->providers, LASSO_LIB_STATUS_RESPONSE(profile->response)->ProviderID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "XXX"); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } /* verify signature */ @@ -416,8 +416,8 @@ lasso_name_registration_process_response_msg(LassoNameRegistration *name_registr remote_provider = g_hash_table_lookup(profile->server->providers, profile->remote_providerID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "Remote provider not found"); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } if (remote_provider->role == LASSO_PROVIDER_ROLE_SP) { @@ -503,8 +503,8 @@ lasso_name_registration_validate_request(LassoNameRegistration *name_registratio remote_provider = g_hash_table_lookup(profile->server->providers, profile->remote_providerID); if (remote_provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "XXX"); - return -1; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND, + profile->remote_providerID); } /* update name identifier in federation */ diff --git a/lasso/id-ff/server.c b/lasso/id-ff/server.c index cdec3b0b..3cb78ad5 100644 --- a/lasso/id-ff/server.c +++ b/lasso/id-ff/server.c @@ -57,8 +57,7 @@ lasso_server_add_provider(LassoServer *server, LassoProviderRole role, provider = lasso_provider_new(role, metadata, public_key, ca_cert_chain); if (provider == NULL) { - message(G_LOG_LEVEL_CRITICAL, "Failed to add new provider."); - return LASSO_SERVER_ERROR_ADD_PROVIDER_FAILED; + return error_code(G_LOG_LEVEL_CRITICAL, LASSO_SERVER_ERROR_ADD_PROVIDER_FAILED); } g_hash_table_insert(server->providers, g_strdup(provider->ProviderID), provider); diff --git a/lasso/xml/tools.c b/lasso/xml/tools.c index 1f81cb85..8853c4ab 100644 --- a/lasso/xml/tools.c +++ b/lasso/xml/tools.c @@ -559,7 +559,7 @@ char** urlencoded_to_strings(const char *str) return result; } -void +int _debug(GLogLevelFlags level, const char *filename, int line, const char *function, const char *format, ...) { @@ -581,4 +581,9 @@ _debug(GLogLevelFlags level, const char *filename, int line, } else { g_log("Lasso", level, "%s\t%s", date, debug_string); } + + /* returns 0 so it can be chained to another value (with ||) in + * error_code macro + */ + return 0; } diff --git a/lasso/xml/tools.h b/lasso/xml/tools.h index 72e6fc5c..f20d5af5 100644 --- a/lasso/xml/tools.h +++ b/lasso/xml/tools.h @@ -65,19 +65,21 @@ LASSO_EXPORT char* lasso_sha1(const char *str); char** urlencoded_to_strings(const char *str); -void _debug(GLogLevelFlags level, const char *filename, int line, +int _debug(GLogLevelFlags level, const char *filename, int line, const char *function, const char *format, ...); #if defined LASSO_DEBUG # define debug(format, args...) \ - _debug(G_LOG_LEVEL_DEBUG, __FILE__, __LINE__,__FUNCTION__, format, ##args); + _debug(G_LOG_LEVEL_DEBUG, __FILE__, __LINE__,__FUNCTION__, format, ##args) #else -# define debug(format, ...); +# define debug(format, ...) #endif #define message(level, format, args...) \ - _debug(level, __FILE__, __LINE__, __FUNCTION__, format, ##args); + _debug(level, __FILE__, __LINE__, __FUNCTION__, format, ##args) +#define error_code(level, errorcode, args...) \ + (message(level, lasso_strerror(errorcode), ##args) || errorcode); #ifdef __cplusplus } |