You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by mt...@apache.org on 2021/11/19 18:09:55 UTC

svn commit: r1895181 - in /apr/apr/trunk: file_io/win32/pipe.c file_io/win32/readwrite.c include/arch/win32/apr_arch_file_io.h

Author: mturk
Date: Fri Nov 19 18:09:55 2021
New Revision: 1895181

URL: http://svn.apache.org/viewvc?rev=1895181&view=rev
Log:
Use enum instead multiple booleans

Modified:
    apr/apr/trunk/file_io/win32/pipe.c
    apr/apr/trunk/file_io/win32/readwrite.c
    apr/apr/trunk/include/arch/win32/apr_arch_file_io.h

Modified: apr/apr/trunk/file_io/win32/pipe.c
URL: http://svn.apache.org/viewvc/apr/apr/trunk/file_io/win32/pipe.c?rev=1895181&r1=1895180&r2=1895181&view=diff
==============================================================================
--- apr/apr/trunk/file_io/win32/pipe.c (original)
+++ apr/apr/trunk/file_io/win32/pipe.c Fri Nov 19 18:09:55 2021
@@ -43,7 +43,7 @@ APR_DECLARE(apr_status_t) apr_file_pipe_
         thepipe->timeout = timeout;
         return APR_SUCCESS;
     }
