2003-10-06 Marcus Brinkmann <marcus@g10code.de>
[gpgme.git] / TODO
diff --git a/TODO b/TODO
index 57da7f0..80f4b85 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,8 +1,7 @@
 Hey Emacs, this is -*- outline -*- mode!
 
 * Before release:
-** Write --thread option for gpgme-config.
-** Document new thread support.
+** currently nothing
 
 * ABI's to break:
 ** I/O and User Data could be made extensible.  But this can be done
@@ -27,9 +26,6 @@ Hey Emacs, this is -*- outline -*- mode!
 
 * Thread support:
 ** When GNU Pth supports sendmsg/recvmsg, wrap them properly.
-** Build thread modules for static linking (which just suck in the
-   desired symbols the hard way). !!
-** Ordering the libs is important, but libtool gets it wrong.  Argh.
 
 * New features:
 ** notification system
@@ -42,10 +38,13 @@ Hey Emacs, this is -*- outline -*- mode!
 ** --learn-code support
    This might be integrated with import. we still need to work out how
    to learn a card when gpg and gpgsm have support for smartcards.
-** set_locale for thread safe and env independent locale selection.
 ** How to terminate a pending operation?  Something like gpgme_op_reset,
    but where are you allowed to call it (think callback handlers).
-   Then gpgme_op_*list_end can go.
+   Then gpgme_op_*list_end can go.  Update: The only place where this
+   can go is returning errors from callback handlers, and a function
+   to be called for example from the user event loop code.  The user
+   must observe the threading rules!  A blocking thread can not be
+   cancelled.
 ** Might need a stat() for data objects and use it for length param to gpg.
 ** Allow to export secret keys.
 ** Implement support for photo ids.
@@ -69,7 +68,8 @@ Hey Emacs, this is -*- outline -*- mode!
    about where to guarantee what (ie, what happens if start fails, are
    the fds unregistered immediately - i think so?)
 ** Optimize the case where a data object has an underlying fd we can pass
-   directly to the engine.
+   directly to the engine.  This will be automatic with socket I/O and
+   descriptor passing.
 ** Move code common to all engines up from gpg to engine.
 ** engine operations can return General Error on unknown protocol
    (it's an internal error, as select_protocol checks already).
@@ -82,11 +82,14 @@ Hey Emacs, this is -*- outline -*- mode!
    NOTE: The EOF status handler is not called in this case !!!
 ** If no passphrase cb is installed, status handler is not run even if
    password is required by crypto engine. !!
+** Verify must not fail on NODATA premature if auto-key-retrieval failed.
+   It should not fail silently if it knows there is an error. !!!
+** All operations: Better error reporting. !!
 ** Export status handler need much more work. !!!
 ** Import should return a useful error when one happened.
 *** Import does not take notice of NODATA status report.
-*** When GPGSM does issue IMPORT_OK status reports, make sure to check for them
-    in tests/gpgs m/t-import.c.
+*** When GPGSM does issue IMPORT_OK status reports, make sure to check for
+    them in tests/gpgs m/t-import.c.
 ** Verify can include info about version/algo/class, but currently
    this is only available for gpg, not gpgsm.
 ** Return ENC_TO output in verify result.  Again, this is not available