rbb 99/04/30 08:19:59
Modified: apr/file_io/unix dir.c fileacc.c filedup.c fileio.h
filestat.c open.c pipe.c readwrite.c seek.c
apr/include apr_lib.h
apr/lib apr_pools.c
apr/misc/unix Makefile
apr/test Makefile testfile.c
Log:
Changed fileio apr stuff to use apr_context_t's. I haven't updated the docs,
that's next. I also modified the apr_pools stuff to link properly. Lastly,
I update the fileio test program.
Revision Changes Path
1.2 +22 -15 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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- dir.c 1999/04/09 14:36:57 1.1
+++ dir.c 1999/04/30 15:19:50 1.2
@@ -58,9 +58,19 @@
#include <string.h>
#include <dirent.h>
-apr_dir_t *apr_opendir(const char *dirname)
+apr_status_t dir_cleanup(apr_dir_t *thedir)
{
- apr_dir_t *thedir = (apr_dir_t *)malloc(sizeof(apr_dir_t));
+ if (closedir(thedir->dirstruct) == 0) {
+ return APR_SUCCESS;
+ }
+ else {
+ return APR_FAILURE;
+ }
+}
+
+apr_dir_t *apr_opendir(apr_context_t *cont, const char *dirname)
+{
+ apr_dir_t *thedir = (apr_dir_t *)apr_palloc(cont->pool,
sizeof(apr_dir_t));
thedir->dirname = strdup(dirname);
thedir->dirstruct = opendir(dirname);
@@ -70,35 +80,32 @@
return NULL;
}
else {
+ apr_register_cleanup(cont->pool, (void *)thedir, dir_cleanup, NULL);
return thedir;
}
}
-apr_status_t apr_closedir(apr_dir_t *thedir)
+apr_status_t apr_closedir(apr_context_t *cont, apr_dir_t *thedir)
{
- if (closedir(thedir->dirstruct) == 0) {
- free(thedir->dirname);
- free(thedir);
- thedir = NULL;
+ if (dir_cleanup(thedir) == APR_SUCCESS) {
+ apr_kill_cleanup(cont->pool, thedir, dir_cleanup);
return APR_SUCCESS;
- }
- else {
- return APR_FAILURE;
}
-}
+ return APR_FAILURE;
+}
-apr_dirent_t *apr_readdir(apr_dir_t *thedir)
+apr_dirent_t *apr_readdir(apr_context_t *cont, apr_dir_t *thedir)
{
return readdir(thedir->dirstruct);
}
-apr_status_t apr_rewinddir(apr_dir_t *thedir)
+apr_status_t apr_rewinddir(apr_context_t *cont, apr_dir_t *thedir)
{
rewinddir(thedir->dirstruct);
return APR_SUCCESS;
}
-apr_status_t apr_make_dir(const char *path, apr_fileperms_t mode)
+apr_status_t apr_make_dir(apr_context_t *cont, const char *path,
apr_fileperms_t mode)
{
if (mkdir(path, mode) == 0) {
return APR_SUCCESS;
@@ -108,7 +115,7 @@
}
}
-apr_status_t apr_remove_dir(const char *path)
+apr_status_t apr_remove_dir(apr_context_t *cont, const char *path)
{
if (rmdir(path) == 0) {
return APR_SUCCESS;
1.3 +1 -1 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.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- fileacc.c 1999/04/26 13:07:46 1.2
+++ fileacc.c 1999/04/30 15:19:51 1.3
@@ -60,7 +60,7 @@
/* A file to put ALL of the accessor functions for apr_file_t types. */
-char * apr_get_filename(apr_file_t *thefile)
+char * apr_get_filename(apr_context_t *cont, apr_file_t *thefile)
{
if (thefile != NULL) {
return thefile->fname;
1.6 +4 -2 apache-apr/apr/file_io/unix/filedup.c
Index: filedup.c
===================================================================
RCS file: /home/cvs/apache-apr/apr/file_io/unix/filedup.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- filedup.c 1999/04/23 12:45:26 1.5
+++ filedup.c 1999/04/30 15:19:51 1.6
@@ -55,10 +55,11 @@
#include <strings.h>
#include "apr_file_io.h"
#include "apr_general.h"
+#include "fileio.h"
-apr_file_t *apr_dupfile(apr_file_t *old_file)
+apr_file_t *apr_dupfile(apr_context_t *cont, apr_file_t *old_file)
{
- apr_file_t * new_file = (apr_file_t *)malloc(sizeof(apr_file_t));
+ apr_file_t *new_file = (apr_file_t *)apr_palloc(cont->pool,
sizeof(apr_file_t));
if (new_file == NULL) {
errno = ENOMEM;
@@ -74,5 +75,6 @@
old_file->atime = new_file->atime;
old_file->mtime = new_file->mtime;
old_file->ctime = new_file->ctime;
+ apr_register_cleanup(cont->pool, (void *)new_file, file_cleanup, NULL);
}
1.2 +3 -0 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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- fileio.h 1999/04/12 17:48:19 1.1
+++ fileio.h 1999/04/30 15:19:51 1.2
@@ -62,6 +62,7 @@
#include <time.h>
#include <dirent.h>
#include <sys/uio.h>
+#include "apr_errno.h"
/* Permissions flags */
#define UREAD S_IRUSR
@@ -97,6 +98,8 @@
typedef mode_t fileperms_t;
typedef struct dirent dirent_t;
typedef struct iovec iovec_t;
+
+apr_status_t file_cleanup(struct file_t *);
#endif /* ! FILE_IO_H */
1.2 +2 -2 apache-apr/apr/file_io/unix/filestat.c
Index: filestat.c
===================================================================
RCS file: /home/cvs/apache-apr/apr/file_io/unix/filestat.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- filestat.c 1999/02/25 21:33:43 1.1
+++ filestat.c 1999/04/30 15:19:51 1.2
@@ -57,7 +57,7 @@
#include "apr_general.h"
#include "apr_errno.h"
-apr_status_t apr_getfileinfo(char * fname, apr_file_t *thefile)
+apr_status_t apr_getfileinfo(apr_context_t *cont, char * fname, apr_file_t
*thefile)
{
struct stat info;
int rv = stat(fname, &info);
@@ -78,7 +78,7 @@
}
}
-apr_status_t apr_updatefileinfo(apr_file_t *thefile)
+apr_status_t apr_updatefileinfo(apr_context_t *cont, apr_file_t *thefile)
{
struct stat info;
int rv = fstat(thefile->filedes, &info);
1.14 +23 -18 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.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- open.c 1999/04/12 17:48:19 1.13
+++ open.c 1999/04/30 15:19:51 1.14
@@ -58,8 +58,20 @@
#include <errno.h>
#include <string.h>
-apr_file_t *apr_open(char *fname, apr_int32_t flag, apr_fileperms_t mode)
+apr_status_t file_cleanup(apr_file_t *file)
{
+ if (close(file->filedes) == 0) {
+ file->filedes = -1;
+ return APR_SUCCESS;
+ }
+ else {
+ return APR_FAILURE;
+ /* Are there any error conditions other than EINTR or EBADF? */
+ }
+}
+
+apr_file_t *apr_open(apr_context_t *cont, char *fname, apr_int32_t flag,
apr_fileperms_t mode)
+{
int oflags = 0;
apr_file_t *dafile = (apr_file_t *)malloc(sizeof(apr_file_t));
struct stat info;
@@ -75,7 +87,7 @@
}
else {
errno = EACCES;
- free(dafile);
+ dafile->filedes = -1;
return NULL;
}
@@ -108,37 +120,30 @@
if (dafile->filedes < 0) {
dafile->filedes = -1;
- free(dafile->fname);
- free(dafile);
return NULL;
}
- if (apr_updatefileinfo(dafile) == APR_SUCCESS) {
- return dafile;
+ if (apr_updatefileinfo(cont, dafile) == APR_SUCCESS) {
+ apr_register_cleanup(cont->pool, (void *)dafile, file_cleanup, NULL);
+ return dafile;
}
else {
errno = ENOSTAT;
- free(dafile->fname);
- free(dafile);
+ dafile->filedes = -1;
return NULL;
}
}
-apr_status_t apr_close(apr_file_t *file)
+apr_status_t apr_close(apr_context_t *cont, apr_file_t *file)
{
- if (close(file->filedes) == 0) {
- file->filedes = -1;
- free(file->fname);
- free(file);
+ if (file_cleanup(file) == APR_SUCCESS) {
+ apr_kill_cleanup(cont->pool, file, file_cleanup);
return APR_SUCCESS;
- }
- else {
- return APR_FAILURE;
- /* Are there any error conditions other than EINTR or EBADF? */
}
+ return APR_FAILURE;
}
-apr_status_t apr_remove_file(char *path)
+apr_status_t apr_remove_file(apr_context_t *cont, char *path)
{
if (unlink(path) == 0) {
return APR_SUCCESS;
1.2 +2 -2 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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- pipe.c 1999/04/20 20:46:40 1.1
+++ pipe.c 1999/04/30 15:19:52 1.2
@@ -61,7 +61,7 @@
#include <sys/types.h>
#include <sys/stat.h>
-apr_status_t apr_create_pipe(apr_file_t *in, apr_file_t *out)
+apr_status_t apr_create_pipe(apr_context_t *cont, apr_file_t *in, apr_file_t
*out)
{
int filedes[2];
@@ -78,7 +78,7 @@
return APR_SUCCESS;
}
-char *apr_create_namedpipe(char *dirpath, apr_fileperms_t mode)
+char *apr_create_namedpipe(apr_context_t *cont, char *dirpath,
apr_fileperms_t mode)
{
char *tmp;
1.5 +3 -3 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.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- readwrite.c 1999/04/09 18:02:41 1.4
+++ readwrite.c 1999/04/30 15:19:52 1.5
@@ -59,7 +59,7 @@
#include <errno.h>
#include <unistd.h>
#include <sys/uio.h>
-apr_ssize_t apr_read(apr_file_t *thefile, void *buf, apr_ssize_t nbytes)
+apr_ssize_t apr_read(apr_context_t *cont, apr_file_t *thefile, void *buf,
apr_ssize_t nbytes)
{
apr_size_t rv;
@@ -73,7 +73,7 @@
return rv;
}
-apr_ssize_t apr_write(apr_file_t *thefile, void *buf, apr_ssize_t nbytes)
+apr_ssize_t apr_write(apr_context_t *cont, apr_file_t *thefile, void *buf,
apr_ssize_t nbytes)
{
apr_size_t rv;
struct stat info;
@@ -94,7 +94,7 @@
return rv;
}
-apr_ssize_t apr_writev(apr_file_t *thefile, const apr_iovec_t * vec,
apr_ssize_t iocnt)
+apr_ssize_t apr_writev(apr_context_t *cont, apr_file_t *thefile, const
apr_iovec_t * vec, apr_ssize_t iocnt)
{
int bytes;
if ((bytes = writev(thefile->filedes, vec, iocnt)) < 0) {
1.2 +1 -1 apache-apr/apr/file_io/unix/seek.c
Index: seek.c
===================================================================
RCS file: /home/cvs/apache-apr/apr/file_io/unix/seek.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- seek.c 1999/04/09 14:11:38 1.1
+++ seek.c 1999/04/30 15:19:52 1.2
@@ -57,7 +57,7 @@
#include <errno.h>
#include <string.h>
-apr_off_t apr_seek(apr_file_t *thefile, apr_off_t offset, apr_seek_where_t
where)
+apr_off_t apr_seek(apr_context_t *cont, apr_file_t *thefile, apr_off_t
offset, apr_seek_where_t where)
{
return lseek(thefile->filedes, offset, where);
}
1.3 +16 -8 apache-apr/apr/include/apr_lib.h
Index: apr_lib.h
===================================================================
RCS file: /home/cvs/apache-apr/apr/include/apr_lib.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- apr_lib.h 1999/04/28 19:20:01 1.2
+++ apr_lib.h 1999/04/30 15:19:55 1.3
@@ -64,6 +64,7 @@
#ifndef APR_LIB_H
#define APR_LIB_H
+#include "apr_general.h"
#include "apr_config.h"
#include "hsregex.h"
@@ -112,12 +113,19 @@
* Define the prototypes for the various APR GP routines.
*/
API_EXPORT(char *) apr_cpystrn(char *d, const char *s, size_t l);
-API_EXPORT(apr_mutex_t *) apr_create_mutex(void *m);
+/*API_EXPORT(apr_mutex_t *) apr_create_mutex(void *m);*/
API_EXPORT(int) apr_slack(int l, int h);
API_EXPORT_NONSTD(int) apr_execle(const char *c, const char *a, ...);
API_EXPORT_NONSTD(int) apr_execve(const char *c, const char *argv[],
const char *envp[]);
+#define apr_create_mutex(x) (0)
+#define apr_release_mutex(x) (0)
+#define apr_acquire_mutex(x) (0)
+#define apr_islower(x) (0)
+#define apr_isalpha(x) (0)
+#define apr_isdigit(x) (0)
+
/*
* Small utility macros to make things easier to read. Not usually a
* goal, to be sure..
@@ -269,12 +277,12 @@
API_EXPORT(void) apr_overlap_tables(apr_table_t *a, const apr_table_t *b,
unsigned flags);
API_EXPORT(void) apr_register_cleanup(apr_pool_t *p, void *data,
- void (*plain_cleanup) (void *),
- void (*child_cleanup) (void *));
+ apr_status_t (*plain_cleanup) (void *),
+ apr_status_t (*child_cleanup) (void *));
API_EXPORT(void) apr_kill_cleanup(apr_pool_t *p, void *data,
- void (*cleanup) (void *));
+ apr_status_t (*cleanup) (void *));
API_EXPORT(void) apr_run_cleanup(apr_pool_t *p, void *data,
- void (*cleanup) (void *));
+ apr_status_t (*cleanup) (void *));
API_EXPORT(void) apr_cleanup_for_exec(void);
API_EXPORT_NONSTD(void) apr_null_cleanup(void *data);
API_EXPORT(void) apr_note_cleanups_for_fd(apr_pool_t *p, int fd);
@@ -319,13 +327,13 @@
API_EXPORT(int) apr_pcloseh(apr_pool_t *a, HANDLE hDevice);
#endif /* WIN32 */
-#ifdef TPF
+/*#ifdef TPF*/
#define apr_block_alarms() (0)
#define apr_unblock_alarms() (0)
-#else /* TPF */
+/*#else
API_EXPORT(void) apr_block_alarms(void);
API_EXPORT(void) apr_unblock_alarms(void);
-#endif /* TPF */
+#endif */
#ifdef __cplusplus
}
1.2 +17 -15 apache-apr/apr/lib/apr_pools.c
Index: apr_pools.c
===================================================================
RCS file: /home/cvs/apache-apr/apr/lib/apr_pools.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- apr_pools.c 1999/04/28 19:20:19 1.1
+++ apr_pools.c 1999/04/30 15:19:56 1.2
@@ -63,7 +63,9 @@
*/
#include "apr_config.h"
+#include "apr_general.h"
#include "apr_pools.h"
+#include "apr_lib.h"
/*
* Debugging support: Define this to enable code which helps detect re-use
@@ -1708,14 +1710,14 @@
struct cleanup {
void *data;
- void (*plain_cleanup) (void *);
- void (*child_cleanup) (void *);
+ apr_status_t (*plain_cleanup) (void *);
+ apr_status_t (*child_cleanup) (void *);
struct cleanup *next;
};
API_EXPORT(void) apr_register_cleanup(apr_pool_t *p, void *data,
- void (*plain_cleanup) (void *),
- void (*child_cleanup) (void *))
+ apr_status_t (*plain_cleanup) (void *),
+ apr_status_t (*child_cleanup) (void *))
{
struct cleanup *c;
@@ -1728,7 +1730,7 @@
}
API_EXPORT(void) apr_kill_cleanup(apr_pool_t *p, void *data,
- void (*cleanup) (void *))
+ apr_status_t (*cleanup) (void *))
{
struct cleanup *c = p->cleanups;
struct cleanup **lastp = &p->cleanups;
@@ -1745,7 +1747,7 @@
}
API_EXPORT(void) apr_run_cleanup(apr_pool_t *p, void *data,
- void (*cleanup) (void *))
+ apr_status_t (*cleanup) (void *))
{
apr_block_alarms(); /* Run cleanup only once! */
(*cleanup) (data);
@@ -1807,7 +1809,7 @@
* Files and file descriptors; these are just an application of the
* generic cleanup interface.
*/
-
+#if 0 /*not really needed any more, apr takes care of this stuff */
static void fd_cleanup(void *fdv)
{
close((int) (long) fdv);
@@ -1883,12 +1885,12 @@
return res;
}
#endif
-
+*/
/* Note that we have separate plain_ and child_ cleanups for FILE *s,
* since fclose() would flush I/O buffers, which is extremely undesirable;
* we just close the descriptor.
*/
-
+/*
static void file_cleanup(void *fpv)
{
fclose((FILE *) fpv);
@@ -1913,14 +1915,14 @@
#ifdef WIN32
modeFlags = _S_IREAD | _S_IWRITE;
-#else /* WIN32 */
+#else
modeFlags = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
-#endif /* WIN32 */
+#endif
apr_block_alarms();
if (*mode == 'a') {
- /* Work around faulty implementations of fopen */
+ /* Work around faulty implementations of fopen */
baseFlag = (*(mode + 1) == '+') ? O_RDWR : O_WRONLY;
desc = open(name, baseFlag | O_APPEND | O_CREAT,
modeFlags);
@@ -2052,7 +2054,7 @@
res = closesocket(sock);
#ifdef WIN32
errno = WSAGetLastError();
-#endif /* WIN32 */
+#endif
save_errno = errno;
apr_kill_cleanup(a, (void *) (long) sock, socket_cleanup);
apr_unblock_alarms();
@@ -2096,7 +2098,7 @@
apr_kill_cleanup(p, (void *) reg, regex_cleanup);
apr_unblock_alarms();
}
-
+#endif /* if 0 not really needed anymore. APR takes care of this. */
/*****************************************************************
*
* More grotty system stuff... subprocesses. Frump. These don't use
@@ -2133,6 +2135,7 @@
#define BINMODE
#endif
+#if 0
static pid_t spawn_child_core(apr_pool_t *p,
int (*func) (void *, apr_child_info_t *),
void *data,enum kill_conditions kill_how,
@@ -2448,7 +2451,6 @@
return pid;
}
-#if 0
API_EXPORT(int) apr_bspawn_child(apr_pool_t *p,
int (*func) (void *v, apr_child_info_t *c),
void *data, enum kill_conditions kill_how,
1.2 +1 -1 apache-apr/apr/misc/unix/Makefile
Index: Makefile
===================================================================
RCS file: /home/cvs/apache-apr/apr/misc/unix/Makefile,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Makefile 1999/04/29 20:20:32 1.1
+++ Makefile 1999/04/30 15:19:57 1.2
@@ -45,7 +45,7 @@
INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS)
-LIB= libfile.a
+LIB= libaprmisc.a
OBJS= start.o
1.8 +1 -1 apache-apr/apr/test/Makefile
Index: Makefile
===================================================================
RCS file: /home/cvs/apache-apr/apr/test/Makefile,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Makefile 1999/04/28 14:30:25 1.7
+++ Makefile 1999/04/30 15:19:58 1.8
@@ -12,7 +12,7 @@
SRCDIR=..
EXTRA_CFLAGS=-g
EXTRA_LDFLAGS=
-EXTRA_LIBS=-L../threadproc -lthreadproc -L../file_io -lfile -L../network_io
-lnetwork
+EXTRA_LIBS=-L../misc -laprmisc -L../lib -lapr -L../misc -laprmisc
-L../threadproc -lthreadproc -L../file_io -lfile -L../network_io -lnetwork
EXTRA_INCLUDES=
EXTRA_DEPS=
OSDIR=
1.12 +30 -27 apache-apr/apr/test/testfile.c
Index: testfile.c
===================================================================
RCS file: /home/cvs/apache-apr/apr/test/testfile.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- testfile.c 1999/04/12 17:54:11 1.11
+++ testfile.c 1999/04/30 15:19:58 1.12
@@ -62,11 +62,12 @@
#include <unistd.h>
#endif
-int test_filedel(void);
-int testdirs(void);
+int test_filedel(apr_context_t *);
+int testdirs(apr_context_t *);
int main()
{
+ apr_context_t *context;
apr_file_t *thefile = NULL;
apr_status_t status = 0;
apr_int32_t flag = APR_READ | APR_WRITE | APR_CREATE;
@@ -75,10 +76,12 @@
char buf;
char *filename = "test.fil";
+ context = apr_initialize(NULL);
+
fprintf(stdout, "Testing file functions.\n");
fprintf(stdout, "\tOpening file.......");
- thefile = apr_open(filename, flag, APR_UREAD | APR_UWRITE | APR_GREAD);
+ thefile = apr_open(context, filename, flag, APR_UREAD | APR_UWRITE |
APR_GREAD);
if (thefile == NULL) {
perror("Didn't open file");
exit(-1);
@@ -88,11 +91,11 @@
}
fprintf(stdout, "\tChecking file.......");
- if (apr_valid_file(thefile) == APR_FAILURE) {
+ if (thefile == NULL) {
fprintf(stderr, "Bad file des\n");
exit(-1);
}
- if (strcmp(apr_get_filename(thefile), filename) != 0) {
+ if (strcmp(apr_get_filename(context, thefile), filename) != 0) {
fprintf(stderr, "wrong filename\n");
exit(-1);
}
@@ -103,7 +106,7 @@
fprintf(stdout, "\tWriting to file.......");
nbytes = (apr_uint64_t)strlen("this is a test");
- rv = apr_write(thefile, "this is a test", nbytes);
+ rv = apr_write(context, thefile, "this is a test", nbytes);
if (rv == -1) {
perror("something's wrong");
exit(-1);
@@ -117,7 +120,7 @@
}
fprintf(stdout, "\tMoving to start of file.......");
- if (apr_seek(thefile, 0, SEEK_SET) != 0) {
+ if (apr_seek(context, thefile, 0, SEEK_SET) != 0) {
perror("couldn't seek to beginning of file.");
exit(-1);
}
@@ -127,7 +130,7 @@
fprintf(stdout, "\tReading from the file.......");
nbytes = (apr_uint64_t)strlen("this is a test");
- rv = apr_read(thefile, &buf, nbytes);
+ rv = apr_read(context, thefile, &buf, nbytes);
if (rv == -1) {
perror("something's wrong");
exit(-1);
@@ -142,7 +145,7 @@
}
fprintf(stdout, "\tClosing File.......");
- status = apr_close(thefile);
+ status = apr_close(context, thefile);
if (status == APR_FAILURE) {
fprintf(stderr, "Couldn't close the file\n");
exit(-1);
@@ -152,7 +155,7 @@
}
fprintf(stdout, "\tDeleting file.......");
- status = apr_remove_file(filename);
+ status = apr_remove_file(context, filename);
if (status == APR_FAILURE) {
fprintf(stderr, "Couldn't delete the file\n");
exit(-1);
@@ -162,7 +165,7 @@
}
fprintf(stdout, "\tMaking sure it's gone.......");
- thefile = apr_open(filename, APR_READ, APR_UREAD | APR_UWRITE |
APR_GREAD);
+ thefile = apr_open(context, filename, APR_READ, APR_UREAD | APR_UWRITE |
APR_GREAD);
if (thefile != NULL) {
fprintf(stderr, "I could open the file for some reason?\n");
exit(-1);
@@ -171,30 +174,30 @@
fprintf(stdout, "OK\n");
}
- testdirs();
+ testdirs(context);
return 1;
}
-int test_filedel(void)
+int test_filedel(apr_context_t *context)
{
apr_file_t *thefile;
apr_int32_t flag = APR_READ | APR_WRITE | APR_CREATE;
- thefile = apr_open("testdel", flag, APR_UREAD | APR_UWRITE | APR_GREAD);
+ thefile = apr_open(context, "testdel", flag, APR_UREAD | APR_UWRITE |
APR_GREAD);
if (thefile == NULL) {
return APR_FAILURE;
}
- if (apr_remove_file(thefile->fname) == APR_FAILURE) {
+ if (apr_remove_file(context, thefile->fname) == APR_FAILURE) {
return APR_FAILURE;
}
- if (apr_close(thefile) == APR_FAILURE) {
+ if (apr_close(context, thefile) == APR_FAILURE) {
return APR_FAILURE;
}
- thefile = apr_open("testdel", APR_READ, APR_UREAD | APR_UWRITE |
APR_GREAD);
+ thefile = apr_open(context, "testdel", APR_READ, APR_UREAD | APR_UWRITE
| APR_GREAD);
if (thefile == NULL) {
return APR_FAILURE;
}
@@ -202,7 +205,7 @@
return APR_SUCCESS;
}
-int testdirs(void)
+int testdirs(apr_context_t *context)
{
apr_dir_t *temp;
apr_dirent_t *entry, *entry1;
@@ -210,7 +213,7 @@
fprintf(stdout, "Testing Directory functions.\n");
fprintf(stdout, "\tMakeing Directory.......");
- if (apr_make_dir("testdir", APR_UREAD | APR_UWRITE | APR_UEXECUTE |
APR_GREAD | APR_GWRITE | APR_GEXECUTE | APR_WREAD | APR_WWRITE | APR_WEXECUTE)
== APR_FAILURE) {
+ if (apr_make_dir(context, "testdir", APR_UREAD | APR_UWRITE |
APR_UEXECUTE | APR_GREAD | APR_GWRITE | APR_GEXECUTE | APR_WREAD | APR_WWRITE |
APR_WEXECUTE) == APR_FAILURE) {
fprintf(stderr, "Could not create directory\n");
return -1;
}
@@ -218,12 +221,12 @@
fprintf(stdout, "OK\n");
}
- if (apr_open("testdir/testfile", APR_READ | APR_WRITE | APR_CREATE,
APR_UREAD | APR_UWRITE | APR_UEXECUTE) == NULL) {;
+ if (apr_open(context, "testdir/testfile", APR_READ | APR_WRITE |
APR_CREATE, APR_UREAD | APR_UWRITE | APR_UEXECUTE) == NULL) {;
return -1;
}
fprintf(stdout, "\tOpening Directory.......");
- if ((temp = apr_opendir("testdir")) == NULL) {
+ if ((temp = apr_opendir(context, "testdir")) == NULL) {
fprintf(stderr, "Could not open directory\n");
return -1;
}
@@ -232,7 +235,7 @@
}
fprintf(stdout, "\tReading Directory.......");
- if ((entry = apr_readdir(temp)) == NULL) {
+ if ((entry = apr_readdir(context, temp)) == NULL) {
fprintf(stderr, "Could not read directory\n");
return -1;
}
@@ -242,9 +245,9 @@
fprintf(stdout, "\tRewinding directory.......");
- apr_rewinddir(temp);
+ apr_rewinddir(context, temp);
- if ((entry1 = apr_readdir(temp)) != NULL) {
+ if ((entry1 = apr_readdir(context, temp)) != NULL) {
if (entry1->d_ino != entry->d_ino) {
fprintf(stderr, "Couldn't rewind directory\n");
return -1;
@@ -255,7 +258,7 @@
}
fprintf(stdout, "\tClosing Directory.......");
- if (apr_closedir(temp) == APR_FAILURE) {
+ if (apr_closedir(context, temp) == APR_FAILURE) {
fprintf(stderr, "Could not close directory\n");
return -1;
}
@@ -264,7 +267,7 @@
}
fprintf(stdout, "\tRemoving file from directory.......");
- if (apr_remove_file("testdir/testfile") == APR_FAILURE) {
+ if (apr_remove_file(context, "testdir/testfile") == APR_FAILURE) {
fprintf(stderr, "Could not remove file\n");
return -1;
}
@@ -273,7 +276,7 @@
}
fprintf(stdout, "\tRemoving Directory.......");
- if (apr_remove_dir("testdir") == APR_FAILURE) {
+ if (apr_remove_dir(context, "testdir") == APR_FAILURE) {
fprintf(stderr, "Could not create directory\n");
return -1;
}