diff options
author | in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2002-08-20 10:42:36 +0800 |
---|---|---|
committer | in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2002-08-20 10:42:36 +0800 |
commit | 70148db3434a3d889218972a490437d2f3363036 (patch) | |
tree | bd2f9f0695968b8a34524e6fdb84d025b03b928b /util | |
parent | 0b5909999dcc7f79f44e1fda88223d24dc612ccf (diff) | |
download | pttbbs-70148db3434a3d889218972a490437d2f3363036.tar pttbbs-70148db3434a3d889218972a490437d2f3363036.tar.gz pttbbs-70148db3434a3d889218972a490437d2f3363036.tar.bz2 pttbbs-70148db3434a3d889218972a490437d2f3363036.tar.lz pttbbs-70148db3434a3d889218972a490437d2f3363036.tar.xz pttbbs-70148db3434a3d889218972a490437d2f3363036.tar.zst pttbbs-70148db3434a3d889218972a490437d2f3363036.zip |
remove OUTTA_CACHE
git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@480 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'util')
-rw-r--r-- | util/.cvsignore | 2 | ||||
-rw-r--r-- | util/Makefile | 14 | ||||
-rw-r--r-- | util/cacheserver.c | 139 | ||||
-rw-r--r-- | util/localserver.c | 116 |
4 files changed, 2 insertions, 269 deletions
diff --git a/util/.cvsignore b/util/.cvsignore index c72037ba..d33e906f 100644 --- a/util/.cvsignore +++ b/util/.cvsignore @@ -44,5 +44,3 @@ shmctl mdclean splitpasswd indexuser -cacheserver -localserver diff --git a/util/Makefile b/util/Makefile index f704a564..81f466a7 100644 --- a/util/Makefile +++ b/util/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.18 2002/08/17 12:31:56 in2 Exp $ +# $Id: Makefile,v 1.19 2002/08/20 02:42:36 in2 Exp $ BBSHOME?=$(HOME) OSTYPE!=uname @@ -30,8 +30,7 @@ CPROGS= bbsmail BM_money post account birth deluserfile expire mandex\ poststat showboard antispam countalldice webgrep bbsrf\ initbbs outmail xchatd userlist tunepasswd buildir reaper shmsweep\ merge_passwd merge_board inndBM buildAnnounce rmuid \ - toplazyBM jungo toplazyBBM shmctl mdclean splitpasswd indexuser \ - cacheserver localserver testoc + toplazyBM jungo toplazyBBM shmctl mdclean splitpasswd indexuser PROGS= $(CPROGS) BM_money.sh backpasswd.sh mailog.sh opendice.sh\ openticket.sh stock.sh topsong.sh weather.sh stock.perl weather.perl\ @@ -169,15 +168,6 @@ mdclean: mdclean.c splitpasswd: splitpasswd.c $(CC) $(CFLAGS) -o $@ $@.c -cacheserver: cacheserver.c - $(CC) $(CFLAGS) -I/usr/local/include -lavltree -L/usr/local/lib -o $@ $@.c - -localserver: localserver.c - $(CC) $(CFLAGS) -o $@ $@.c - -testoc: testoc.c - $(CC) $(CFLAGS) -o $@ $@.c - install: $(PROGS) install -d $(BBSHOME)/bin/ install -c -m 755 $(PROGS) $(BBSHOME)/bin/ diff --git a/util/cacheserver.c b/util/cacheserver.c deleted file mode 100644 index cc0e36e3..00000000 --- a/util/cacheserver.c +++ /dev/null @@ -1,139 +0,0 @@ -#include "bbs.h" -#include <err.h> -#include <avltree.h> - -int toaccept(int port); -void usage(void); -ssize_t Read(int fd, void *buf, size_t nbytes); -ssize_t Write(int fd, void *BUF, size_t nbytes) -{ - char *buf = (char *)BUF; - size_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 main(int argc, char **argv) -{ - int sfd, len; - int port = -1; - char ch; - OCbuf_t OCbuf; - - AVL_IX_DESC ix; - AVL_IX_REC pe; - OCstore_t *store; - //avl_create_index(&ix, AVL_COUNT_DUPS, OC_KEYLEN); - avl_create_index(&ix, AVL_COUNT_DUPS, 5); - - while( (ch = getopt(argc, argv, "p:")) != -1 ) - switch( ch ){ - case 'p': - port = atoi(optarg); - break; - } - if( port == -1 ) - usage(); - - while( 1 ){ - sfd = toaccept(port); - Read(sfd, &len, sizeof(len)); - printf("reading %d bytes\n", len); - Read(sfd, &OCbuf, len); - printf("read! pid: %d\n", OCbuf.key.pid); - - memset(&pe, 0, sizeof(pe)); - if( OCbuf.key.pid <= 1 ){ - /* garbage collection */ - } - else if( OCbuf.key.pid < OC_pidadd ){ - /* store */ - puts("swapin"); - - len = OC_HEADERLEN + OCbuf.length; - store = (OCstore_t *)malloc(sizeof(time_t) + len); - store->mtime = time(NULL); - memcpy(&(store->data), &OCbuf, len); - - pe.recptr = (void *)store; - memcpy(pe.key, &OCbuf.key, OC_KEYLEN); - if( avl_add_key(&pe, &ix) != AVL_IX_OK ) - puts("add key error"); - } - else { - OCbuf.key.pid -= OC_pidadd; - memcpy(pe.key, &OCbuf.key, OC_KEYLEN); - if( avl_find_key(&pe, &ix) == AVL_IX_OK ){ - store = (OCstore_t *)pe.recptr; - - len = store->data.length + OC_HEADERLEN; - Write(sfd, &len, sizeof(len)); - Write(sfd, &(store->data), len); - free(store); - if( avl_delete_key(&pe, &ix) != AVL_IX_OK ) - puts("delete key error"); - } - else - puts("error"); - } - close(sfd); - } - return 0; -} - -int toaccept(int port) -{ - static int sockfd = 0, len; - int cfd, val; - struct sockaddr_in servaddr, clientaddr; - - if( sockfd == 0 ){ - if( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) - err(1, NULL); - setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *)&val, sizeof(val)); - setsockopt(sockfd, SOL_SOCKET, SO_REUSEPORT, (char *)&val, sizeof(val)); - - bzero(&servaddr, sizeof(servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_addr.s_addr = htonl(INADDR_ANY); - servaddr.sin_port = htons(port); - if( bind(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0 ) - err(1, NULL); - if( listen(sockfd, 5) < 0 ) - err(1, NULL); - - len = sizeof(struct sockaddr_in); - } - - while( (cfd = accept(sockfd, (struct sockaddr *)&clientaddr, &len)) <= 0 ) - ; - - return cfd; -} - -void usage(void) -{ - fprintf(stderr, - "usage:\tcacheserver [options]\n" - "-p port\tlistenport\n"); - exit(0); -} - -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; -} diff --git a/util/localserver.c b/util/localserver.c deleted file mode 100644 index eb90bd6f..00000000 --- a/util/localserver.c +++ /dev/null @@ -1,116 +0,0 @@ -#include "bbs.h" -#include <err.h> - -void usage(void); -int connectserver(char *, int); -void listennetwork(int, int); -void listenmsgqueue(int, int); - -int main(int argc, char **argv) -{ - char *host = NULL; - int port = 0, ch, sfd, msto, mtos; - pid_t pid; - while( (ch = getopt(argc, argv, "s:p:")) != -1 ) - switch( ch ){ - case 's': - host = strdup(optarg); - break; - case 'p': - port = atoi(optarg); - break; - default: - usage(); - } - - if( host == NULL || port == 0 ) - usage(); - - printf("connecting to server %s:%d\n", host, port); - sfd = connectserver(host, port); - puts("connected"); - - puts("attaching message queue"); - if( (msto = msgget(OC_msto, 0600 | IPC_CREAT)) < 0 ) - err(1, "msgget OC_msto"); - if( (mtos = msgget(OC_mtos, 0600 | IPC_CREAT)) < 0 ) - err(1, "msgget OC_mtos"); - puts("attached"); - - if( (pid = fork()) < 0 ) - err(1, "fork()"); - else if( pid == 0 ) - listennetwork(sfd, msto); - listenmsgqueue(sfd, mtos); - - return 0; -} - -void usage(void) -{ - fprintf(stderr, "usage:\tlocalserver -s host -p port\n"); - exit(0); -} - -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 listennetwork(int netfd, int msgfd) -{ - int len; - char buf[CACHE_BUFSIZE]; - printf("(%d)listening network %d => message queue %d\n", - getpid(), netfd, msgfd); - while( Read(netfd, &len, 4) > 0 ){ - if( Read(netfd, buf, len) < 0 ) - err(1, "(network)read()"); - if( msgsnd(msgfd, buf, len, 0) < 0 ) - err(1, "(network)msgsnd()"); - } - exit(0); -} - -void listenmsgqueue(int netfd, int msgfd) -{ - char buf[CACHE_BUFSIZE]; - OCbuf_t *ptr; - int len; - printf("(%d)listening message queue %d => network %d\n", - getpid(), msgfd, netfd); - while( msgrcv(msgfd, buf, CACHE_BUFSIZE, 0, 0) > 0 ){ - ptr = (OCbuf_t *)buf; - len = ptr->length + OC_HEADERLEN; - if( write(netfd, &len, sizeof(len)) < 0 || - write(netfd, ptr, ptr->length + OC_HEADERLEN) < 0 ) - err(1, "(msgqueue)write()"); - } - err(1, "(msgqueue)msgrcv()"); - exit(0); -} - -ssize_t Read(int fd, void *BUF, size_t nbytes) -{ - char *buf = (char *)BUF; - size_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; -} - |