cvs commit: apache-2.0/src/lib/apr/file_io/win32 open.c

2000-02-16 Thread stoddard
stoddard00/02/15 19:32:50

  Modified:src/lib/apr/file_io/win32 open.c
  Log:
  APR is creating files by default whenever ap_open is called and the file
  does not exist (i.e., passing OPEN_ALWAYS by default to CreateFile). This
  causes .htaccess files to be created all over the place.
  Submitted by: Tim Costello [EMAIL PROTECTED]
  Reviewed by:  Bill Stoddard [EMAIL PROTECTED]
  
  Revision  ChangesPath
  1.19  +21 -2 apache-2.0/src/lib/apr/file_io/win32/open.c
  
  Index: open.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/win32/open.c,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- open.c2000/02/15 00:15:44 1.18
  +++ open.c2000/02/16 03:32:49 1.19
  @@ -80,6 +80,7 @@
   {
   DWORD oflags = 0;
   DWORD createflags = 0;
  +DWORD attributes = 0;
   
   (*dafile) = (struct file_t *)ap_palloc(cont, sizeof(struct file_t));
   
  @@ -106,12 +107,25 @@
   (*dafile)-demonfname = canonical_filename((*dafile)-cntxt, fname);
   (*dafile)-lowerdemonfname = strlwr((*dafile)-demonfname);
   
  -createflags = OPEN_ALWAYS; 
   if (flag  APR_CREATE) {
   if (flag  APR_EXCL) {
  +/* only create new if file does not already exist */
   createflags = CREATE_NEW;
  +} else if (flag  APR_TRUNCATE) {
  +/* truncate existing file or create new */
  +createflags = CREATE_ALWAYS;
  +} else {
  +/* open existing but create if necessary */
  +createflags = OPEN_ALWAYS;
   }
  +} else if (flag  APR_TRUNCATE) {
  +/* only truncate if file already exists */
  +createflags = TRUNCATE_EXISTING;
  +} else {
  +/* only open if file already exists */
  +createflags = OPEN_EXISTING;
   }
  +
   if ((flag  APR_EXCL)  !(flag  APR_CREATE)) {
   (*dafile)-filehand = INVALID_HANDLE_VALUE;
   return APR_EACCES;
  @@ -128,8 +142,13 @@
   createflags = TRUNCATE_EXISTING;
   }

  +attributes = FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN;
  +if (flag  APR_DELONCLOSE) {
  +attributes |= FILE_FLAG_DELETE_ON_CLOSE;
  +}
  +
   (*dafile)-filehand = CreateFile(fname, oflags, FILE_SHARE_READ | 
FILE_SHARE_WRITE | FILE_SHARE_DELETE,
  - NULL, createflags, 
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, 0);
  + NULL, createflags, attributes, 0);
   
   if ((*dafile)-filehand == INVALID_HANDLE_VALUE) {
   return GetLastError();
  
  
  


cvs commit: apache-2.0/src/lib/apr/file_io/win32 open.c

2000-02-01 Thread stoddard
stoddard00/01/31 16:13:37

  Modified:src/lib/apr/file_io/win32 open.c
  Log:
  Open files for sequential access. This is a file system cache optimization
  for when files are accessed sequentially (a common case with Apache). This
  does not prevent a file from being accessed randomly.
  
  Revision  ChangesPath
  1.16  +1 -1  apache-2.0/src/lib/apr/file_io/win32/open.c
  
  Index: open.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/win32/open.c,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- open.c1999/12/17 15:14:06 1.15
  +++ open.c2000/02/01 00:13:28 1.16
  @@ -131,7 +131,7 @@
   }

   (*dafile)-filehand = CreateFile(fname, oflags, FILE_SHARE_READ | 
FILE_SHARE_WRITE | FILE_SHARE_DELETE,
  - NULL, createflags, 
FILE_ATTRIBUTE_NORMAL, 0);
  + NULL, createflags, 
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, 0);
   
   if ((*dafile)-filehand == INVALID_HANDLE_VALUE) {
   theerror = GetLastError();
  
  
  


cvs commit: apache-2.0/src/lib/apr/file_io/win32 open.c

1999-12-17 Thread rbb
rbb 99/12/17 07:14:07

  Modified:src/lib/apr/file_io/win32 open.c
  Log:
  With this change, error loggin on Win32 works again.
  
  Revision  ChangesPath
  1.15  +0 -1  apache-2.0/src/lib/apr/file_io/win32/open.c
  
  Index: open.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/win32/open.c,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- open.c1999/12/15 18:06:32 1.14
  +++ open.c1999/12/17 15:14:06 1.15
  @@ -211,7 +211,6 @@
   (*thefile)-filehand = GetStdHandle(STD_ERROR_HANDLE);
   (*thefile)-cntxt = cont;
   (*thefile)-fname = NULL;
  -(*thefile)-filehand = NULL;
   (*thefile)-stated = 0;
   (*thefile)-buffered = 0;
   (*thefile)-eof_hit = 0;
  
  
  


cvs commit: apache-2.0/src/lib/apr/file_io/win32 open.c

1999-12-14 Thread rbb
rbb 99/12/14 10:25:51

  Modified:src/lib/apr/file_io/win32 open.c
  Log:
  Add support for ap_open_stderr
  
  Revision  ChangesPath
  1.13  +19 -0 apache-2.0/src/lib/apr/file_io/win32/open.c
  
  Index: open.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/win32/open.c,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- open.c1999/12/09 21:00:09 1.12
  +++ open.c1999/12/14 18:25:48 1.13
  @@ -199,3 +199,22 @@
   }
   APR_SUCCESS;
   }   
  +
  +ap_status_t ap_open_stderr(struct file_t **thefile, ap_context_t *cont)
  +{
  +(*thefile) = ap_pcalloc(cont, sizeof(ap_os_file_t *));
  +if ((*thefile) == NULL) {
  +return APR_ENOMEM;
  +}
  +
  +(*thefile)-filehand = GetStdHandle(STD_ERROR_HANDLE);
  +(*thefile)-cntxt = cont;
  +(*thefile)-fname = NULL;
  +(*thefile)-filehand = NULL;
  +(*thefile)-stated = 0;
  +(*thefile)-buffered = 0;
  +(*thefile)-eof_hit = 0;
  +
  +return APR_SUCCESS;
  +}
  +
  
  
  


