You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@hyperreal.org on 1999/05/12 21:15:33 UTC
cvs commit: apache-apr/apr/file_io/unix dir.c fileacc.c fileio.h open.c pipe.c readwrite.c
rbb 99/05/12 12:15:33
Modified: include apr_file_io.h
apr/test testfile.c
apr/file_io/unix dir.c fileacc.c fileio.h open.c pipe.c
readwrite.c
Log:
Final commit for portability. Now, the user only has to include apr_file_io.h.
Revision Changes Path
1.25 +11 -11 apache-apr/include/apr_file_io.h
Index: apr_file_io.h
===================================================================
RCS file: /home/cvs/apache-apr/include/apr_file_io.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- apr_file_io.h 1999/05/12 18:02:51 1.24
+++ apr_file_io.h 1999/05/12 19:15:26 1.25
@@ -80,25 +80,25 @@
#define APR_END SEEK_END
/* Permissions flags */
-#define APR_UREAD UREAD
-#define APR_UWRITE UWRITE
-#define APR_UEXECUTE UEXECUTE
+#define APR_UREAD 0x400
+#define APR_UWRITE 0x200
+#define APR_UEXECUTE 0x100
-#define APR_GREAD GREAD
-#define APR_GWRITE GWRITE
-#define APR_GEXECUTE GEXECUTE
+#define APR_GREAD 0x040
+#define APR_GWRITE 0x020
+#define APR_GEXECUTE 0x010
-#define APR_WREAD WREAD
-#define APR_WWRITE WWRITE
-#define APR_WEXECUTE WEXECUTE
+#define APR_WREAD 0x004
+#define APR_WWRITE 0x002
+#define APR_WEXECUTE 0x001
/* should be same as whence type in lseek, POSIZ defines this as int */
typedef ap_int32_t ap_seek_where_t;
typedef struct file_t ap_file_t;
typedef struct dir_t ap_dir_t;
-typedef iovec_t ap_iovec_t;
-typedef fileperms_t ap_fileperms_t;
+typedef struct iovec_t ap_iovec_t;
+typedef ap_int32_t ap_fileperms_t;
/* Function definitions */
ap_file_t *ap_open(ap_context_t *, char *, ap_int32_t, ap_fileperms_t);
1.15 +3 -14 apache-apr/apr/test/testfile.c
Index: testfile.c
===================================================================
RCS file: /home/cvs/apache-apr/apr/test/testfile.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- testfile.c 1999/05/10 14:36:33 1.14
+++ testfile.c 1999/05/12 19:15:28 1.15
@@ -52,7 +52,6 @@
* project, please see <http://www.apache.org/>.
*
*/
-
#include "apr_file_io.h"
#include "apr_errno.h"
#include "apr_general.h"
@@ -190,7 +189,7 @@
return APR_FAILURE;
}
- if (ap_remove_file(context, thefile->fname) == APR_FAILURE) {
+ if (ap_remove_file(context, "testdel") == APR_FAILURE) {
return APR_FAILURE;
}
@@ -209,7 +208,6 @@
int testdirs(ap_context_t *context)
{
ap_dir_t *temp;
- ap_dirent_t *entry, *entry1;
fprintf(stdout, "Testing Directory functions.\n");
@@ -236,7 +234,7 @@
}
fprintf(stdout, "\tReading Directory.......");
- if ((entry = ap_readdir(context, temp)) == NULL) {
+ if ((ap_readdir(context, temp)) == APR_FAILURE) {
fprintf(stderr, "Could not read directory\n");
return -1;
}
@@ -247,16 +245,7 @@
fprintf(stdout, "\tRewinding directory.......");
ap_rewinddir(context, temp);
-
- if ((entry1 = ap_readdir(context, temp)) != NULL) {
- if (entry1->d_ino != entry->d_ino) {
- fprintf(stderr, "Couldn't rewind directory\n");
- return -1;
- }
- else {
- fprintf(stdout, "OK\n");
- }
- }
+ fprintf(stdout, "OK\n");
fprintf(stdout, "\tClosing Directory.......");
if (ap_closedir(context, temp) == APR_FAILURE) {
1.5 +2 -1 apache-apr/apr/file_io/unix/dir.c
Index: dir.c
===================================================================
RCS file: /home/cvs/apache-apr/apr/file_io/unix/dir.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- dir.c 1999/05/12 18:03:08 1.4
+++ dir.c 1999/05/12 19:15:29 1.5
@@ -111,8 +111,9 @@
return APR_SUCCESS;
}
-ap_status_t ap_make_dir(ap_context_t *cont, const char *path, fileperms_t mode)
+ap_status_t ap_make_dir(ap_context_t *cont, const char *path, ap_fileperms_t perm)
{
+ mode_t mode = get_fileperms(perm);
if (mkdir(path, mode) == 0) {
return APR_SUCCESS;
}
1.6 +27 -0 apache-apr/apr/file_io/unix/fileacc.c
Index: fileacc.c
===================================================================
RCS file: /home/cvs/apache-apr/apr/file_io/unix/fileacc.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- fileacc.c 1999/05/12 18:03:11 1.5
+++ fileacc.c 1999/05/12 19:15:29 1.6
@@ -58,6 +58,7 @@
#include "apr_general.h"
#include <errno.h>
#include <string.h>
+#include <sys/types.h>
/* A file to put ALL of the accessor functions for struct file_t types. */
@@ -71,4 +72,30 @@
}
}
+mode_t get_fileperms(ap_fileperms_t mode)
+{
+ mode_t rv = 0;
+
+ if (mode & APR_UREAD)
+ rv |= S_IRUSR;
+ if (mode & APR_UWRITE)
+ rv |= S_IWUSR;
+ if (mode & APR_UEXECUTE)
+ rv |= S_IXUSR;
+
+ if (mode & APR_GREAD)
+ rv |= S_IRGRP;
+ if (mode & APR_GWRITE)
+ rv |= S_IWGRP;
+ if (mode & APR_GEXECUTE)
+ rv |= S_IXGRP;
+ if (mode & APR_WREAD)
+ rv |= S_IROTH;
+ if (mode & APR_WWRITE)
+ rv |= S_IWOTH;
+ if (mode & APR_WEXECUTE)
+ rv |= S_IXOTH;
+
+ return rv;
+}
1.6 +6 -15 apache-apr/apr/file_io/unix/fileio.h
Index: fileio.h
===================================================================
RCS file: /home/cvs/apache-apr/apr/file_io/unix/fileio.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- fileio.h 1999/05/12 18:03:14 1.5
+++ fileio.h 1999/05/12 19:15:30 1.6
@@ -62,21 +62,10 @@
#include <time.h>
#include <dirent.h>
#include <sys/uio.h>
+#include "apr_general.h"
+#include "apr_file_io.h"
#include "apr_errno.h"
-/* Permissions flags */
-#define UREAD S_IRUSR
-#define UWRITE S_IWUSR
-#define UEXECUTE S_IXUSR
-
-#define GREAD S_IRGRP
-#define GWRITE S_IWGRP
-#define GEXECUTE S_IXGRP
-
-#define WREAD S_IROTH
-#define WWRITE S_IWOTH
-#define WEXECUTE S_IXOTH
-
struct file_t {
int filedes;
char * fname;
@@ -96,10 +85,12 @@
struct dirent *entry;
};
-typedef mode_t fileperms_t;
-typedef struct iovec iovec_t;
+struct iovec_t {
+ struct iovec *iovec;
+};
ap_status_t file_cleanup(void *);
+mode_t get_fileperms(ap_fileperms_t);
#endif /* ! FILE_IO_H */
1.19 +3 -2 apache-apr/apr/file_io/unix/open.c
Index: open.c
===================================================================
RCS file: /home/cvs/apache-apr/apr/file_io/unix/open.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- open.c 1999/05/12 18:03:19 1.18
+++ open.c 1999/05/12 19:15:30 1.19
@@ -73,12 +73,13 @@
}
}
-struct file_t *ap_open(ap_context_t *cont, char *fname, ap_int32_t flag, fileperms_t mode)
+struct file_t *ap_open(ap_context_t *cont, char *fname, ap_int32_t flag, ap_fileperms_t perm)
{
int oflags = 0;
struct file_t *dafile;
struct stat info;
-
+ mode_t mode = get_fileperms(perm);
+
dafile = (struct file_t *)ap_palloc(cont->pool, sizeof(struct file_t));
if ((flag & APR_READ) && (flag & APR_WRITE)) {
1.5 +2 -1 apache-apr/apr/file_io/unix/pipe.c
Index: pipe.c
===================================================================
RCS file: /home/cvs/apache-apr/apr/file_io/unix/pipe.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- pipe.c 1999/05/12 18:03:21 1.4
+++ pipe.c 1999/05/12 19:15:30 1.5
@@ -79,9 +79,10 @@
return APR_SUCCESS;
}
-char *ap_create_namedpipe(ap_context_t *cont, char *dirpath, fileperms_t mode)
+char *ap_create_namedpipe(ap_context_t *cont, char *dirpath, ap_fileperms_t perm)
{
char *tmp;
+ mode_t mode = get_fileperms(perm);
tmp = tempnam(dirpath, NULL);
if (mkfifo(tmp, mode) == -1) {
1.8 +2 -2 apache-apr/apr/file_io/unix/readwrite.c
Index: readwrite.c
===================================================================
RCS file: /home/cvs/apache-apr/apr/file_io/unix/readwrite.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- readwrite.c 1999/05/12 18:03:24 1.7
+++ readwrite.c 1999/05/12 19:15:30 1.8
@@ -96,10 +96,10 @@
return rv;
}
-ap_ssize_t ap_writev(ap_context_t *cont, struct file_t *thefile, const iovec_t * vec, ap_ssize_t iocnt)
+ap_ssize_t ap_writev(ap_context_t *cont, struct file_t *thefile, const struct iovec_t *vec, ap_ssize_t iocnt)
{
int bytes;
- if ((bytes = writev(thefile->filedes, vec, iocnt)) < 0) {
+ if ((bytes = writev(thefile->filedes, vec->iovec, iocnt)) < 0) {
return APR_FAILURE;
}
else {