ben 96/05/08 08:28:22
Modified: src buff.c buff.h
Log:
Buffered file descriptors were not registered for cleanup. This caused an
extremely obscure problem with CGI's that disconnect early. Fixed.
Revision Changes Path
1.3 +4 -0 apache/src/buff.c
Index: buff.c
===================================================================
RCS file: /export/home/cvs/apache/src/buff.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C3 -r1.2 -r1.3
*** buff.c 1996/03/01 02:34:32 1.2
--- buff.c 1996/05/08 15:28:19 1.3
***************
*** 105,110 ****
--- 105,111 ----
BUFF *fb;
fb = palloc(p, sizeof(BUFF));
+ fb->pool=p;
fb->bufsiz = DEFAULT_BUFSIZE;
fb->flags = flags & B_RDWR;
***************
*** 135,140 ****
--- 136,144 ----
{
fb->fd = fd_out;
fb->fd_in = fd_in;
+ note_cleanups_for_fd(fb->pool,fb->fd);
+ if(fb->fd != fb->fd_in)
+ note_cleanups_for_fd(fb->pool,fb->fd_in);
}
int
1.3 +3 -0 apache/src/buff.h
Index: buff.h
===================================================================
RCS file: /export/home/cvs/apache/src/buff.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C3 -r1.2 -r1.3
*** buff.h 1996/03/01 02:34:32 1.2
--- buff.h 1996/05/08 15:28:20 1.3
***************
*** 80,85 ****
--- 80,88 ----
void (*error)(BUFF *fb, int op, void *data);
void *error_data;
long int bytes_sent; /* number of bytes actually written */
+
+ pool *pool;
+
/* could also put pointers to the basic I/O routines here */
int fd; /* the file descriptor */
int fd_in; /* input file descriptor, if different */