cvs commit: apache-2.0/src/lib/apr/file_io/win32 open.c

1999-11-03 Thread stoddard
stoddard99/11/03 14:01:48

  Modified:src/lib/apr/file_io/win32 open.c
  Log:
  Win32 APR: Handle open for append correctly.
  
  Revision  ChangesPath
  1.10  +4 -0  apache-2.0/src/lib/apr/file_io/win32/open.c
  
  Index: open.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/win32/open.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- open.c1999/10/21 00:31:09 1.9
  +++ open.c1999/11/03 22:01:46 1.10
  @@ -136,6 +136,10 @@
   theerror = GetLastError();
   return APR_EEXIST;
   }
  +if (flag  APR_APPEND) {
  +SetFilePointer((*dafile)-filehand, 0, NULL, FILE_END);
  +}
  +
   (*dafile)-stated = 0;  /* we haven't called stat for this file yet. */
   (*dafile)-eof_hit = 0;
   ap_register_cleanup((*dafile)-cntxt, (void *)(*dafile), file_cleanup,
  
  
  


cvs commit: apache-2.0/src/lib/apr/file_io/win32 open.c

1999-10-13 Thread stoddard
stoddard99/10/12 18:38:13

  Modified:src/lib/apr/file_io/win32 open.c
  Log:
  Register a clean-up on each file open  make sure all the file_t fields are 
initialized
  
  Revision  ChangesPath
  1.5   +7 -2  apache-2.0/src/lib/apr/file_io/win32/open.c
  
  Index: open.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/win32/open.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- open.c1999/10/06 23:03:54 1.4
  +++ open.c1999/10/13 01:38:13 1.5
  @@ -101,6 +101,8 @@
   }
   
   if (flag  APR_BUFFERED) {
  +(*dafile)-buffered = TRUE;
  +} else {
   (*dafile)-buffered = FALSE;
   }
   (*dafile)-fname = strdup(fname);
  @@ -137,7 +139,10 @@
   theerror = GetLastError();
   return APR_EEXIST;
   }
  +(*dafile)-stated = 0;  /* we haven't called stat for this file yet. */
   (*dafile)-eof_hit = 0;
  +ap_register_cleanup((*dafile)-cntxt, (void *)(*dafile), file_cleanup,
  +ap_null_cleanup);
   return APR_SUCCESS;
   }
   
  @@ -156,10 +161,10 @@
   char *temp = canonical_filename(cont, path);
   
   if (DeleteFile(temp)) {
  - return APR_SUCCESS;
  +return APR_SUCCESS;
   }
   else {
  - return APR_EEXIST;
  +return APR_EEXIST;
   }
   }
   
  
  
  


