|
|
|
@ -89,7 +89,7 @@ grpc_client_security_context *grpc_client_security_context_create(void) { |
|
|
|
|
void grpc_client_security_context_destroy(void *ctx) { |
|
|
|
|
grpc_client_security_context *c = (grpc_client_security_context *)ctx; |
|
|
|
|
grpc_credentials_unref(c->creds); |
|
|
|
|
grpc_auth_context_unref(c->auth_context); |
|
|
|
|
GRPC_AUTH_CONTEXT_UNREF(c->auth_context, "client_security_context"); |
|
|
|
|
gpr_free(ctx); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -104,7 +104,7 @@ grpc_server_security_context *grpc_server_security_context_create(void) { |
|
|
|
|
|
|
|
|
|
void grpc_server_security_context_destroy(void *ctx) { |
|
|
|
|
grpc_server_security_context *c = (grpc_server_security_context *)ctx; |
|
|
|
|
grpc_auth_context_unref(c->auth_context); |
|
|
|
|
GRPC_AUTH_CONTEXT_UNREF(c->auth_context, "server_security_context"); |
|
|
|
|
gpr_free(ctx); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -120,21 +120,40 @@ grpc_auth_context *grpc_auth_context_create(grpc_auth_context *chained, |
|
|
|
|
memset(ctx->properties, 0, property_count * sizeof(grpc_auth_property)); |
|
|
|
|
ctx->property_count = property_count; |
|
|
|
|
gpr_ref_init(&ctx->refcount, 1); |
|
|
|
|
if (chained != NULL) ctx->chained = grpc_auth_context_ref(chained); |
|
|
|
|
if (chained != NULL) ctx->chained = GRPC_AUTH_CONTEXT_REF(chained, "chained"); |
|
|
|
|
return ctx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifdef GRPC_AUTH_CONTEXT_REFCOUNT_DEBUG |
|
|
|
|
grpc_auth_context *grpc_auth_context_ref(grpc_auth_context *ctx, |
|
|
|
|
const char *file, int line, |
|
|
|
|
const char *reason) { |
|
|
|
|
if (ctx == NULL) return NULL; |
|
|
|
|
gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG, |
|
|
|
|
"AUTH_CONTEXT:%p ref %d -> %d %s", ctx, (int)ctx->refcount.count, |
|
|
|
|
(int)ctx->refcount.count + 1, reason); |
|
|
|
|
#else |
|
|
|
|
grpc_auth_context *grpc_auth_context_ref(grpc_auth_context *ctx) { |
|
|
|
|
if (ctx == NULL) return NULL; |
|
|
|
|
#endif |
|
|
|
|
gpr_ref(&ctx->refcount); |
|
|
|
|
return ctx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifdef GRPC_AUTH_CONTEXT_REFCOUNT_DEBUG |
|
|
|
|
void grpc_auth_context_unref(grpc_auth_context *ctx, const char *file, int line, |
|
|
|
|
const char *reason) { |
|
|
|
|
if (ctx == NULL) return; |
|
|
|
|
gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG, |
|
|
|
|
"AUTH_CONTEXT:%p unref %d -> %d %s", ctx, (int)ctx->refcount.count, |
|
|
|
|
(int)ctx->refcount.count - 1, reason); |
|
|
|
|
#else |
|
|
|
|
void grpc_auth_context_unref(grpc_auth_context *ctx) { |
|
|
|
|
if (ctx == NULL) return; |
|
|
|
|
#endif |
|
|
|
|
if (gpr_unref(&ctx->refcount)) { |
|
|
|
|
size_t i; |
|
|
|
|
grpc_auth_context_unref(ctx->chained); |
|
|
|
|
GRPC_AUTH_CONTEXT_UNREF(ctx->chained, "chained"); |
|
|
|
|
if (ctx->properties != NULL) { |
|
|
|
|
for (i = 0; i < ctx->property_count; i++) { |
|
|
|
|
grpc_auth_property_reset(&ctx->properties[i]); |
|
|
|
@ -223,8 +242,8 @@ grpc_auth_property grpc_auth_property_init(const char *name, const char *value, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void grpc_auth_property_reset(grpc_auth_property *property) { |
|
|
|
|
if (property->name != NULL) gpr_free(property->name); |
|
|
|
|
if (property->value != NULL) gpr_free(property->value); |
|
|
|
|
gpr_free(property->name); |
|
|
|
|
gpr_free(property->value); |
|
|
|
|
memset(property, 0, sizeof(grpc_auth_property)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|