# To-do list for the Lua/APR binding

## New features

- Make it possible to enable text mode for files, pipes and sockets on platforms where there is no distinction between text/binary mode (because `CR` + `LF` → `LF` translation can be useful on UNIX as well)
- Support for encrypted network communication. It appears that APR itself doesn’t support this but clearly it’s possible because there are dozens of projects that use APR and support encrypted network communication (the Apache HTTP server, ApacheBench, Tomcat, etc.)

## Known problems

- Find out why `apr.xlate()` doesn’t work on Windows (I can’t seem to get `apr_iconv` working on Windows)
- Investigate escaping problem in `apr_proc_create()` as found by the test for the `apr.namedpipe_create()` function (see `etc/tests.lua` around line 625)
- Why is the DBD `LD_PRELOAD` trick needed?! More information
- When the Lua interpreter exits because of an error just after calling `apr.thread_create()`, the process can crash with a segmentation fault. This depends a lot on timing and only happens once in about 50 tries on my machine. So far I've managed to reproduce the crash using a GDB session scripted with Expect.. The currently released code already includes a mutex to wait for all child threads to exit but this doesn’t always work — it seems that sometimes the mutex is destroyed (outside of the Lua/APR binding’s control) before the child thread is completely terminated (either that or a lot of stuff happens after calling `apr_thread_exit()`..)

## Anything else?

- Propose the libapreq2 binding for inclusion as the official Lua language binding of libapreq2? (first make the binding a lot more complete)
- Integrate the LDAP binding contributed by zhiguo zhao!