stoddard    00/02/21 08:41:42

  Modified:    src/include ap_iol.h
               src/lib/apr aprlib.def
               src/lib/apr/file_io/beos readwrite.c
               src/lib/apr/file_io/os2 fileio.h readwrite.c
               src/lib/apr/file_io/unix fileio.h readwrite.c
               src/lib/apr/file_io/win32 fileio.h readwrite.c
               src/lib/apr/include apr_file_io.h
               src/main buff.c iol_file.c
               src/modules/standard mod_rewrite.c
  Log:
  Make file I/O and network I/O writev/sendv APIs consistent.
  Eliminate use of ap_iovec_t and use Posix struct iovec. I never
  did hear a case (much less a strong case) supporting the need
  for ap_iovec_t, so out it goes.
  
  Revision  Changes    Path
  1.11      +1 -1      apache-2.0/src/include/ap_iol.h
  
  Index: ap_iol.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/include/ap_iol.h,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ap_iol.h  2000/02/18 18:05:15     1.10
  +++ ap_iol.h  2000/02/21 16:41:38     1.11
  @@ -106,7 +106,7 @@
       ap_status_t (*close)(ap_iol *fd);
       ap_status_t (*write)(ap_iol *fd, const char *buf, ap_size_t len,
                            ap_ssize_t *nbytes);
  -    ap_status_t (*writev)(ap_iol *fd, const ap_iovec_t *vec, int nvec,
  +    ap_status_t (*writev)(ap_iol *fd, const struct iovec *vec, int nvec,
                             ap_ssize_t *nbytes);
       ap_status_t (*read)(ap_iol *fd, char *buf, ap_size_t len,
                           ap_ssize_t *nbytes);
  
  
  
  1.11      +1 -1      apache-2.0/src/lib/apr/aprlib.def
  
  Index: aprlib.def
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/aprlib.def,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- aprlib.def        2000/02/18 18:05:16     1.10
  +++ aprlib.def        2000/02/21 16:41:39     1.11
  @@ -20,7 +20,7 @@
   ;    ap_get_filesize   @12
   ;    ap_get_fileatime   @13
   ;    ap_get_filectime   @14
  -     ap_make_iov   @15
  +;    ap_make_iov   @15
        ap_dupfile   @16
        ap_getfileinfo   @17
        ap_open   @18
  
  
  
  1.7       +3 -15     apache-2.0/src/lib/apr/file_io/beos/readwrite.c
  
  Index: readwrite.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/beos/readwrite.c,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- readwrite.c       2000/02/05 12:05:06     1.6
  +++ readwrite.c       2000/02/21 16:41:39     1.7
  @@ -127,7 +127,7 @@
   }
   
   /* ***APRDOC********************************************************
  - * ap_status_t ap_writev(ap_file_t *, ap_iovec_t *, ap_ssize_t *)
  + * ap_status_t ap_writev(ap_file_t *, iovec *, ap_ssize_t *)
    *    Write data from ap_iovec array to the specified file.
    * arg 1) The file descriptor to write to.
    * arg 2) The array from which to get the data to write to the file.
  @@ -138,22 +138,10 @@
    *        written on function exit. 
    */
   #ifdef HAVE_WRITEV
  -
  -ap_status_t ap_make_iov(struct iovec_t **new, struct iovec *iova, 
ap_context_t *cntxt)
  +ap_status_t ap_writev(struct file_t *thefile, const struct iovec *vec, 
ap_ssize_t *iocnt)
   {
  -    (*new) = ap_palloc(cntxt, sizeof(struct iovec_t));
  -    if ((*new) == NULL) {
  -        return APR_ENOMEM;
  -    }
  -    (*new)->cntxt = cntxt;
  -    (*new)->theiov = iova;
  -    return APR_SUCCESS;
  -}
  -
  -ap_status_t ap_writev(struct file_t *thefile, const struct iovec_t *vec, 
ap_ssize_t *iocnt)
  -{
       int bytes;
  -    if ((bytes = writev(thefile->filedes, vec->theiov, *iocnt)) < 0) {
  +    if ((bytes = writev(thefile->filedes, vec, *iocnt)) < 0) {
           *iocnt = bytes;
           return errno;
       }
  
  
  
  1.8       +0 -5      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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- fileio.h  2000/01/10 15:35:45     1.7
  +++ fileio.h  2000/02/21 16:41:39     1.8
  @@ -91,11 +91,6 @@
       int validentry;
   };
   
  -struct iovec_t {
  -    ap_context_t *cntxt;
  -    struct iovec *theiov;
  -};
  -
   ap_status_t file_cleanup(void *);
   ap_status_t ap_os2_time_to_ap_time(ap_time_t *result, FDATE os2date, FTIME 
os2time);
   int os2errno( ULONG oserror );
  
  
  
  1.12      +2 -15     apache-2.0/src/lib/apr/file_io/os2/readwrite.c
  
  Index: readwrite.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/os2/readwrite.c,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- readwrite.c       2000/01/10 15:35:45     1.11
  +++ readwrite.c       2000/02/21 16:41:39     1.12
  @@ -183,23 +183,10 @@
   
   #ifdef HAVE_WRITEV
   
  -ap_status_t ap_make_iov(struct iovec_t **new, struct iovec *iova, 
ap_context_t *cntxt)
  +ap_status_t ap_writev(struct file_t *thefile, const struct iovec *vec, 
ap_ssize_t *iocnt)
   {
  -    (*new) = ap_palloc(cntxt, sizeof(struct iovec_t));
  -    if ((*new) == NULL) {
  -        return APR_ENOMEM;
  -    }
  -    (*new)->cntxt = cntxt;
  -    (*new)->theiov = iova;
  -    return APR_SUCCESS;
  -}
  -
  -
  -
  -ap_status_t ap_writev(struct file_t *thefile, const struct iovec_t *vec, 
ap_ssize_t *iocnt)
  -{
       int bytes;
  -    if ((bytes = writev(thefile->filedes, vec->theiov, *iocnt)) < 0) {
  +    if ((bytes = writev(thefile->filedes, vec, *iocnt)) < 0) {
           *iocnt = bytes;
           return errno;
       }
  
  
  
  1.8       +0 -5      apache-2.0/src/lib/apr/file_io/unix/fileio.h
  
  Index: fileio.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/unix/fileio.h,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- fileio.h  2000/01/06 14:43:07     1.7
  +++ fileio.h  2000/02/21 16:41:40     1.8
  @@ -120,11 +120,6 @@
       struct dirent *entry;
   };
   
  -struct iovec_t {
  -    ap_context_t *cntxt;
  -    struct iovec *theiov;
  -};
  -
   ap_status_t file_cleanup(void *);
   mode_t get_fileperms(ap_fileperms_t);
   
  
  
  
  1.21      +5 -17     apache-2.0/src/lib/apr/file_io/unix/readwrite.c
  
  Index: readwrite.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/unix/readwrite.c,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- readwrite.c       2000/02/19 00:58:46     1.20
  +++ readwrite.c       2000/02/21 16:41:40     1.21
  @@ -201,34 +201,22 @@
   }
   
   /* ***APRDOC********************************************************
  - * ap_status_t ap_writev(ap_file_t *, ap_iovec_t *, ap_ssize_t *)
  - *    Write data from ap_iovec array to the specified file.
  + * ap_status_t ap_writev(ap_file_t *, struct iovec *, ap_ssize_t *)
  + *    Write data from iovec array to the specified file.
    * arg 1) The file descriptor to write to.
    * arg 2) The array from which to get the data to write to the file.
  - * arg 3) The number of elements in the ap_iovec array.  This must be
  + * arg 3) The number of elements in the struct iovec array.  This must be
    *        smaller than AP_MAX_IOVEC_SIZE.  If it isn't, the function will
    *        fail with APR_EINVAL.
    * NOTE:  The third arguement is updated with the number of bytes actually 
    *        written on function exit. 
    */
   #ifdef HAVE_WRITEV
  -
  -ap_status_t ap_make_iov(struct iovec_t **new, const struct iovec *iova, 
ap_context_t *cntxt)
  -{
  -    (*new) = ap_palloc(cntxt, sizeof(struct iovec_t));
  -    if ((*new) == NULL) {
  -        return APR_ENOMEM;
  -    }
  -    (*new)->cntxt = cntxt;
  -    (*new)->theiov = iova;
  -    return APR_SUCCESS;
  -}
  -
  -ap_status_t ap_writev(struct file_t *thefile, const ap_iovec_t *vec,
  +ap_status_t ap_writev(struct file_t *thefile, const struct iovec *vec,
                         ap_size_t nvec, ap_ssize_t *nbytes)
   {
       int bytes;
  -    if ((bytes = writev(thefile->filedes, vec->theiov, nvec)) < 0) {
  +    if ((bytes = writev(thefile->filedes, vec, nvec)) < 0) {
           *nbytes = 0;
           return errno;
       }
  
  
  
  1.7       +0 -5      apache-2.0/src/lib/apr/file_io/win32/fileio.h
  
  Index: fileio.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/win32/fileio.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- fileio.h  2000/02/18 02:53:11     1.6
  +++ fileio.h  2000/02/21 16:41:40     1.7
  @@ -120,11 +120,6 @@
       WIN32_FIND_DATA *entry;
   };
   
  -struct iovec_t {
  -    ap_context_t *cntxt;
  -    struct iovec *theiov;
  -};
  -
   ap_status_t file_cleanup(void *);
   /*mode_t get_fileperms(ap_fileperms_t);
   */
  
  
  
  1.13      +2 -14     apache-2.0/src/lib/apr/file_io/win32/readwrite.c
  
  Index: readwrite.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/win32/readwrite.c,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- readwrite.c       2000/02/18 18:05:17     1.12
  +++ readwrite.c       2000/02/21 16:41:40     1.13
  @@ -63,17 +63,6 @@
   
   #define GetFilePointer(hfile) SetFilePointer(hfile,0,NULL, FILE_CURRENT)
   
  -ap_status_t ap_make_iov(struct iovec_t **new, const struct iovec *iova, 
ap_context_t *cntxt)
  -{
  -    (*new) = ap_palloc(cntxt, sizeof(struct iovec_t));
  -    if ((*new) == NULL) {
  -        return APR_ENOMEM;
  -    }
  -    (*new)->cntxt = cntxt;
  -    (*new)->theiov = iova;
  -    return APR_SUCCESS;
  -}
  -
   ap_status_t ap_read(struct file_t *thefile, void *buf, ap_ssize_t *nbytes)
   {
       DWORD bread;
  @@ -128,17 +117,16 @@
   /*
    * Too bad WriteFileGather() is not supported on 95&98 (or NT prior to SP2) 
    */
  -ap_status_t ap_writev(struct file_t *thefile, const ap_iovec_t *vec, 
ap_size_t nvec, 
  +ap_status_t ap_writev(struct file_t *thefile, const struct iovec *vec, 
ap_size_t nvec, 
                         ap_ssize_t *nbytes)
   {
       int i;
       DWORD bwrote = 0;
  -    struct iovec *iov = vec->theiov;
   
       *nbytes = 0;
       for (i = 0; i < nvec; i++) {
           if (!WriteFile(thefile->filehand,
  -                       iov[i].iov_base, iov[i].iov_len, &bwrote, NULL)) {
  +                       vec[i].iov_base, vec[i].iov_len, &bwrote, NULL)) {
               return GetLastError();
           }
           *nbytes += bwrote;
  
  
  
  1.31      +1 -3      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.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- apr_file_io.h     2000/02/18 18:05:18     1.30
  +++ apr_file_io.h     2000/02/21 16:41:41     1.31
  @@ -108,7 +108,6 @@
   typedef struct file_t            ap_file_t;
   typedef struct ap_finfo_t        ap_finfo_t;
   typedef struct dir_t             ap_dir_t;
  -typedef struct iovec_t           ap_iovec_t;
   typedef ap_int32_t               ap_fileperms_t;
   typedef uid_t                    ap_uid_t;
   typedef gid_t                    ap_gid_t;
  @@ -136,7 +135,7 @@
   
   ap_status_t ap_read(ap_file_t *, void *, ap_ssize_t *);
   ap_status_t ap_write(ap_file_t *, void *, ap_ssize_t *);
  -ap_status_t ap_writev(ap_file_t *, const ap_iovec_t *vec, ap_size_t nvec, 
ap_ssize_t *nbytes);
  +ap_status_t ap_writev(ap_file_t *, const struct iovec *vec, ap_size_t nvec, 
ap_ssize_t *nbytes);
   ap_status_t ap_putc(char, ap_file_t *);
   ap_status_t ap_getc(char *, ap_file_t *);
   ap_status_t ap_ungetc(char, ap_file_t *);
  @@ -146,7 +145,6 @@
   API_EXPORT(int) ap_fprintf(ap_file_t *fptr, const char *format, ...)
           __attribute__((format(printf,2,3)));
   
  -ap_status_t ap_make_iov(ap_iovec_t **, const struct iovec *, ap_context_t *);
   ap_status_t ap_dupfile(ap_file_t **, ap_file_t *);
   ap_status_t ap_getfileinfo(ap_finfo_t *finfo, ap_file_t *thefile);
   ap_status_t ap_stat(ap_finfo_t *finfo, const char *fname, ap_context_t 
*cont);
  
  
  
  1.31      +1 -3      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.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- buff.c    2000/02/18 18:05:19     1.30
  +++ buff.c    2000/02/21 16:41:41     1.31
  @@ -555,9 +555,7 @@
                                         int nvec, ap_ssize_t *bytes_written)
   {
       ap_status_t rv;
  -    ap_iovec_t *iov;
  -    ap_make_iov(&iov, vec, fb->pool);
  -    rv = iol_writev(fb->iol, iov, nvec, bytes_written);
  +    rv = iol_writev(fb->iol, vec, nvec, bytes_written);
       if (rv != APR_SUCCESS) {
        fb->saved_errno = rv;
        if (rv != APR_EAGAIN) {
  
  
  
  1.9       +1 -1      apache-2.0/src/main/iol_file.c
  
  Index: iol_file.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/main/iol_file.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- iol_file.c        2000/02/18 02:53:12     1.8
  +++ iol_file.c        2000/02/21 16:41:41     1.9
  @@ -86,7 +86,7 @@
   method(ap_write, (ap_iol *viol, const char *arg1, ap_size_t arg2, ap_ssize_t 
*nbytes))
   method(ap_read, (ap_iol *viol, char *arg1, ap_size_t arg2, ap_ssize_t 
*nbytes))
   
  -static ap_status_t file_ap_writev(ap_iol *viol, const ap_iovec_t *vec, 
ap_size_t nvec, 
  +static ap_status_t file_ap_writev(ap_iol *viol, const struct iovec *vec, 
ap_size_t nvec, 
                                     ap_ssize_t *nbytes) 
   {
       ap_status_t rv;
  
  
  
  1.14      +1 -3      apache-2.0/src/modules/standard/mod_rewrite.c
  
  Index: mod_rewrite.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/modules/standard/mod_rewrite.c,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- mod_rewrite.c     2000/02/18 02:53:12     1.13
  +++ mod_rewrite.c     2000/02/21 16:41:41     1.14
  @@ -2963,7 +2963,6 @@
       ap_size_t nbytes;
   
   #ifndef NO_WRITEV
  -    ap_iovec_t *iov;
       struct iovec iova[2];
       ap_size_t niov;
   #endif
  @@ -2990,9 +2989,8 @@
       iova[1].iov_base = "\n";
       iova[1].iov_len = 1;
   
  -    ap_make_iov(&iov, iova, r->pool);
       niov = 2;
  -    ap_writev(fpin, iov, niov, &nbytes);
  +    ap_writev(fpin, iova, niov, &nbytes);
   #endif
   
       /* read in the response value */
  
  
  

Reply via email to