diff options
Diffstat (limited to 'mbbsd')
-rw-r--r-- | mbbsd/board.c | 54 | ||||
-rw-r--r-- | mbbsd/cache.c | 164 | ||||
-rw-r--r-- | mbbsd/edit.c | 5 | ||||
-rw-r--r-- | mbbsd/more.c | 6 | ||||
-rw-r--r-- | mbbsd/voteboard.c | 5 |
5 files changed, 6 insertions, 228 deletions
diff --git a/mbbsd/board.c b/mbbsd/board.c index 59dbd68a..350a482d 100644 --- a/mbbsd/board.c +++ b/mbbsd/board.c @@ -1,4 +1,4 @@ -/* $Id: board.c,v 1.52 2002/08/19 14:53:05 in2 Exp $ */ +/* $Id: board.c,v 1.53 2002/08/20 02:42:36 in2 Exp $ */ #include "bbs.h" #define BRC_STRLEN 15 /* Length of board name */ #define BRC_MAXSIZE 24576 @@ -235,18 +235,11 @@ init_brdbuf() /* MAXBOARDS ==> 至多看得見 32 個新板 */ n = numboards + 32; size = n * sizeof(int); -#ifdef OUTTA_CACHE - zapbuf = (int *)outta_malloc(size, 'z'); - favbuf = (int *)outta_malloc(size + sizeof(int), 'f'); -#else zapbuf = (int *)malloc(size); favbuf = (int *)malloc(size + sizeof(int)); -#endif -#if 0 favbuf[0] = 0x5c4d3e; /* for check memory */ ++favbuf; -#endif memset(favbuf, 0, size); @@ -266,11 +259,6 @@ init_brdbuf() favbuf[n] &= ~BRD_TAG; brc_expire_time = login_start_time - 365 * 86400; - -#ifdef OUTTA_CACHE - outta_swapout((void **)&favbuf); - outta_swapout((void **)&zapbuf); -#endif } void @@ -282,10 +270,7 @@ save_brdbuf() if ( reentrant ) return; reentrant = 1; -#ifdef OUTTA_CACHE - outta_swapin((void **)&favbuf, 'f'); - outta_swapin((void **)&zapbuf, 'z'); -#endif + if (!zapbuf) return; setuserfile(fname, STR_BBSRC); @@ -294,14 +279,12 @@ save_brdbuf() write(fd, zapbuf, size); close(fd); } -#if 0 if (favbuf[-1] != 0x5c4d3e) { FILE *fp = fopen(BBSHOME "/log/memorybad", "a"); fprintf(fp, "%s %s %d\n", cuser.userid, Cdatelite(&now), favbuf[-1]); fclose(fp); return; } -#endif setuserfile(fname, STR_FAV); if ((fd = open(fname, O_WRONLY | O_CREAT, 0600)) != -1) { size = numboards * sizeof(int); @@ -468,11 +451,7 @@ load_boards(char *key) brdnum = 0; if (class_bid <= 0) { nbrdlength = numboards * sizeof(boardstat_t); -#ifdef OUTTA_CACHE - nbrd = (boardstat_t *) outta_malloc(nbrdlength, 'b'); -#else nbrd = (boardstat_t *) malloc(nbrdlength); -#endif for (i = 0; i < numboards; i++) { if ((bptr = SHM->bsorted[type][i]) == NULL) continue; @@ -491,11 +470,7 @@ load_boards(char *key) } } else { nbrdlength = bptr->childcount * sizeof(boardstat_t); -#ifdef OUTTA_CACHE - nbrd = (boardstat_t *) outta_malloc(nbrdlength, 'b'); -#else nbrd = (boardstat_t *) malloc(nbrdlength); -#endif for (bptr = bptr->firstchild[type]; bptr != (boardheader_t *) ~ 0; bptr = bptr->next[type]) { n = (int)(bptr - bcache); @@ -738,14 +713,6 @@ choose_board(int newflag) char genbuf[200]; #endif -#ifdef OUTTA_CACHE - static char depth = 0; - ++depth; - if( favbuf == NULL ) - outta_swapin((void **)&favbuf, 'f'); - if( zapbuf == NULL ) - outta_swapin((void **)&zapbuf, 'z'); -#endif setutmpmode(newflag ? READNEW : READBRD); brdnum = 0; if (!cuser.userlevel) /* guest yank all boards */ @@ -1054,18 +1021,7 @@ choose_board(int newflag) board_visit_time = zapbuf[ptr->bid - 1]; if (!(ptr->myattr & BRD_ZAP)) zapbuf[ptr->bid - 1] = now; -#ifdef OUTTA_CACHE - outta_swapout((void **)&favbuf); - outta_swapout((void **)&zapbuf); - outta_swapout((void **)&nbrd); -#endif Read(); -#ifdef OUTTA_CACHE - outta_swapin((void **)&favbuf, 'f'); - outta_swapin((void **)&zapbuf, 'z'); - outta_swapin((void **)&nbrd, 'b'); - ptr = &nbrd[num]; -#endif check_newpost(ptr); head = -1; setutmpmode(newflag ? READNEW : READBRD); @@ -1112,12 +1068,6 @@ choose_board(int newflag) } } while (ch != 'q'); free(nbrd); -#ifdef OUTTA_CACHE - if( --depth == 0 ){ - outta_swapout((void **)&favbuf); - outta_swapout((void **)&zapbuf); - } -#endif } int diff --git a/mbbsd/cache.c b/mbbsd/cache.c index c824b4f6..7c4a1992 100644 --- a/mbbsd/cache.c +++ b/mbbsd/cache.c @@ -1,4 +1,4 @@ -/* $Id: cache.c,v 1.48 2002/08/19 14:47:41 in2 Exp $ */ +/* $Id: cache.c,v 1.49 2002/08/20 02:42:36 in2 Exp $ */ #include "bbs.h" #ifndef __FreeBSD__ @@ -1066,165 +1066,3 @@ hbflcheck(int bid, int uid) } return 1; } - -#ifdef MDCACHE -char * -cachepath(const char *fpath) -{ - static char cpath[128]; - char *ptr; - snprintf(cpath, sizeof(cpath), "cache/%s", fpath); - for (ptr = &cpath[6]; *ptr != 0; ++ptr) - if (*ptr == '/') - *ptr = '.'; - return cpath; -} - -int -updatemdcache(const char *CPATH, const char *fpath) -{ - /* - * save file to mdcache with *cpath and *fpath, return: -1 if error - * else the fd - */ - int len, sourcefd, targetfd; - char buf[1024], *cpath; - cpath = (CPATH == NULL) ? cachepath(fpath) : (char *)CPATH; - if ((sourcefd = open(fpath, O_RDONLY)) < 0) - return -1; - if ((targetfd = open(cpath, O_RDWR | O_CREAT | O_TRUNC, 0600)) < 0) - /* md is full? */ - return -1; - while ((len = read(sourcefd, buf, sizeof(buf))) > 0) - if (write(targetfd, buf, len) < len) { - /* md is full? */ - close(targetfd); - unlink(cpath); - lseek(sourcefd, 0, SEEK_SET); - return sourcefd; - } - close(sourcefd); - lseek(targetfd, 0, SEEK_SET); - return targetfd; -} - -int -mdcacheopen(char *fpath) -{ - int fd; - char *cpath; - if (strncmp(fpath, "boards/", 7) && strncmp(fpath, "etc/", 4)) - return open(fpath, O_RDONLY); - -#ifdef MDCACHEHITRATE - ++GLOBE[0]; -#endif - if ((fd = open((cpath = cachepath(fpath)), O_RDONLY)) < 0) - return updatemdcache(cpath, fpath); -#ifdef MDCACHEHITRATE - else - ++GLOBE[1]; -#endif - - return fd; -} -#endif - -#ifdef OUTTA_CACHE -#include <err.h> -static ssize_t Read(int fd, void *BUF, size_t nbytes) -{ - char *buf = (char *)BUF; - ssize_t thisgot, totalgot = nbytes; - while( nbytes > 0 ){ - if( (thisgot = read(fd, buf, nbytes)) <= 0 ) - err(1, "read from socket: "); - nbytes -= thisgot; - buf += thisgot; - } - return totalgot; -} - -static ssize_t Write(int fd, void *BUF, size_t nbytes) -{ - char *buf = (char *)BUF; - ssize_t thisgot, totalgot = nbytes; - while( nbytes > 0 ){ - if( (thisgot = write(fd, buf, nbytes)) <= 0 ) - err(1, "read from socket: "); - nbytes -= thisgot; - buf += thisgot; - } - return totalgot; -} - -int connectserver(char *host, int port) -{ - struct sockaddr_in servaddr; - int fd; - - if( (fd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) - err(1, "socket"); - bzero(&servaddr, sizeof(servaddr)); - servaddr.sin_family = AF_INET; - inet_pton(AF_INET, host, &servaddr.sin_addr); - servaddr.sin_port = htons(port); - if( connect(fd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0 ) - err(1, "connect"); - return fd; -} - -void *outta_malloc(size_t size, char id) -{ - OCbuf_t *ptr = (OCbuf_t *)malloc(OC_HEADERLEN + size); -#ifdef DEBUG - vmsg("outta_malloc(%d, %c)", size, id); -#endif - ptr->key.pid = getpid(); - ptr->key.cacheid = id; - ptr->length = size; - return ptr->buf; -} - -void outta_swapout(void **inptr) -{ - OCbuf_t *ptr = (OCbuf_t *)(*inptr - OC_HEADERLEN); - int fd, len; - fd = connectserver("10.2.1.2", 1477); - len = ptr->length + OC_HEADERLEN; -#ifdef DEBUG - vmsg("outta_swapout(%d)", len); -#endif - Write(fd, &len, sizeof(len)); - Write(fd, ptr, len); - close(fd); - free(ptr); - *inptr = NULL; -} - -void *outta_swapin(void **inptr, char cacheid) -{ - char buf[OC_HEADERLEN]; - OCbuf_t *ptr = (OCbuf_t *)buf; - int fd, len; - - fd = connectserver("10.2.1.2", 1477); - ptr->key.pid = getpid() + OC_pidadd; - ptr->key.cacheid = cacheid; - ptr->length = 0; - len = OC_HEADERLEN; - Write(fd, &len, sizeof(len)); - Write(fd, ptr, OC_HEADERLEN); - - Read(fd, &len, sizeof(len)); -#ifdef DEBUG - vmsg("outta_swapin(%d)", len); -#endif - ptr = (OCbuf_t *)malloc(len); - Read(fd, ptr, len); - close(fd); - - return (*inptr = ptr->buf); -} - -#endif diff --git a/mbbsd/edit.c b/mbbsd/edit.c index ad210b12..589be70d 100644 --- a/mbbsd/edit.c +++ b/mbbsd/edit.c @@ -1,4 +1,4 @@ -/* $Id: edit.c,v 1.15 2002/07/22 19:02:00 in2 Exp $ */ +/* $Id: edit.c,v 1.16 2002/08/20 02:42:36 in2 Exp $ */ #include "bbs.h" typedef struct textline_t { struct textline_t *prev; @@ -1025,9 +1025,6 @@ write_file(char *fpath, int saveheader, int *islocal) } fclose(fp); -#ifdef MDCACHE - close(updatemdcache(NULL, fpath)); -#endif if (local_article && (currstat == POSTING)) return 0; return 0; diff --git a/mbbsd/more.c b/mbbsd/more.c index d7508ce4..fc3434ba 100644 --- a/mbbsd/more.c +++ b/mbbsd/more.c @@ -1,4 +1,4 @@ -/* $Id: more.c,v 1.19 2002/07/27 10:55:30 kcwu Exp $ */ +/* $Id: more.c,v 1.20 2002/08/20 02:42:36 in2 Exp $ */ #include "bbs.h" #define MORE_BUFSIZE 4096 #define MORE_WINSIZE 4096 @@ -156,11 +156,7 @@ more(char *fpath, int promptend) search_char0 = *search_str; *search_str = 0; -#ifdef MDCACHE - fd = mdcacheopen(fpath); -#else fd = open(fpath, O_RDONLY, 0600); -#endif if (fd < 0) return -1; diff --git a/mbbsd/voteboard.c b/mbbsd/voteboard.c index 27ca0bd3..76bf0cbc 100644 --- a/mbbsd/voteboard.c +++ b/mbbsd/voteboard.c @@ -1,4 +1,4 @@ -/* $Id: voteboard.c,v 1.13 2002/07/22 19:02:01 in2 Exp $ */ +/* $Id: voteboard.c,v 1.14 2002/08/20 02:42:36 in2 Exp $ */ #include "bbs.h" #define VOTEBOARD "NewBoard" @@ -170,9 +170,6 @@ do_voteboardreply(fileheader_t * fhdr) fclose(fo); unlink(oldfpath); rename(fpath, oldfpath); -#ifdef MDCACHE - close(updatemdcache(NULL, oldfpath)); -#endif } int |