Global apr_dso_load (apr_dso_handle_t **res_handle, const char *path, apr_pool_t *ctx)
We aught to provide an alternative to RTLD_GLOBAL, which is the only supported method of loading DSOs today.
Global apr_file_pipe_create (apr_file_t **in, apr_file_t **out, apr_pool_t *pool)
Some platforms cannot toggle between blocking and nonblocking, and when passing a pipe as a standard handle to an application which does not expect it, a non-blocking stream will fluxor the client app.
in APR 0.9 and 1.x, this flag's behavior is undefined if the rootpath is NULL or empty. In APR 2.0 this should be changed to imply NOTABSOLUTE if the rootpath is NULL or empty.
Global apr_poll (apr_pollfd_t *aprset, apr_int32_t numsock, apr_int32_t *nsds, apr_interval_time_t timeout)
With versions 1.4.2 and prior on Windows, a call with no descriptors and timeout will return immediately with the wrong error code.
Global apr_pollcb_poll (apr_pollcb_t *pollcb, apr_interval_time_t timeout, apr_pollcb_cb_t func, void *baton)
With versions 1.4.2 and prior on Windows, a call with no descriptors and timeout will return immediately with the wrong error code.
With versions 1.4.2 and prior on Windows, a call with no descriptors and timeout will return immediately with the wrong error code.
Global apr_proc_other_child_register (apr_proc_t *proc, void(*maintenance)(int reason, void *, int status), void *data, apr_file_t *write_fd, apr_pool_t *p)
write_fd duplicates the proc->out stream, it's really redundant and should be replaced in the APR 1.0 API with a bitflag of which proc->in/out/err handles should be health checked.
This should either always or never be present in release builds - since it breaks binary compatibility. We may enable it always in APR 1.0 yet leave it undefined in most cases.
Passing proc as a *proc rather than **proc was an odd choice for some platforms... this should be revisited in 1.0
Global apr_procattr_child_err_set (struct apr_procattr_t *attr, apr_file_t *child_err, apr_file_t *parent_err)
Note that calling this function with two NULL files on some platforms creates an APR_FULL_BLOCK pipe, but this behavior is neither portable nor is it supported.
Global apr_procattr_child_in_set (struct apr_procattr_t *attr, apr_file_t *child_in, apr_file_t *parent_in)
Note that calling this function with two NULL files on some platforms creates an APR_FULL_BLOCK pipe, but this behavior is neither portable nor is it supported.
Global apr_procattr_child_out_set (struct apr_procattr_t *attr, apr_file_t *child_out, apr_file_t *parent_out)
Note that calling this function with two NULL files on some platforms creates an APR_FULL_BLOCK pipe, but this behavior is neither portable nor is it supported.
Global apr_strtoff (apr_off_t *offset, const char *buf, char **end, int base)
*end breaks type safety; where *buf is const, *end needs to be declared as const in APR 2.0