You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by bj...@hyperreal.org on 2000/01/10 15:21:55 UTC
cvs commit: apache-2.0/src/lib/apr/file_io/os2 filedup.c fileio.h open.c pipe.c
bjh 00/01/10 06:21:54
Modified: src/lib/apr/file_io/os2 filedup.c fileio.h open.c pipe.c
Log:
OS/2: Implement delete on close & fix an allocation error in ap_open_stderr.
Revision Changes Path
1.5 +1 -0 apache-2.0/src/lib/apr/file_io/os2/filedup.c
Index: filedup.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/os2/filedup.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- filedup.c 1999/12/19 08:00:28 1.4
+++ filedup.c 2000/01/10 14:21:53 1.5
@@ -89,6 +89,7 @@
dup_file->buffered = old_file->buffered;
dup_file->status = old_file->status;
dup_file->isopen = old_file->isopen;
+ dup_file->flags = old_file->flags;
if (*new_file == NULL) {
ap_register_cleanup(dup_file->cntxt, dup_file, file_cleanup,
1.6 +1 -0 apache-2.0/src/lib/apr/file_io/os2/fileio.h
Index: fileio.h
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/os2/fileio.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- fileio.h 1999/12/19 09:41:26 1.5
+++ fileio.h 2000/01/10 14:21:53 1.6
@@ -75,6 +75,7 @@
FILESTATUS3 status;
int validstatus;
int eof_hit;
+ ap_int32_t flags;
/* Stuff for buffered mode */
char *buffer;
1.13 +12 -4 apache-2.0/src/lib/apr/file_io/os2/open.c
Index: open.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/os2/open.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- open.c 1999/12/19 08:05:07 1.12
+++ open.c 2000/01/10 14:21:53 1.13
@@ -84,6 +84,7 @@
dafile->validstatus = FALSE;
dafile->eof_hit = FALSE;
dafile->buffer = NULL;
+ dafile->flags = flag;
if ((flag & APR_READ) && (flag & APR_WRITE)) {
mflags |= OPEN_ACCESS_READWRITE;
@@ -148,7 +149,8 @@
ap_status_t ap_close(ap_file_t *file)
{
- ULONG rc;
+ ULONG rc;
+ ap_status_t status;
if (file && file->isopen) {
ap_flush(file);
@@ -156,12 +158,16 @@
if (rc == 0) {
file->isopen = FALSE;
- return APR_SUCCESS;
+ status = APR_SUCCESS;
+
+ if (file->flags & APR_DELONCLOSE) {
+ status = os2errno(DosDelete(file->fname));
+ }
} else {
return os2errno(rc);
}
}
-
+
return APR_SUCCESS;
}
@@ -199,6 +205,7 @@
(*file)->buffered = FALSE;
(*file)->validstatus = FALSE;
(*file)->eof_hit = FALSE;
+ (*file)->flags = 0;
return APR_SUCCESS;
}
@@ -216,7 +223,7 @@
ap_status_t ap_open_stderr(struct file_t **thefile, ap_context_t *cont)
{
- (*thefile) = ap_palloc(cont, sizeof(ap_file_t *));
+ (*thefile) = ap_palloc(cont, sizeof(struct file_t));
if ((*thefile) == NULL) {
return APR_ENOMEM;
}
@@ -227,6 +234,7 @@
(*thefile)->buffered = FALSE;
(*thefile)->validstatus = FALSE;
(*thefile)->eof_hit = FALSE;
+ (*thefile)->flags = 0;
return APR_SUCCESS;
}
1.6 +2 -0 apache-2.0/src/lib/apr/file_io/os2/pipe.c
Index: pipe.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/os2/pipe.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- pipe.c 1999/10/19 15:24:19 1.5
+++ pipe.c 2000/01/10 14:21:54 1.6
@@ -76,6 +76,7 @@
(*in)->fname = ap_pstrdup(cont, "PIPE");
(*in)->isopen = TRUE;
(*in)->buffered = FALSE;
+ (*in)->flags = 0;
ap_register_cleanup(cont, *in, file_cleanup, ap_null_cleanup);
(*out) = (struct file_t *)ap_palloc(cont, sizeof(struct file_t));
@@ -84,6 +85,7 @@
(*out)->fname = ap_pstrdup(cont, "PIPE");
(*out)->isopen = TRUE;
(*out)->buffered = FALSE;
+ (*out)->flags = 0;
ap_register_cleanup(cont, *out, file_cleanup, ap_null_cleanup);
return APR_SUCCESS;