diff options
Diffstat (limited to '')
-rw-r--r-- | include/quiche.h | 6 | ||||
-rw-r--r-- | src/ffi.rs | 21 |
2 files changed, 27 insertions, 0 deletions
diff --git a/include/quiche.h b/include/quiche.h index abc8b6a0..d22e8171 100644 --- a/include/quiche.h +++ b/include/quiche.h @@ -320,6 +320,12 @@ int quiche_conn_close(quiche_conn *conn, bool app, uint64_t err, // Returns a string uniquely representing the connection. void quiche_conn_trace_id(quiche_conn *conn, const uint8_t **out, size_t *out_len); +// Returns the source connection ID. +void quiche_conn_source_id(quiche_conn *conn, const uint8_t **out, size_t *out_len); + +// Returns the destination connection ID. +void quiche_conn_destination_id(quiche_conn *conn, const uint8_t **out, size_t *out_len); + // Returns the negotiated ALPN protocol. void quiche_conn_application_proto(quiche_conn *conn, const uint8_t **out, size_t *out_len); @@ -767,6 +767,27 @@ pub extern fn quiche_conn_trace_id( } #[no_mangle] +pub extern fn quiche_conn_source_id( + conn: &mut Connection, out: &mut *const u8, out_len: &mut size_t, +) { + let conn_id = conn.source_id(); + let id = conn_id.as_ref(); + *out = id.as_ptr(); + *out_len = id.len(); +} + +#[no_mangle] +pub extern fn quiche_conn_destination_id( + conn: &mut Connection, out: &mut *const u8, out_len: &mut size_t, +) { + let conn_id = conn.destination_id(); + let id = conn_id.as_ref(); + + *out = id.as_ptr(); + *out_len = id.len(); +} + +#[no_mangle] pub extern fn quiche_conn_application_proto( conn: &mut Connection, out: &mut *const u8, out_len: &mut size_t, ) { |