Commit Graph

  • 1bfa6bbd4e bsock_reader(): Buffers and marshals bytes from network to fake socket. pipelined-socket-buffering Avril 2021-08-22 15:15:18 +0100
  • c658e8a702
    Added `timesync()`: Force a future to take *at least* a certain duration of time to complete. Avril 2021-08-21 00:09:33 +0100
  • fbf96276ca
    Added `ESock::transfer_reader()`, `ESock::transfer_writer()`: Specific versions of `transfer_state()`. Avril 2021-08-20 21:59:27 +0100
  • 444f3f38dc
    Added `ESock::transfer_state()`: Change the `tx` and `rx` types in a encrypted socket while maintaining its keys and other encryption state. Avril 2021-08-20 21:33:38 +0100
  • 30522ec96f
    Created crude diagram for socket buffer pipelining tasks and communication with network and user. Avril 2021-08-19 20:50:59 +0100
  • 271e861169
    Started BufferedEsock: A task-based ``wrapper" around an ESock that buffers its input and output. master Avril 2021-08-19 20:00:36 +0100
  • 5fa9bccc52
    Added const_generics to smallvec. Avril 2021-08-19 15:25:41 +0100
  • c3f678a81e
    I FUCKING AM SO CLOSE TO GIVING UP. sock-buffering Avril 2021-08-18 23:00:18 +0100
  • d82c46b12d
    FUCKING FAILURE: For FUCKs sake. NO MATTER HOW MUCH STATE I ADD TO THE DAMN THING, IT STILL FAILS TO READ PROPERLY AT SOME ARBITRARY POINT IN THE BUFFER. Avril 2021-08-18 22:58:07 +0100
  • ed69a8f187
    Failure: Keeping buffer read/size state between pendings STILL doesn"t work... Avril 2021-08-18 22:50:24 +0100
  • 019bdee5c1
    Failure: Converted `read_test` to a poll-based function, it still loses state required to maintain the buffer location. There"s no way to make this code keep the state. We need to re-design the function to something completely different. Avril 2021-08-18 22:39:27 +0100
  • fc2b10a306
    Found bug. poll_read needs rewrite. Dunno how to write it tho. Avril 2021-08-18 20:51:52 +0100
  • 5d5748b5ea
    Found bug! It is **NOT** safe to pin and poll a stack future in a `poll*` Future method. Avril 2021-08-18 20:46:02 +0100
  • 7cad244c16
    FUCK THIS BULLSHIT. I LITERALLY JUST WANT A BUFFERED STREAM. WHY IS THERE NO LIBRARY FOR THIS, WHY IS THIS NOT THERE BY DEFAULT. FUCK EVERYTHING. I HATE THIS STUPID BOILERPLATE Avril 2021-08-18 19:32:44 +0100
  • 56306fae83
    Possible source of bug is polling a local stack future in poll_read method. Fucks sake. Avril 2021-08-18 19:30:00 +0100
  • c96d098441
    Buffered reader doesn"t work,no fucking clue why? Avril 2021-08-18 17:34:30 +0100
  • 9d927c548a TODO: impl `AsyncRead` for `Buffered<impl AsyncRead, SIZE>` Avril 2021-08-17 16:52:33 +0100
  • a6a25259b8
    Buffered: Fix buffer not being cleared on flush. Added internal info messages when `cfg!(test)` is enabled. Avril 2021-08-17 16:47:43 +0100
  • 818659b83c
    Buffered writer seems to work. Avril 2021-08-17 16:42:13 +0100
  • 19d1db35d6 Naive, basic impl of `AsyncWrite` for `Buffered<T,SIZE>` (untested, probably incorrect poll impls). Avril 2021-08-17 15:45:51 +0100
  • 90c9fce20c
    FIrst attempt at buffering stream... Doesn"t seem to be working well... Avril 2021-08-17 12:52:06 +0100
  • 6f8d367080
    Documented currently non-functioning `Buffered<T>` fields Avril 2021-08-17 02:24:45 +0100
  • 69d546d2d1
    Started `Buffered<T, const SIZE: usize>`: Static buffering stream wrapper for `ESock` syncing. Avril 2021-08-17 02:17:15 +0100
  • f8b6e3a0c6
    This bug may make ESock **unusable** in this project entirely. Individual `SerializedMessage` sending/receiving _might_ work reliably since that is based on rigid size communication, but streamed data may be untenable. Any desync in streaming buffers causes complete failure. Avril 2021-08-16 22:55:58 +0100
  • 2a3d9e0c3a
    For some reaosn, any difference between exact bytes written and read (even if they are identical, just spread over different `write` calls) causes the reading half to produce garbage? Avril 2021-08-16 22:50:36 +0100
  • e5fce0a045
    XXX: ESock doesn"t work! :/ The first encrypted write/read succeeds, but any subsequent calls to write/read produce garbage... Avril 2021-08-16 22:43:09 +0100
  • 20bf0f1649
    Removed install of a panic hook in unit test Avril 2021-08-16 21:42:56 +0100
  • 2a49d17528
    ESock tested: Exchange OK, Session OK, Encrypted + Unencrypted reads + writes OK. All works (so far)! :^) Avril 2021-08-16 18:50:49 +0100
  • dc307c6d06
    ESock: Added `split()` and `unsplit()` Avril 2021-08-16 15:29:23 +0100
  • edeb2ffee7
    Added AsyncWrite and AsyncRead impls to `ESock<W,R>` Avril 2021-08-16 15:13:18 +0100
  • b6b3bb0fd5
    Improved error messages for `set_encrypted_read()` and `exchange()`. Avril 2021-08-16 14:59:13 +0100
  • 087a076b40
    Added better error messages and context to `ESockSessionKey::from_ciphertext()` Avril 2021-08-16 13:43:27 +0100
  • 3991d82f93
    Added better error messages and context to `ESockSessionKey::to_ciphertext()` Avril 2021-08-16 13:40:14 +0100
  • 3a5331b5f1
    Added `bin` module for byte slice concat. exchange-unsafe Avril 2021-08-16 13:05:22 +0100
  • 0f7f22f290 ESock: Added `exchange_unpin()`. Start `Exchange` future for `exchange()` method that will work on non-Unpin types too. (Requires specific implemented future.) Avril 2021-08-15 17:11:07 +0100
  • 7f44c83ce3
    Added AsyncSource to ESock<W, R> Avril 2021-08-15 00:13:17 +0100
  • d349c018c2
    Using AsyncSource instead of dump Duplex hack. Avril 2021-08-15 00:12:12 +0100
  • 7f8acbba7f
    Bumped version of `chacha20stream` to 2.0: Added support for `Read` and `AsyncRead` en/decryption. Avril 2021-08-15 00:05:36 +0100
  • 7216f0f8de
    Added `ReverseSink<R>`, temporary type for handling reads (chacha20stream currently only has a wrapper type for writes.) Avril 2021-08-09 19:57:24 +0100
  • 62f3c384b2
    Start `enc` socket wrapper Avril 2021-08-09 17:21:22 +0100
  • d271f164fa
    Start sock capabilities complex-cap Avril 2021-08-09 16:20:28 +0100
  • 538080a6f1 Added MAX_BODY_SIZE Avril 2021-08-06 16:21:00 +0100
  • cf71fe20ab
    Set `StackVec` stack size to 2KB (from 4KB). Avril 2021-08-06 16:11:54 +0100
  • 37a00d1099
    Improved de/serialise error messages Avril 2021-08-06 16:08:18 +0100
  • 46cd0e4a9f
    from_buffer(): Implemented. message-write-to-buf Avril 2021-08-05 16:57:17 +0100
  • 52d19c730b
    Start reworking SerializedMessage -> binary pipeline. Avril 2021-08-05 00:25:26 +0100
  • 6afb148068 Added `UntypedSerializedMessage`: A `SerializedMessage` whos original value type has been erased. A `SerializedMessage<V>` can be converted into this with `.into_untyped()`, and can be converted back with the `unsafe` function `into_typed<V>()`. Avril 2021-08-03 19:45:24 +0100
  • c286708bff
    Start: `UntypedMessageValue` for unsafe casting of `SerializedMessage`s Avril 2021-08-03 16:49:27 +0100
  • 7765c33070
    Moved `MessageValue` to own file Avril 2021-08-03 16:19:24 +0100
  • af19935167
    Attempted specialisation. Failed. specialisation Avril 2021-08-03 16:17:10 +0100
  • ab97278dbd
    Added `subtrait!` macro for creating a blanket-impl trait that ``inherits" from one or more different traits in a few different ways (normal -> `Sized` types only, `dyn`: Sized and unsized types , `virtual`: Sized and unsized types, downcastable.) Avril 2021-08-03 14:33:30 +0100
  • 2308b61b58 Start: Raw socket handling function Avril 2021-08-02 14:01:50 +0100
  • d3c43b323b
    Added task cancelling module Avril 2021-08-01 16:27:43 +0100
  • c98f1c5c6c Added message header accessors. Avril 2021-07-30 15:12:49 +0100
  • 2931a3e8cb
    Moved message tests to own file. Avril 2021-07-30 14:47:29 +0100
  • 674c7a1171
    Sign & Encrypt tests working okay Avril 2021-07-30 14:43:42 +0100
  • 101ce28602
    Encrypt + Sign tests work. Avril 2021-07-30 14:38:55 +0100
  • 226901861a
    Start adding stack-allocation helper functions. (ext.rs) Avril 2021-07-29 23:42:27 +0100
  • 4877a843bd
    Added `DefaultMessageSender`, `DefaultMessageReceiver`, `DefaultMessageSenderReceiver` types, which function the same as `()` for the cases of the trait(s) that they implement. Avril 2021-07-29 22:07:08 +0100
  • 36f3ed4586
    Abstracted message serialisation test code. Avril 2021-07-29 22:01:25 +0100
  • 1f2655a7f2
    Basic message de/serialisation test passes. (Value -> Message -> SerializedMessage -> Bytes -> SerializedMessage -> Message -> Value). No encryption tests yet. Avril 2021-07-29 21:54:47 +0100
  • 3e59440609 Message de/serial test written (currently failing due to serde_cbor being greedy when deserialising from reader) Avril 2021-07-29 19:21:47 +0100
  • c41d5c2c28
    Added `SerializedMessage::from_reader()` (reading untrusted messages) Avril 2021-07-29 17:10:03 +0100
  • 9142244bca
    Started `Message` protocol. Avril 2021-07-29 14:14:41 +0100