/** * Allocate and initialize an error of type GLOBUS_ERROR_TYPE_GSSAPI * @ingroup globus_gssapi_error_object * * @param base_source * Pointer to the originating module. * @param base_cause * The error object causing the error. If this is the original * error, this paramater may be NULL. * @param major_status * The GSSAPI major status * @param minor_status * The GSSAPI minor status * @return * The resulting error object. It is the user's responsibility * to eventually free this object using globus_object_free(). A * globus_result_t may be obtained by calling * globus_error_put() on this object. */ globus_object_t * globus_error_construct_gssapi_error( globus_module_descriptor_t * base_source, globus_object_t * base_cause, const OM_uint32 major_status, const OM_uint32 minor_status) { globus_object_t * error; globus_object_t * newerror; newerror = globus_object_construct(GLOBUS_ERROR_TYPE_GSSAPI); error = globus_error_initialize_gssapi_error( newerror, base_source, base_cause, major_status, minor_status); if (error == NULL) { globus_object_free(newerror); } return error; }/* globus_error_construct_gssapi_error() */
globus_object_t * globus_error_construct_base (globus_module_descriptor_t * source_module, globus_object_t * causal_error) { globus_object_t * newerror; globus_object_t * initerror; newerror = globus_object_construct (GLOBUS_ERROR_TYPE_BASE); initerror = globus_error_initialize_base (newerror, source_module, causal_error); if ( initerror == NULL ) { if ( newerror != NULL ) { globus_object_free (newerror); } } return initerror; }
globus_object_t * globus_i_ftp_client_wrap_ftp_error( globus_module_descriptor_t * base_source, int code, const char * message, int error_type, const char * source_file, const char * source_func, int source_line, const char * format, ...) { va_list ap; globus_object_t * error; globus_object_t * causal_error; globus_l_error_ftp_data_t * data; causal_error = globus_object_construct(GLOBUS_ERROR_TYPE_FTP); if(!causal_error) { goto error_object; } data = (globus_l_error_ftp_data_t *) globus_malloc(sizeof(globus_l_error_ftp_data_t)); if(!data) { goto error_data; } data->code = code; data->message = globus_libc_strdup(message); globus_object_set_local_instance_data(causal_error, data); globus_error_initialize_base(causal_error, base_source, NULL); va_start(ap, format); error = globus_error_v_construct_error( base_source, causal_error, error_type, source_file, source_func, source_line, format, ap); va_end(ap); if(!error) { goto error_construct; } return error; error_construct: error_data: globus_object_free(causal_error); error_object: return NULL; }