credentials_provider_anonymous.c 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /**
  2. * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
  3. * SPDX-License-Identifier: Apache-2.0.
  4. */
  5. #include <aws/auth/credentials.h>
  6. #include <aws/auth/private/credentials_utils.h>
  7. static int s_anonymous_credentials_provider_get_credentials_async(
  8. struct aws_credentials_provider *provider,
  9. aws_on_get_credentials_callback_fn callback,
  10. void *user_data) {
  11. struct aws_credentials *credentials = provider->impl;
  12. AWS_LOGF_INFO(
  13. AWS_LS_AUTH_CREDENTIALS_PROVIDER,
  14. "(id=%p) Anonymous credentials provider successfully sourced credentials",
  15. (void *)provider);
  16. callback(credentials, AWS_ERROR_SUCCESS, user_data);
  17. return AWS_OP_SUCCESS;
  18. }
  19. static void s_anonymous_credentials_provider_destroy(struct aws_credentials_provider *provider) {
  20. struct aws_credentials *credentials = provider->impl;
  21. aws_credentials_release(credentials);
  22. aws_credentials_provider_invoke_shutdown_callback(provider);
  23. aws_mem_release(provider->allocator, provider);
  24. }
  25. static struct aws_credentials_provider_vtable s_aws_credentials_provider_anonymous_vtable = {
  26. .get_credentials = s_anonymous_credentials_provider_get_credentials_async,
  27. .destroy = s_anonymous_credentials_provider_destroy,
  28. };
  29. struct aws_credentials_provider *aws_credentials_provider_new_anonymous(
  30. struct aws_allocator *allocator,
  31. const struct aws_credentials_provider_shutdown_options *shutdown_options) {
  32. struct aws_credentials_provider *provider = aws_mem_calloc(allocator, 1, sizeof(struct aws_credentials_provider));
  33. struct aws_credentials *credentials = aws_credentials_new_anonymous(allocator);
  34. if (credentials == NULL) {
  35. goto on_new_credentials_failure;
  36. }
  37. aws_credentials_provider_init_base(provider, allocator, &s_aws_credentials_provider_anonymous_vtable, credentials);
  38. provider->shutdown_options = *shutdown_options;
  39. return provider;
  40. on_new_credentials_failure:
  41. aws_mem_release(allocator, provider);
  42. return NULL;
  43. }