Skip to content

Commit fedce7d

Browse files
authored
Merge pull request #129 from Todd-L-Miller/tlmiller-fixes-branch
asynch API fixes
2 parents b1c37da + f7eecac commit fedce7d

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

src/scitokens.cpp

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ int scitoken_deserialize_continue(SciToken *token, SciTokenStatus *status,
378378
}
379379

380380
scitokens::SciToken *real_token =
381-
reinterpret_cast<scitokens::SciToken *>(token);
381+
reinterpret_cast<scitokens::SciToken *>(*token);
382382
std::unique_ptr<scitokens::SciTokenAsyncStatus> real_status(
383383
reinterpret_cast<scitokens::SciTokenAsyncStatus *>(*status));
384384

@@ -792,8 +792,10 @@ int scitoken_status_get_timeout_val(const SciTokenStatus *status,
792792
return -1;
793793
}
794794

795-
auto real_status = reinterpret_cast<const scitokens::AsyncStatus *>(status);
796-
struct timeval timeout_internal = real_status->get_timeout_val(expiry_time);
795+
auto real_status =
796+
reinterpret_cast<const scitokens::SciTokenAsyncStatus *>(*status);
797+
struct timeval timeout_internal =
798+
real_status->m_status->get_timeout_val(expiry_time);
797799
timeout->tv_sec = timeout_internal.tv_sec;
798800
timeout->tv_usec = timeout_internal.tv_usec;
799801
return 0;
@@ -814,8 +816,9 @@ int scitoken_status_get_read_fd_set(SciTokenStatus *status,
814816
return -1;
815817
}
816818

817-
auto real_status = reinterpret_cast<scitokens::AsyncStatus *>(status);
818-
*read_fd_set = real_status->get_read_fd_set();
819+
auto real_status =
820+
reinterpret_cast<const scitokens::SciTokenAsyncStatus *>(*status);
821+
*read_fd_set = real_status->m_status->get_read_fd_set();
819822
return 0;
820823
}
821824

@@ -834,8 +837,9 @@ int scitoken_status_get_write_fd_set(SciTokenStatus *status,
834837
return -1;
835838
}
836839

837-
auto real_status = reinterpret_cast<scitokens::AsyncStatus *>(status);
838-
*write_fd_set = real_status->get_write_fd_set();
840+
auto real_status =
841+
reinterpret_cast<const scitokens::SciTokenAsyncStatus *>(*status);
842+
*write_fd_set = real_status->m_status->get_write_fd_set();
839843
return 0;
840844
}
841845

@@ -854,8 +858,9 @@ int scitoken_status_get_exc_fd_set(SciTokenStatus *status, fd_set **exc_fd_set,
854858
return -1;
855859
}
856860

857-
auto real_status = reinterpret_cast<scitokens::AsyncStatus *>(status);
858-
*exc_fd_set = real_status->get_exc_fd_set();
861+
auto real_status =
862+
reinterpret_cast<const scitokens::SciTokenAsyncStatus *>(*status);
863+
*exc_fd_set = real_status->m_status->get_exc_fd_set();
859864
return 0;
860865
}
861866

@@ -874,8 +879,9 @@ int scitoken_status_get_max_fd(const SciTokenStatus *status, int *max_fd,
874879
return -1;
875880
}
876881

877-
auto real_status = reinterpret_cast<const scitokens::AsyncStatus *>(status);
878-
*max_fd = real_status->get_max_fd();
882+
auto real_status =
883+
reinterpret_cast<const scitokens::SciTokenAsyncStatus *>(*status);
884+
*max_fd = real_status->m_status->get_max_fd();
879885
return 0;
880886
}
881887

src/scitokens_internal.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,7 @@ std::unique_ptr<SciTokenAsyncStatus>
604604
SciToken::deserialize_continue(std::unique_ptr<SciTokenAsyncStatus> status) {
605605

606606
// Check if the status is completed (verification is complete)
607-
if (status->m_status) {
607+
if (status->m_status->m_done) {
608608
// Set all the claims
609609
m_claims = m_decoded->get_payload_claims();
610610

@@ -613,6 +613,13 @@ SciToken::deserialize_continue(std::unique_ptr<SciTokenAsyncStatus> status) {
613613
} else {
614614
status->m_status = status->m_validator->verify_async_continue(
615615
std::move(status->m_status));
616+
if (status->m_status->m_done) {
617+
// Set all the claims
618+
m_claims = m_decoded->get_payload_claims();
619+
620+
// Copy over the profile
621+
m_profile = status->m_validator->get_profile();
622+
}
616623
}
617624

618625
return std::move(status);

0 commit comments

Comments
 (0)