diff options
author | 2021-05-17 18:57:35 +0200 | |
---|---|---|
committer | 2021-05-17 17:57:35 +0100 | |
commit | 3ed9202a0089e7b599214552c807626c678e1aea (patch) | |
tree | 2a1db91283345d1885199393565edc49092fd5ba | |
parent | 567cc5ebc530ed5cf2c14dd4af88a2496bacb290 (diff) | |
download | quiche-3ed9202a0089e7b599214552c807626c678e1aea.tar.gz quiche-3ed9202a0089e7b599214552c807626c678e1aea.tar.zst quiche-3ed9202a0089e7b599214552c807626c678e1aea.zip |
ffi: expose source / destination connection IDs
Motivation:
We should expose functions to access the source and destination ids via the c API as well
Modifications:
Expose functions in the C API
Result:
Be able to access the ids of a connection
-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, ) { |