updated.
[runtime.git] / TODO
diff --git a/TODO b/TODO
index 2a2da686b2d6f715cecb91b76c2e4926be50fb6f..86912a7815949a08541bdaf0d82fb46c1f28ea1c 100644 (file)
--- a/TODO
+++ b/TODO
@@ -264,6 +264,22 @@ least could be done.
          and thus not require any memory allocation.  Same will happen
          with silc_id_payload_* functions.
 
+       o Remove the `truelen' field from SilcBuffer as it is entirely
+         redundant since we can get the true length of the buffer by
+         doing buffer->end - buffer->header.  Add SILC_BUFFER_TRUELEN
+         macro instead.  Consider also removing `len' field too since
+         it effectively is buffer->tail - buffer->data, and adding
+         SILC_BUFFER_LEN macro can do the same.  These would save
+         totally 8 bytes of memory per buffer.
+
+         Add also perhaps function silc_buffer_alloc_size that would
+         effectively do: 
+
+               return silc_buffer_pull_tail(silc_buffer_alloc(size),
+                                            size);
+
+         to not require the user to give the pull_tail anymore.
+
  o Optimizations in Server
 
        o Remove the big switch statement from the function 
@@ -283,6 +299,13 @@ least could be done.
          should be analyzed too how slow the task registering process
          actually is, and find out ways to optimize it.
 
+       o The SERVER_SIGNOFF notify handing is not optimal, because it'll
+         cause sending of multiple SIGNOFF notify's instead of the one
+         SERVER_SIGNOFF notify that the server received.  This should be
+         optimized so that the only SERVER_SIGNOFF is sent and not
+         SIGNOFF of notify at all (using SIGNOFF takes the idea about
+         SERVER_SIGNOFF away entirely).
+
  o Add SilcAsyncOperation to utility library.
 
  o Cipher optimizations (asm, that this) at least for i386 would be nice.