Example #1
0
void ERR_load_ERR_strings(void)
	{
	static int init=1;

	if (init)
		{
		CRYPTO_w_lock(CRYPTO_LOCK_ERR);
		if (init == 0)
			{
			CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
			return;
			}
		CRYPTO_w_unlock(CRYPTO_LOCK_ERR);

#ifndef NO_ERR
		ERR_load_strings(0,ERR_str_libraries);
		ERR_load_strings(0,ERR_str_reasons);
		ERR_load_strings(ERR_LIB_SYS,ERR_str_functs);
		build_SYS_str_reasons();
		ERR_load_strings(ERR_LIB_SYS,SYS_str_reasons);
#endif
		init=0;
		}
	}
static void err_load_strings(void) {
  unsigned i, j = 0;

  err_fns_check();

  /* This loop loads strings for the libraries for the ERR_R_*_LIB
   * reasons. */
  for (i = ERR_LIB_NONE; i < ERR_NUM_LIBS; i++) {
    ERR_STRING_DATA *data = &kStaticErrors[j++];
    data->string = kLibraryNames[i];
    data->error = ERR_PACK(i, 0, 0);
    ERRFN(set_item)(data);

    data = &kStaticErrors[j++];
    data->string = kLibraryNames[i];
    data->error = ERR_PACK(0, 0, i);
    ERRFN(set_item)(data);
  }

  for (i = 1; i < 1 + NUM_SYS_ERRNOS; i++) {
    /* The "SYS" library sets errno values as the reason for its errors.
     * Thus we load the first |NUM_SYS_ERRNOS| errno strings as the
     * reason strings for that library. */

    ERR_STRING_DATA *data = &kStaticErrors[j++];
    data->string = strerror(i);
    data->error = ERR_PACK(ERR_LIB_SYS, 0, i);
    ERRFN(set_item)(data);
  }

  ERR_load_strings(kGlobalErrors);

  ERR_load_strings(ASN1_error_string_data);
  ERR_load_strings(BIO_error_string_data);
  ERR_load_strings(BN_error_string_data);
  ERR_load_strings(BUF_error_string_data);
  ERR_load_strings(CIPHER_error_string_data);
  ERR_load_strings(CONF_error_string_data);
  ERR_load_strings(CRYPTO_error_string_data);
  ERR_load_strings(DH_error_string_data);
  ERR_load_strings(DIGEST_error_string_data);
  ERR_load_strings(DSA_error_string_data);
  ERR_load_strings(ECDH_error_string_data);
  ERR_load_strings(ECDSA_error_string_data);
  ERR_load_strings(EC_error_string_data);
  ERR_load_strings(EVP_error_string_data);
  ERR_load_strings(OBJ_error_string_data);
  ERR_load_strings(PEM_error_string_data);
  ERR_load_strings(RSA_error_string_data);
  ERR_load_strings(X509V3_error_string_data);
  ERR_load_strings(X509_error_string_data);
}