それもXML-RPC的な失敗ではなく、セッションが強制的に切断されている感じです。
気になるので tcpdump でパケットを調べたところ、Yahoo!(日本)の更新 ping サーバに対し、4引数を指定して weblogUpdates.ping メソッドを呼び出すと失敗することが分かりました。
つまり、
res = c.call("weblogUpdates.ping", name, url, changesurl, category)
ではだめで、 res = c.call("weblogUpdates.ping", name, url)
にしなければ、だめ、ということ。で、その拒否の仕方なのですが、なんと、いきなり TCP の FIN を送りつけて、セッションを強制切断してきます。ぐぇー、な、なんて野蛮な... (^^;
米国Yahooの更新ping サーバ(http://api.my.yahoo.com/RPC2)へ同じメッセージを送ると、同じく受け入れは拒否されますが、XML-RPC的に「Bad request」とエラーメッセージを返してくれます(国毎に独自実装をもっているの...?)。
Weblogs.Com XML-RPC interfaceを見ると、4つの引数指定は可能ですし、Googleを始めとする他のサーバでは、普通に受け入れてくれているのですけれど。
というわけで、Yahoo!に更新 ping を打つ方は、是非2引数で打ちましょう。
0 件のコメント:
コメントを投稿