Skip to content
Snippets Groups Projects
Commit 76fcaeee authored by yang-g's avatar yang-g
Browse files

resolve comments

parent be5f0592
No related branches found
No related tags found
No related merge requests found
...@@ -48,11 +48,11 @@ typedef struct { ...@@ -48,11 +48,11 @@ typedef struct {
grpc_pollset pollset; grpc_pollset pollset;
int is_done; int is_done;
char *token; char *token;
} synchronizer; } oauth2_request;
static void on_oauth2_response(void *user_data, grpc_credentials_md *md_elems, static void on_oauth2_response(void *user_data, grpc_credentials_md *md_elems,
size_t num_md, grpc_credentials_status status) { size_t num_md, grpc_credentials_status status) {
synchronizer *sync = user_data; oauth2_request *request = user_data;
char *token = NULL; char *token = NULL;
gpr_slice token_slice; gpr_slice token_slice;
if (status == GRPC_CREDENTIALS_ERROR) { if (status == GRPC_CREDENTIALS_ERROR) {
...@@ -65,28 +65,28 @@ static void on_oauth2_response(void *user_data, grpc_credentials_md *md_elems, ...@@ -65,28 +65,28 @@ static void on_oauth2_response(void *user_data, grpc_credentials_md *md_elems,
GPR_SLICE_LENGTH(token_slice)); GPR_SLICE_LENGTH(token_slice));
token[GPR_SLICE_LENGTH(token_slice)] = '\0'; token[GPR_SLICE_LENGTH(token_slice)] = '\0';
} }
gpr_mu_lock(GRPC_POLLSET_MU(&sync->pollset)); gpr_mu_lock(GRPC_POLLSET_MU(&request->pollset));
sync->is_done = 1; request->is_done = 1;
sync->token = token; request->token = token;
grpc_pollset_kick(&sync->pollset); grpc_pollset_kick(&request->pollset);
gpr_mu_unlock(GRPC_POLLSET_MU(&sync->pollset)); gpr_mu_unlock(GRPC_POLLSET_MU(&request->pollset));
} }
static void do_nothing(void *unused) {} static void do_nothing(void *unused) {}
char *grpc_test_fetch_oauth2_token_with_credentials(grpc_credentials *creds) { char *grpc_test_fetch_oauth2_token_with_credentials(grpc_credentials *creds) {
synchronizer sync; oauth2_request request;
grpc_pollset_init(&sync.pollset); grpc_pollset_init(&request.pollset);
sync.is_done = 0; request.is_done = 0;
grpc_credentials_get_request_metadata(creds, &sync.pollset, "", grpc_credentials_get_request_metadata(creds, &request.pollset, "",
on_oauth2_response, &sync); on_oauth2_response, &request);
gpr_mu_lock(GRPC_POLLSET_MU(&sync.pollset)); gpr_mu_lock(GRPC_POLLSET_MU(&request.pollset));
while (!sync.is_done) grpc_pollset_work(&sync.pollset, gpr_inf_future); while (!request.is_done) grpc_pollset_work(&request.pollset, gpr_inf_future);
gpr_mu_unlock(GRPC_POLLSET_MU(&sync.pollset)); gpr_mu_unlock(GRPC_POLLSET_MU(&request.pollset));
grpc_pollset_shutdown(&sync.pollset, do_nothing, NULL); grpc_pollset_shutdown(&request.pollset, do_nothing, NULL);
grpc_pollset_destroy(&sync.pollset); grpc_pollset_destroy(&request.pollset);
return sync.token; return request.token;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment