From ae31e19f92e717919ac8e3db9039eb38d2b89aae Mon Sep 17 00:00:00 2001 From: in2 Date: Thu, 7 Mar 2002 15:13:44 +0000 Subject: Initial revision git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@1 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- util/inndBM.c | 194 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 util/inndBM.c (limited to 'util/inndBM.c') diff --git a/util/inndBM.c b/util/inndBM.c new file mode 100644 index 00000000..426fa6f5 --- /dev/null +++ b/util/inndBM.c @@ -0,0 +1,194 @@ +/* 依據 .BOARD檔 & newsfeeds.bbs 列出參與轉信的所有板資料 */ + +#include +#include +#include +#include +#include +#include "config.h" +#include "pttstruct.h" +#define INNDHOME BBSHOME"/innd" + +#define INND_NEWSFEED INNDHOME "/newsfeeds.bbs" +#define INND_NODELIST INNDHOME "/nodelist.bbs" +#define INND_SCRIPT INNDHOME "/bbsnnrpall.auto.sh" + +extern bcache_t *brdshm; +extern boardheader_t *bcache; +extern int numboards; +int istran[MAX_BOARD]; + +typedef +struct newssvr_t +{ + char name[30]; + char address[256]; + char type[10]; +}newssvr_t; + +typedef +struct newsfeed_t +{ + char group[128]; + char board[15]; + char server[30]; +}newsfeed_t; + +newssvr_t server[128]; +newsfeed_t feedline[MAX_BOARD]; +int servercount; +int feedcount; + +int newsfeed_cmp(newsfeed_t *a,newsfeed_t *b) +{ + int i; + i=strcasecmp(a->server,b->server); + if(i) return i; + return strcasecmp(a->board,b->board); +} + +int get_server(char *name) +{ + int i; + for(i=0;i>" + INNDHOME"/log/inndBM.log 2>>" + INNDHOME"/log/inndBM.log.err &\r\n", + server[serverid].address, + serverstr); + system(buf); + if(fpscript) + fprintf(fpscript,INNDHOME"/bbsnnrp %s " + INNDHOME"/active/%s.auto.active >>" + INNDHOME"/log/inndBM.log 2>>" + INNDHOME"/log/inndBM.log.err &\r\n", + server[serverid].address,serverstr); + return 0; +} +int main() +{ + int i,serverid=0; + FILE *fp=NULL,*fpscript=fopen(INND_SCRIPT,"w"); + char buf[256],serverstr[30]=""; + resolve_boards(); + memset(istran,0,sizeof(int)*MAX_BOARD); + load_server(); + load_newsfeeds(); + + for(i=0;ibusystate) {safe_sleep(1);} + brdshm->busystate = 1; + bcache[i].brdattr = bcache[i].brdattr & ~BRD_NOTRAN; + strncpy(bcache[i].title + 5, "●", 2); + brdshm->busystate = 0; + + substitute_record(BBSHOME"/.BOARDS", &bcache[i],sizeof(boardheader_t),i+1); + } + else if(!(bcache[i].brdattr & BRD_NOTRAN) && !istran[i]) + { + while(brdshm->busystate) {safe_sleep(1);} + brdshm->busystate = 1; + bcache[i].brdattr = bcache[i].brdattr | BRD_NOTRAN; + strncpy(bcache[i].title + 5, "◎", 2); + brdshm->busystate = 0; + substitute_record(BBSHOME"/.BOARDS", &bcache[i],sizeof(boardheader_t),i+1); + } + + } + return 0; +} -- cgit v1.2.3