【发布时间】:2013-10-07 02:25:58
【问题描述】:
我正在使用TIdNNTP,遇到了news.astraweb.com 服务器的情况,它在LIST EXTENSIONS 中宣布它支持新命令HDR 和OVER(XHDR 和XOVER 的正式版本) - 见https://www.rfc-editor.org/rfc/rfc3977#section-8.3 和https://www.rfc-editor.org/rfc/rfc2980#section-2.8
问题是服务器在发出 OVER 命令(而不是 XOVER)时回复命令代码 500(无效命令)。尽管这显然是不符合 RFC 的行为,但我想看看是否有可能强制 TIdNNTP 使用 XOVER 而不是 OVER,换句话说,以一种“传统”模式工作。同样的事情也适用于像 news.aioe.org 这样的兼容服务器
来自 news.astraweb.com 的日志示例(有问题的服务器)
->CAPABILITIES
<-500 What?
->LIST EXTENSIONS
<-202 Extensions supported:
<-HDR
<-OVER
<-.
->GROUP group.name
<-211 100031 1 100031 group.name
->OVER 100031-100031
<-500 What?
来自 news.aioe.org 的正确日志(按预期工作)
-> CAPABILITIES
<- 101 Capability list:
<- VERSION 2
<- IMPLEMENTATION INN 2.5.2
<- AUTHINFO
<- SASL
<- HDR
<- LIST ACTIVE ACTIVE.TIMES DISTRIB.PATS HEADERS NEWSGROUPS OVERVIEW.FMT
<- OVER
<- POST
<- READER
<- SASL NTLM DIGEST-MD5 CRAM-MD5
<- STARTTLS
<- .
-> STARTTLS
<- 382 Begin TLS negotiation now
-> MODE READER
<- 200 news.aioe.org InterNetNews NNRP server INN 2.5.2 ready (posting ok)
-> CAPABILITIES
<- 101 Capability list:
<- VERSION 2
<- IMPLEMENTATION INN 2.5.2
<- AUTHINFO
<- USER
<- SASL
<-
<- HDR
<- LIST ACTIVE ACTIVE.TIMES DISTRIB.PATS HEADERS NEWSGROUPS OVERVIEW.FMT
<- OVER
<- POST
<- READER
<- SASL NTLM DIGEST-MD5 CRAM-MD5 PLAIN LOGIN
<- .
-> GROUP group.name
<- 211 4540 67027 71566 group.name
-> OVER 67027-71566
<- 224 Overview information for 67027-71566 follows
....
目前,TIdNNTP 在服务器宣布支持 OVER 时会自动选择 OVER,并且使用 IdNNTP.XOVER 调用将发出 OVER 命令。可以以某种方式覆盖它吗?做这种遗留支持是否值得费心?
【问题讨论】:
标签: delphi c++builder indy