contents
下一篇: 新闻阅读器配置 上一级: NNTP 描述 上一篇: NNTP 授权

nntpd 与 C-News 的交互

当接收到文章时,nntpd 必须将其传递给新闻子系统。根据文章是通过 IHAVE 还是 POST 命令接收的,文章将分别被传递给 rnews 或 inews。 除了调用 rnews 之外,您还可以配置它(在编译时)来批量处理传入的文章,并将生成的批次移动到 /var/spool/news/in.coming,在那里它们将被留给 relaynews 在下一次队列运行时拾取。

为了能够正确执行 ihave/sendme 协议,nntpd 必须能够访问历史记录文件。 因此,在编译时,您必须确保路径设置正确。 您还应该确保 C-news 和 nntpd 在历史记录文件的格式上达成一致。 C-news 使用 dbm 哈希函数来访问它; 但是,dbm 库有相当多不同的且略微不兼容的实现。 如果 C-news 链接的 dbm 库与您的标准 libc 中的库不同,则您也必须将 nntpd 与此库链接。

nntpd 和 C-news 在数据库格式上不一致的典型症状是系统日志中的错误消息,表明 nntpd 无法正确打开它,或者通过 NNTP 接收到重复的文章。 一个好的测试是从您的假脱机区域中选择一篇文章,telnet 到 nntp 端口,并像下面的示例中所示的那样将其提供给 nntpd(您的输入用这种方式标记)。 当然,您必须将 <msg@id> 替换为您要重新提供给 nntpd 的文章的 Message-ID。

           $ telnet localhost nntp
           Trying 127.0.0.1...
           Connected to localhost
           Escape characters is '^]'.
           201 vstout NNTP[auth] server version 1.5.11t (16 November
           1991) ready at Sun Feb 6 16:02:32 1194 (no posting)
           IHAVE 
           435 Got it.
           QUIT
此对话显示了 nntpd 的正确反应; 消息 “Got it” 告诉您它已经有了这篇文章。 如果您收到消息 “335 Ok” 而不是 “Got it”,则历史记录文件中的查找因某种原因失败。 通过键入 Ctrl-D 终止对话。 您可以通过检查系统日志来查看哪里出错了; nntpd 将各种消息记录到 syslog 的守护进程工具。 不兼容的 dbm 库通常表现为抱怨 dbminit 失败的消息。
contents
下一篇: 新闻阅读器配置 上一级: NNTP 描述 上一篇: NNTP 授权

安德鲁·安德森
1996 年 3 月 7 日星期四 23:22:06 EST