We started off with a synchronous library which basically supports sox = tlspool_starttls (sox) forms. Later, we added an Asynchronous API for use in async and event-driven code. We now have two code bases with somewhat overlapping activities. We might consider rewriting the Synchronous API in terms of the Asynchronous API to simplify the code base and reduce library sizes. At least the master thread can be rewritten easily with select() and tlspool_async_process(), and the registry can be recoded with the UThash primitive included in the Asynchronous API. Note differences in API safety properties though.
We started off with a synchronous library which basically supports
sox = tlspool_starttls (sox)
forms. Later, we added an Asynchronous API for use in async and event-driven code. We now have two code bases with somewhat overlapping activities. We might consider rewriting the Synchronous API in terms of the Asynchronous API to simplify the code base and reduce library sizes. At least the master thread can be rewritten easily withselect()
andtlspool_async_process()
, and the registry can be recoded with theUThash
primitive included in the Asynchronous API. Note differences in API safety properties though.Relates to issues #57 , #99 and #95 .