📄 readme
字号:
======================================================================BBS <==> News 转信程式 innbbsd 介绍======================================================================<1>. 功能简介<2>. 收信 Server Gateway (innbbsd) 安装和使用 a. 设定 bbsname.bbs b. 设定 nodelist.bbs c. 设定 newsfeeds.bbs d. 设定 innbbs.conf e. 执行 innbbsd (options 介绍)<3>. 收信 Client Gateway (bbsnnrp) 安装和使用 a. 设定 activefile b. 定时跑 bbsnnrp<4>. 送信程式 bntplink 安装设定 a. bbaname.bbs 与 bntplink b. nodelist.bbs 与 bntplink c. newsfeeds.bbs 与 bntplink d. 执行 bntplink<5>. Server gateway innbbsd 控制程式 (ctlinnbbsd) 介绍<6>. activefile and history database<7>. BBS implementation dependent part: receive_article.c<8>. 转信架构<9>. 错误诊断 and FAQ======================================================================<1>. 功能简介----------------------------------------------------------------------A). 主动式 (client gateway) 和被动式 (server gateway) 转信的比较----------------------------------------------------------------------目前与 tw.bbs 转信的 BBS 站所用之程式依照传信的方式可区分为两类:1. 主动取信的, 或称为 client gateway. 一般经由 modem 电话拨接的 BBS站多用此方式主动以 news client 的身份向 news server 定时读取. NSYSU Formosa BBS 所用之转信程式是一种 client gateway.2. 被动等信的, 或称为 server gateway. BBS 站跑一个 server, 只能被动地等待上游站餵送, 是一般 news server 用来传送 news article 的方法. Phoenix BBS 所附之 in.bntpd 就是一种 server gateway. 这两种 gateway 各有优缺点. 分析如下:1. client gateway 必须 maintain 读取的记录, 与一般 news reader 的 newsrc 类似. client 自主性高, 可以 主动决定何时去取信, 要那些讨论区.2. server gateway 无须 maintain 读取记录, 只要被动地等待上游站 把新信送过来. server gateway 比较难自主, 送信时机和餵送之讨论区. 由上游站设定.BBS 站必须衡量需求和维护之困难度, 以决定采用那一种 gateway.1. 收取之讨论区多寡. 若不多, client gateway 比较合适. 如果很多, 应考虑采用 server gateway. 读取记录不好维护, 尤其是 news server 定期会有 renumber active 的 动作, client 可能误判.2. 是否想连线同步转信, 某站一有新信送出, 其他站马上可看到. 这个只能由 server gateway 达成.3. 是否要跨站砍信. 若由 client gateway 来做比较难. 如果要做到能接受别站送来的砍信讯息, a. 还要收取一个 称为 "control" 或 "control.cancel" 的 news 讨论区. 通常这个区的量相当大, 可能远大于 BBS 站想转的正常区. b. 记录 artno 与 BBS article path 的对应关系, 再 stat news server. c. extract header (xhdr Control) server gateway 不用再收额外的讨论区即可跨站砍信.4. 个人使用或使用者不多的 BBS 站建议采用 client gateway. 用户多的, 转信不正常影頀比较大, 建议采用 server gateway.5. 想要自主性高的用 client gateway. 想要有紧密相连, 有整体连成一线感觉者用 server gateway.----------------------------------------------------------------------B). innbbsd 介绍----------------------------------------------------------------------相对于 mfchen 的 bbsinnd (用 perl) server gateway,和中山 BBS 的 news-bbs client gateway, 我用 C 将此二者整合, 支援 Sun-OS 4.x, Sun Solaris, HP-UX, IRIX, AIX 和 Linux. innbbsd 整合 server gateway 和 client gateway. 希望没有人正在做相同的事. 特性如下: 1. 以 C implement. 2. 支援多种 OS. 3. server gateway 和 client gateway 并存. 可接受多个 news server feed 和 多个 client gateway process 同时运作. client gateway process 可在其它非 BBS server 机器执行. 相同讨论区可同时由多个 news server 餵送, 或从不同 news server 挀取. 4. 对 host load 影頀正在测试评估中. 5. server gateway 和 client gateway 都处理跨站砍信. 6. 不会收到重复的文章. 7. server gateway 可不经 news server 使二 BBS 站互转信件. 8. standalone single process concurrent server(优点 ?.) 9 server gateway 和 bbsinnd 相容. 缺点: 1. 必须 maintain 一个 1MB 左右的 dbz 资料档. 2. client gateway 要配合 server gateway 使用. 即使不 接受 news server feed, 也要跑 server gateway. 目前 client gateway process 就是当作一个 user 主控的 feed 来源. 此 client gateway process 可在 BBS server 经 unix-domain socket feed 给 server gateway 或在不同 host 经 inet/tcp 餵给 BBS server. 可用 mfchen 的 bbsinnd 配合此 client gateway. 3. standalone process (缺点 ?.) 4. BBS -> News 仍用 mfchen 的 bntplink. 但改为支援 client gateway. ----------------------------------------------------------------------======================================================================<2>. 收信 Server Gateway (innbbsd) 安装和使用 a. 设定 bbsname.bbsb. 设定 nodelist.bbs innbbsd 由 nodelist.bbs 控制连线机器. 如#sitename hostname PROT(port) commentsbbsroute bbsroute.xxx.nctu.edu.tw POST(119) xxxx news server 则 bbssroute.xxx.nctu.edu.tw 才能 connect. c. 设定 newsfeeds.bbsd. 设定 innbbs.confe. 执行 innbbsd (options 介绍) ----------------------------------------------------------------------!!! 警告 !!!测试前请备份贵 BBS 站资料.!!!!!!!!!!!!You can get from ftp://ftp.csie.nctu.edu.tw/pub/bbs/misc/innbbsd/innbbsd-??.tar.gzpatch from the previous version, usepatch -p1 < innbbsd-patch.xx-xxA. FEATURES: 1. support Sun-OS, Solaris, Linux, AIX, IRIX, HP-UX 2. carry(receive) news from mulitple servers by mulitple client gateways or server gateways. 3. feed multiple servers (BBS or News) by post or ihave protocol to different port number (nntp ,7777, ....)B. Test and Install 1. Please read innd/README and change your newsfeeds.bbs, nodelist.bbs, and bbsname.bbs 2. read innd/src/modify.doc 3. edit Makefile and change these two lines: BBSHOME=/u/staff/bbsroot/csie_util/bntpd/home BBS_SRC=/u/staff/bbsroot/bbs_src into BBSHOME=/tmp/bbs BBS_SRC=/your/bbs-src-directory 4. make 5. mkdir /tmp/bbs/boards /tmp/bbs/boards/test /tmp/bbs/innd copy your newsfeeds.bbs, nodelist.bbs and bbsname.bbs to /tmp/bbs/innd 6. add to newsfeeds.bbs tw.bbs.test test test-news 7. add to nodelist.bbs test-news news-server-your-want-to-post POST(119) your-site-name your-host-domainname IHAVE(7777) 8. add a line to innd/test-news.active tw.bbs.test 0000000000 0000000001 y 9. run innbbsd bbsnnrp news-server-your-can-read innd/test-news.active 10. examine if /tmp/bbs/boards/test has some files and make sure if OK. C. Install and Run your Server Gateway 以上测试若还漀意. 请改 Makefile BBSHOME=\"/tmp/bbs\" BBS_SRC = /your/bbs-src-directory 设定正确之 BBSHOME. make clean make kill `cat /usr/tmp/innbbsd-7777.pid` su 成 bbsuser (和 bbs 同 uid) 1. 假使跑过 mfchen 的 in.bntpd, 转换 history 如下: hisconvert ~bbs/usr/tmp/history ~bbs/usr/tmp/history.z > ~bbs/innd/history mkhistory ~bbs/innd/history 2. innbbsd port-no (default=7777) D. 跑 client (bbsnnrp) gateway 1. 每个 bbsnnrp process 必须用不同的 active file. 当此 active file 被 bbsnnrp process 使用时, 请匀修改. 修改前先停(杀)掉 bbsnnrp process. 2. active file format 如下: newsgroup-name high-number low-number y ....... 例如: tw.bbs.test 0000000000 0000000001 y tw.test 0000000000 0000000001 y 3. 假设 news server 是 news.csie.nctu.edu.tw, active file 在 ~bbs/innd/news.csie.nctu.edu.tw.active bbsnnrp news.csie.nctu.edu.tw ~bbs/innd/news.csie.nctu.edu.tw.active 4. 若要跨站砍信, news server 有 control.cancel 则加入 control.cancel 0000000000 000000001 y 若无 control.cancel 则用 control 0000000000 000000001 y 先跑一次 bbsnnrp -c server control-active-file bbsnnrp 对 control 或 control.cancel 会特别处理, 只取必要的 header. 5. 若第一次跑 bbsnnrp, 建议不要取旧文章, 只 reset active file, 用 bbsnnrp -c server-to-receive active-file 6. 可将以上动作加到 crontab 定时抓, 或用 bbsnnrp -w wait-time ......... & 则 bbsnnrp 每 wait-time 抓一次. 7. bbsnnrp 可在其它机器跑, 例如 BBS host: bbs.dorm10.nctu.edu.tw bbsnnrp host: ccsun1.cc.nctu.edu.tw 在 bbs.dorm10.nctu.edu.tw 跑 innbbsd 7777 并将 ccsun1.cc.nctu.edu.tw 加入 nodelist.bbs, 如 bbsnnrp-ccsun1 ccsun1.cc.nctu.edu.tw 跑 bbsnnrp -r bbs.dorm10.nctu.edu.tw -p 7777 server active-file E. Feed 给多个 news servers 或 BBS server 修改 nodelist.bbs, newsfeeds.bbs , 例如 nodelist.bbs news-server1 news-server1-full-domain IHAVE(119) comment .. server gateway news-server2 news-server2-full-domain POST(119) comment .. client gateway bbs-server1 bbs-server1-full-domain IHAVE(7777) comment .. server gateway bbs-server2 bbs-server2-full-domain IHAVE(7777) comment .. server gateway newsfeeds.bbs tw.bbs.test test news-server1 news-server2 bbs-server1 bbs-server2 tw.test twtest news-server2 bbs-server1 ........ F. Related commands innbbsd [portno] bbsnnrp [options] mkhistory history-file makedbz history-sizeG. 其它说明 innbbsd 只能跑一只, 但能收多个 news server 和 bbs server feed. bbsnnrp 能跑多只, 甚至在其它几器都可以. innbbsd 和 bbsnnrp 收的 newsgroups 可重复. H. BBS 站不透过 News server 互转 nodelist.bbs 加入 bbs-server1 bbs-server1-host-name IHAVE(7777) bbs-server2 bbs-server2-host-name IHAVE(7777) newsfeeds.bbs newsgroups board-name name1 name2 ... tw.bbs.test test bbs-server1 bbs-server2 ------------------------------------------ innbbsd options: Usage: ./innbbsd [options] [port [path]] -v (verbose log) -h|? (help) -n (not to use in core dbz) -i (start from inetd with wait option) -c connection (maximum number of connections accepted)======================================================================<3>. 收信 Client Gateway (bbsnnrp) 安装和使用 a. 设定 activefile b. 定时跑 bbsnnrp这个 client gateway 让你 "乱挀 news".同时可
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -