aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/tsi/transport_security_adapter.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/tsi/transport_security_adapter.c')
-rw-r--r--src/core/tsi/transport_security_adapter.c49
1 files changed, 26 insertions, 23 deletions
diff --git a/src/core/tsi/transport_security_adapter.c b/src/core/tsi/transport_security_adapter.c
index 7e0b8f574a..60cebdd6f2 100644
--- a/src/core/tsi/transport_security_adapter.c
+++ b/src/core/tsi/transport_security_adapter.c
@@ -50,14 +50,14 @@ typedef struct {
size_t unused_bytes_size;
} tsi_adapter_handshaker_result;
-static tsi_result tsi_adapter_result_extract_peer(tsi_handshaker_result *self,
- tsi_peer *peer) {
+static tsi_result tsi_adapter_result_extract_peer(
+ const tsi_handshaker_result *self, tsi_peer *peer) {
tsi_adapter_handshaker_result *impl = (tsi_adapter_handshaker_result *)self;
return tsi_handshaker_extract_peer(impl->handshaker, peer);
}
static tsi_result tsi_adapter_result_create_frame_protector(
- tsi_handshaker_result *self, size_t *max_output_protected_frame_size,
+ const tsi_handshaker_result *self, size_t *max_output_protected_frame_size,
tsi_frame_protector **protector) {
tsi_adapter_handshaker_result *impl = (tsi_adapter_handshaker_result *)self;
return tsi_handshaker_create_frame_protector(
@@ -65,7 +65,8 @@ static tsi_result tsi_adapter_result_create_frame_protector(
}
static tsi_result tsi_adapter_result_get_unused_bytes(
- tsi_handshaker_result *self, unsigned char **bytes, size_t *byte_size) {
+ const tsi_handshaker_result *self, unsigned char **bytes,
+ size_t *byte_size) {
tsi_adapter_handshaker_result *impl = (tsi_adapter_handshaker_result *)self;
*bytes = impl->unused_bytes;
*byte_size = impl->unused_bytes_size;
@@ -74,9 +75,7 @@ static tsi_result tsi_adapter_result_get_unused_bytes(
static void tsi_adapter_result_destroy(tsi_handshaker_result *self) {
tsi_adapter_handshaker_result *impl = (tsi_adapter_handshaker_result *)self;
- if (impl->unused_bytes != NULL) {
- gpr_free(impl->unused_bytes);
- }
+ gpr_free(impl->unused_bytes);
gpr_free(self);
}
@@ -114,45 +113,45 @@ typedef struct {
size_t adapter_buffer_size;
} tsi_adapter_handshaker;
-tsi_result tsi_adapter_get_bytes_to_send_to_peer(tsi_handshaker *self,
- unsigned char *bytes,
- size_t *bytes_size) {
+static tsi_result tsi_adapter_get_bytes_to_send_to_peer(tsi_handshaker *self,
+ unsigned char *bytes,
+ size_t *bytes_size) {
return tsi_handshaker_get_bytes_to_send_to_peer(
tsi_adapter_handshaker_get_wrapped(self), bytes, bytes_size);
}
-tsi_result tsi_adapter_process_bytes_from_peer(tsi_handshaker *self,
- const unsigned char *bytes,
- size_t *bytes_size) {
+static tsi_result tsi_adapter_process_bytes_from_peer(
+ tsi_handshaker *self, const unsigned char *bytes, size_t *bytes_size) {
return tsi_handshaker_process_bytes_from_peer(
tsi_adapter_handshaker_get_wrapped(self), bytes, bytes_size);
}
-tsi_result tsi_adapter_get_result(tsi_handshaker *self) {
+static tsi_result tsi_adapter_get_result(tsi_handshaker *self) {
return tsi_handshaker_get_result(tsi_adapter_handshaker_get_wrapped(self));
}
-tsi_result tsi_adapter_extract_peer(tsi_handshaker *self, tsi_peer *peer) {
+static tsi_result tsi_adapter_extract_peer(tsi_handshaker *self,
+ tsi_peer *peer) {
return tsi_handshaker_extract_peer(tsi_adapter_handshaker_get_wrapped(self),
peer);
}
-tsi_result tsi_adapter_create_frame_protector(tsi_handshaker *self,
- size_t *max_protected_frame_size,
- tsi_frame_protector **protector) {
+static tsi_result tsi_adapter_create_frame_protector(
+ tsi_handshaker *self, size_t *max_protected_frame_size,
+ tsi_frame_protector **protector) {
return tsi_handshaker_create_frame_protector(
tsi_adapter_handshaker_get_wrapped(self), max_protected_frame_size,
protector);
}
-void tsi_adapter_destroy(tsi_handshaker *self) {
+static void tsi_adapter_destroy(tsi_handshaker *self) {
tsi_adapter_handshaker *impl = (tsi_adapter_handshaker *)self;
tsi_handshaker_destroy(impl->wrapped);
gpr_free(impl->adapter_buffer);
gpr_free(self);
}
-tsi_result tsi_adapter_next(
+static tsi_result tsi_adapter_next(
tsi_handshaker *self, const unsigned char *received_bytes,
size_t received_bytes_size, unsigned char **bytes_to_send,
size_t *bytes_to_send_size, tsi_handshaker_result **handshaker_result,
@@ -196,11 +195,15 @@ tsi_result tsi_adapter_next(
size_t unused_bytes_size = received_bytes_size - bytes_consumed;
const unsigned char *unused_bytes =
unused_bytes_size == 0 ? NULL : received_bytes + bytes_consumed;
- return tsi_adapter_create_handshaker_result(
+ status = tsi_adapter_create_handshaker_result(
impl->wrapped, unused_bytes, unused_bytes_size, handshaker_result);
+ if (status == TSI_OK) {
+ impl->base.handshaker_result_created = true;
+ }
+ } else {
+ *handshaker_result = NULL;
}
- *handshaker_result = NULL;
- return TSI_OK;
+ return status;
}
static const tsi_handshaker_vtable handshaker_vtable = {