cvs commit: apache-2.0/src/lib/apr/file_io/win32 open.c dir.c fileacc.c

1999-10-05 Thread stoddard
stoddard99/10/04 18:11:51

  Modified:src/lib/apr/file_io/win32 open.c dir.c fileacc.c
  Log:
  More argument swaps...
  
  Revision  ChangesPath
  1.3   +4 -4  apache-2.0/src/lib/apr/file_io/win32/open.c
  
  Index: open.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/win32/open.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- open.c1999/09/22 17:53:18 1.2
  +++ open.c1999/10/05 01:11:48 1.3
  @@ -77,8 +77,8 @@
   }
   }
   
  -ap_status_t ap_open(ap_context_t *cont, const char *fname, ap_int32_t flag, 
ap_fileperms_t perm,
  - struct file_t **dafile)
  +ap_status_t ap_open(struct file_t **dafile, ap_context_t *cont, const char 
*fname, 
  +ap_int32_t flag, ap_fileperms_t perm)
   {
   DWORD oflags = 0;
   DWORD createflags = 0;
  @@ -172,8 +172,8 @@
   return APR_SUCCESS;
   }
   
  -ap_status_t ap_put_os_file(ap_context_t *cont, struct file_t **file, 
  -ap_os_file_t *thefile)
  +ap_status_t ap_put_os_file(struct file_t **file, ap_os_file_t *thefile, 
  +   ap_context_t *cont)
   {
   if (cont == NULL) {
   return APR_ENOCONT;
  
  
  
  1.3   +2 -3  apache-2.0/src/lib/apr/file_io/win32/dir.c
  
  Index: dir.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/win32/dir.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- dir.c 1999/10/04 16:36:52 1.2
  +++ dir.c 1999/10/05 01:11:49 1.3
  @@ -137,7 +137,7 @@
return APR_SUCCESS;
}
   if ((stat = ap_closedir(thedir)) == APR_SUCCESS) {
  - if ((stat = ap_opendir(cont, temp, thedir)) == APR_SUCCESS) {
  + if ((stat = ap_opendir(thedir, cont, temp)) == APR_SUCCESS) {
ap_readdir(thedir);
return APR_SUCCESS;
}
  @@ -218,8 +218,7 @@
   return APR_SUCCESS;
   }
   
  -ap_status_t ap_put_os_dir(ap_context_t *cont, struct dir_t **dir,
  -ap_os_dir_t *thedir)
  +ap_status_t ap_put_os_dir(struct dir_t **dir, ap_os_dir_t *thedir, 
ap_context_t *cont)
   {
   if (cont == NULL) {
   return APR_ENOCONT;
  
  
  
  1.5   +1 -1  apache-2.0/src/lib/apr/file_io/win32/fileacc.c
  
  Index: fileacc.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/win32/fileacc.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- fileacc.c 1999/10/04 16:36:52 1.4
  +++ fileacc.c 1999/10/05 01:11:49 1.5
  @@ -183,7 +183,7 @@
   ap_status_t ap_get_filedata(struct file_t *file, char *key, void *data)
   {
   if (file != NULL) {
  -return ap_get_userdata(file-cntxt, key, data);
  +return ap_get_userdata(data, file-cntxt, key);
   }
   else {
   data = NULL;