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;