-    if (!thepipe->pipe) {
+    if (thepipe->ftype != APR_FILETYPE_PIPE) {
         return APR_ENOTIMPL;
     }
     if (timeout && !(thepipe->pOverlapped)) {
@@ -92,7 +92,7 @@ static apr_status_t file_pipe_create(apr
     (*in) = (apr_file_t *)apr_pcalloc(pool_in, sizeof(apr_file_t));
     (*in)->pool = pool_in;
     (*in)->fname = NULL;
-    (*in)->pipe = 1;
+    (*in)->ftype = APR_FILETYPE_PIPE;
     (*in)->timeout = -1;
     (*in)->ungetchar = -1;
     (*in)->eof_hit = 0;
@@ -107,7 +107,7 @@ static apr_status_t file_pipe_create(apr
     (*out) = (apr_file_t *)apr_pcalloc(pool_out, sizeof(apr_file_t));
     (*out)->pool = pool_out;
     (*out)->fname = NULL;
-    (*out)->pipe = 1;
+    (*out)->ftype = APR_FILETYPE_PIPE;
     (*out)->timeout = -1;
     (*out)->ungetchar = -1;
     (*out)->eof_hit = 0;
@@ -264,7 +264,7 @@ APR_DECLARE(apr_status_t) apr_os_pipe_pu
 {
     (*file) = apr_pcalloc(pool, sizeof(apr_file_t));
     (*file)->pool = pool;
-    (*file)->pipe = 1;
+    (*file)->ftype = APR_FILETYPE_PIPE;
     (*file)->timeout = -1;
     (*file)->ungetchar = -1;
     (*file)->filehand = *thefile;
@@ -446,7 +446,7 @@ apr_status_t apr_file_socket_pipe_create
     (*in) = (apr_file_t *)apr_pcalloc(p, sizeof(apr_file_t));
     (*in)->pool = p;
     (*in)->fname = NULL;
-    (*in)->socket = 1;
+    (*in)->ftype = APR_FILETYPE_SOCKET;
     (*in)->timeout = 0; /* read end of the pipe is non-blocking */
     (*in)->ungetchar = -1;
     (*in)->eof_hit = 0;
@@ -460,7 +460,7 @@ apr_status_t apr_file_socket_pipe_create
     (*out) = (apr_file_t *)apr_pcalloc(p, sizeof(apr_file_t));
     (*out)->pool = p;
     (*out)->fname = NULL;
-    (*out)->socket = 1;
+    (*out)->ftype = APR_FILETYPE_SOCKET;
     (*out)->timeout = -1;
     (*out)->ungetchar = -1;
     (*out)->eof_hit = 0;
@@ -482,7 +482,7 @@ apr_status_t apr_file_socket_pipe_create
 apr_status_t apr_file_socket_pipe_close(apr_file_t *file)
 {
     apr_status_t stat;
-    if (!file->socket)
+    if (file->ftype != APR_FILETYPE_SOCKET)
         return apr_file_close(file);
     if ((stat = socket_pipe_cleanup(file)) == APR_SUCCESS) {
         apr_pool_cleanup_kill(file->pool, file, socket_pipe_cleanup);

Modified: apr/apr/trunk/file_io/win32/readwrite.c
URL: http://svn.apache.org/viewvc/apr/apr/trunk/file_io/win32/readwrite.c?rev=1895181&r1=1895180&r2=1895181&view=diff
==============================================================================
--- apr/apr/trunk/file_io/win32/readwrite.c (original)
+++ apr/apr/trunk/file_io/win32/readwrite.c Fri Nov 19 18:09:55 2021
@@ -33,7 +33,6 @@
 static apr_status_t read_with_timeout(apr_file_t *file, void *buf, apr_size_t len_in, apr_size_t *nbytes)
 {
     apr_status_t rv;
-    int pipe_or_socket = (file->pipe || file->socket);
     DWORD len = (DWORD)len_in;
     DWORD bytesread = 0;
 
@@ -42,7 +41,7 @@ static apr_status_t read_with_timeout(ap
         /* Peek at the pipe. If there is no data available, return APR_EAGAIN.
          * If data is available, go ahead and read it.
          */
-        if (file->pipe) {
+        if (file->ftype == APR_FILETYPE_PIPE) {
             DWORD bytes;
             if (!PeekNamedPipe(file->filehand, NULL, 0, NULL, &bytes, NULL)) {
                 rv = apr_get_os_error();
@@ -70,12 +69,12 @@ static apr_status_t read_with_timeout(ap
         }
     }
 
-    if (file->pOverlapped && !pipe_or_socket) {
+    if (file->pOverlapped && file->ftype == APR_FILETYPE_FILE) {
         file->pOverlapped->Offset     = (DWORD)file->filePtr;
         file->pOverlapped->OffsetHigh = (DWORD)(file->filePtr >> 32);
     }
 
-    if (file->socket && !file->pOverlapped) {
+    if (file->ftype == APR_FILETYPE_SOCKET) {
         WSABUF wsaData;
         DWORD flags = 0;
 
@@ -428,7 +427,7 @@ APR_DECLARE(apr_status_t) apr_file_write
             apr_thread_mutex_unlock(thefile->mutex);
         }
     }
-    else if (thefile->socket && !thefile->pOverlapped) {
+    else if (thefile->ftype == APR_FILETYPE_SOCKET) {
         WSABUF wsaData;
         DWORD flags = 0;
 
@@ -445,9 +444,7 @@ APR_DECLARE(apr_status_t) apr_file_write
         *nbytes = bwrote;
     }
     else {
-        int pipe_or_socket = (thefile->pipe || thefile->socket);
-
-        if (pipe_or_socket) {
+        if (thefile->ftype != APR_FILETYPE_FILE) {
             rv = WriteFile(thefile->filehand, buf, (DWORD)*nbytes, &bwrote,
                            thefile->pOverlapped);
         }
@@ -581,7 +578,7 @@ APR_DECLARE(apr_status_t) apr_file_write
                 }
             }
         }
-        if (rv == APR_SUCCESS && thefile->pOverlapped && !pipe_or_socket) {
+        if (rv == APR_SUCCESS && thefile->pOverlapped && thefile->ftype == APR_FILETYPE_FILE) {
             thefile->filePtr += *nbytes;
         }
     }

Modified: apr/apr/trunk/include/arch/win32/apr_arch_file_io.h
URL: http://svn.apache.org/viewvc/apr/apr/trunk/include/arch/win32/apr_arch_file_io.h?rev=1895181&r1=1895180&r2=1895181&view=diff
==============================================================================
--- apr/apr/trunk/include/arch/win32/apr_arch_file_io.h (original)
+++ apr/apr/trunk/include/arch/win32/apr_arch_file_io.h Fri Nov 19 18:09:55 2021
@@ -159,10 +159,16 @@ apr_status_t more_finfo(apr_finfo_t *fin
 /* for apr_poll.c */
 #define filedes filehand
 
+typedef enum {
+    APR_FILETYPE_FILE   = 0,
+    APR_FILETYPE_PIPE,
+    APR_FILETYPE_SOCKET
+} apr_filetype_e;
+    
 struct apr_file_t {
     apr_pool_t *pool;
     HANDLE filehand;
-    BOOLEAN pipe, socket;      /* Is this a pipe, a socket or a file? */
+    apr_filetype_e ftype;      /* Is this a pipe, a socket or a file? */
     OVERLAPPED *pOverlapped;
     apr_interval_time_t timeout;
     apr_int32_t flags;