rbb 99/12/11 12:24:15
Modified: src/lib/apr/file_io/unix open.c src/lib/apr/include apr_file_io.h Log: Add a new function to APR. Basically, this opens an instance of the platform's stderr and puts it into a ap_file_t structure. I noticed that we are ap_put_os_file(STDERR_FILENO... a couple of places in the Apache code. This should make that much cleaner. I am not convinced it is portable, so it may disappear if it doesn't work, but I am hopeful. Revision Changes Path 1.26 +22 -0 apache-2.0/src/lib/apr/file_io/unix/open.c Index: open.c =================================================================== RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/unix/open.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- open.c 1999/12/03 15:18:23 1.25 +++ open.c 1999/12/11 20:24:13 1.26 @@ -298,3 +298,25 @@ return APR_SUCCESS; } + +/* ***APRDOC******************************************************** + * ap_status_t ap_open_stderr(ap_file_t **, ap_context_t *) + * open standard error as an apr file pointer. + * arg 1) The apr file to use as stderr. + * arg 2) The context to allocate the file out of. + */ +ap_status_t ap_open_stderr(struct file_t **thefile, ap_context_t *cont) +{ + (*thefile) = ap_palloc(cont, sizeof(ap_os_file_t *)); + if ((*thefile) == NULL) { + return APR_ENOMEM; + } + (*thefile)->filedes = STDERR_FILENO; + (*thefile)->cntxt = cont; + (*thefile)->filehand = NULL; + (*thefile)->stated = 0; + (*thefile)->buffered = 0; + (*thefile)->eof_hit = 0; + + return APR_SUCCESS; +} 1.22 +1 -0 apache-2.0/src/lib/apr/include/apr_file_io.h Index: apr_file_io.h =================================================================== RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_file_io.h,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- apr_file_io.h 1999/12/02 18:36:25 1.21 +++ apr_file_io.h 1999/12/11 20:24:14 1.22 @@ -114,6 +114,7 @@ ap_status_t ap_remove_file(char *, ap_context_t *); ap_status_t ap_eof(ap_file_t *); ap_status_t ap_ferror(ap_file_t *); +ap_status_t ap_open_stderr(ap_file_t **thefile, ap_context_t *cont); ap_status_t ap_read(ap_file_t *, void *, ap_ssize_t *); ap_status_t ap_write(ap_file_t *, void *, ap_ssize_t *);