manoj 99/10/26 15:42:51
Modified: src CHANGES
src/include buff.h
src/main buff.c
Log:
Error functions recorded with ap_bonerror now take a status code as an
argument, so errno isn't needed.
Revision Changes Path
1.14 +3 -1 apache-2.0/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/apache-2.0/src/CHANGES,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -u -r1.13 -r1.14
--- CHANGES 1999/10/26 22:25:00 1.13
+++ CHANGES 1999/10/26 22:42:33 1.14
@@ -1,7 +1,9 @@
Changes with Apache 2.0-dev
*) ap_bflush and ap_bclose now return ap_status_t error codes instead
- of returning -1 and setting errno. [Manoj Kasichainula]
+ of returning -1 and setting errno. And error functions recorded
+ with ap_bonerror now take a status code as an argument. [Manoj
+ Kasichainula]
*) mod_speling runs in 2.0-dev now: a bug in readdir_r handling and
interface adaption to APR functions did it. [Martin Kraemer]
1.5 +5 -4 apache-2.0/src/include/buff.h
Index: buff.h
===================================================================
RCS file: /home/cvs/apache-2.0/src/include/buff.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- buff.h 1999/10/22 22:08:11 1.4
+++ buff.h 1999/10/26 22:42:41 1.5
@@ -128,7 +128,7 @@
struct buff_struct {
int flags; /* flags */
- int saved_errno; /* saved errno */
+ ap_status_t saved_errno; /* saved errno */
unsigned char *inptr; /* pointer to next location to read */
int incnt; /* number of bytes left to read from
input buffer;
* always 0 if had a read error */
@@ -141,7 +141,7 @@
* keep track of the #remaining bytes in the
chunk
* here
*/
- void (*error) (BUFF *fb, int op, void *data);
+ void (*error) (BUFF *fb, int op, void *data, ap_status_t errnum);
void *error_data;
long int bytes_sent; /* number of bytes actually written */
@@ -177,8 +177,9 @@
#define ap_bgetflag(fb, flag) ((fb)->flags & (flag))
/* Error handling */
-API_EXPORT(void) ap_bonerror(BUFF *fb, void (*error) (BUFF *, int, void *),
- void *data);
+API_EXPORT(void) ap_bonerror(BUFF *fb,
+ void (*error) (BUFF *, int, void *,
ap_status_t),
+ void *data);
/* I/O */
API_EXPORT(int) ap_bread(BUFF *fb, void *buf, int nbyte);
1.18 +4 -5 apache-2.0/src/main/buff.c
Index: buff.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/main/buff.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -u -r1.17 -r1.18
--- buff.c 1999/10/26 22:25:01 1.17
+++ buff.c 1999/10/26 22:42:46 1.18
@@ -136,11 +136,9 @@
static void doerror(BUFF *fb, int direction)
{
- /* TODO: doerror should look at fb->saved_errno instead of errno */
- errno = fb->saved_errno;
fb->flags |= (direction == B_RD ? B_RDERR : B_WRERR);
if (fb->error != NULL)
- (*fb->error) (fb, direction, fb->error_data);
+ (*fb->error) (fb, direction, fb->error_data, fb->saved_errno);
}
/* Buffering routines */
@@ -901,8 +899,9 @@
return k;
}
-API_EXPORT(void) ap_bonerror(BUFF *fb, void (*error) (BUFF *, int, void *),
- void *data)
+API_EXPORT(void) ap_bonerror(BUFF *fb,
+ void (*error) (BUFF *, int, void *,
ap_status_t),
+ void *data)
{
fb->error = error;
fb->error_data = data;