[Fix] Connection issues in example-usage & wasm

This commit is contained in:
Alois 2026-06-25 18:31:11 +02:00
commit 3332aa621b
13 changed files with 356 additions and 55 deletions

View file

@ -124,12 +124,14 @@ impl WasmClient {
pub async fn auth_connect(
&mut self,
config: &ConnectionConfig,
_host_public_key_bytes: &[u8],
host_public_key_bytes: &[u8],
keyring_bytes: &[u8],
client_id: u64,
) -> Result<u64, JsValue> {
self.set_state(ConnectionState::Connecting);
let _host_pk = mtp_crypto::PublicKeyBundle::from_bytes(host_public_key_bytes)
.map_err(|e| js_error(&format!("invalid host public key: {}", e)))?;
let keyring = mtp_crypto::Keyring::from_bytes(keyring_bytes)
.map_err(|e| js_error(&format!("invalid keyring: {}", e)))?;

View file

@ -200,7 +200,7 @@ impl WasmTransport {
if buffer.len() >= 4 {
let frame_len =
u32::from_le_bytes([buffer[0], buffer[1], buffer[2], buffer[3]]) as usize;
u32::from_be_bytes([buffer[0], buffer[1], buffer[2], buffer[3]]) as usize;
if 4 + frame_len <= buffer.len() {
return Ok(buffer[4..4 + frame_len].to_vec());
}
@ -303,7 +303,7 @@ impl WasmTransport {
// Extract all complete frames from the buffer
while buffer.len() >= 4 {
let frame_len =
u32::from_le_bytes([buffer[0], buffer[1], buffer[2], buffer[3]]) as usize;
u32::from_be_bytes([buffer[0], buffer[1], buffer[2], buffer[3]]) as usize;
if 4 + frame_len > buffer.len() {
break;
}
@ -317,7 +317,7 @@ impl WasmTransport {
// Process any remaining complete frames after stream closes
while buffer.len() >= 4 {
let frame_len =
u32::from_le_bytes([buffer[0], buffer[1], buffer[2], buffer[3]]) as usize;
u32::from_be_bytes([buffer[0], buffer[1], buffer[2], buffer[3]]) as usize;
if 4 + frame_len > buffer.len() {
break;
}