diff options
Diffstat (limited to 'mbbsd/cache.c')
-rw-r--r-- | mbbsd/cache.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/mbbsd/cache.c b/mbbsd/cache.c index 2ddfefb4..630390c1 100644 --- a/mbbsd/cache.c +++ b/mbbsd/cache.c @@ -1,4 +1,4 @@ -/* $Id: cache.c,v 1.45 2002/07/27 10:11:39 kcwu Exp $ */ +/* $Id: cache.c,v 1.46 2002/08/06 08:58:25 in2 Exp $ */ #include "bbs.h" #ifndef __FreeBSD__ @@ -1129,3 +1129,31 @@ mdcacheopen(char *fpath) return fd; } #endif + +#ifdef OUTTA_CACHE +void outta_swapout(void **ptr, int length, char cacheid) +{ + char fn[64]; + int fd; + sprintf(fn, "cache/" MYHOSTNAME "%c%d", cacheid, currpid); + if( (fd = open(fn, O_WRONLY | O_CREAT, 0600)) < 0 ) + abort_bbs(0); + write(fd, *ptr, length); + close(fd); + free(*ptr); + *ptr = NULL; +} + +void outta_swapin(void **ptr, int length, char cacheid) +{ + char fn[64]; + int fd; + sprintf(fn, "cache/" MYHOSTNAME "%c%d", cacheid, currpid); + if( (fd = open(fn, O_RDONLY)) < 0 ) + abort_bbs(0); + *ptr = (void *)malloc(length); + read(fd, *ptr, length); + close(fd); + unlink(fn); +} +#endif |