After writing my last article I noticed that the trackback function to WordPress blogs does not work. At first I had no idea where to search. So I started tracing a bit. This is what I found out so far.
After the article has been saved, the blog starts sending out those trackback requests. I watched those in an ngrep trace. I leave the HTTP headers out, just the XML part is important.
<methodcall>
<methodname>pingback.ping</methodname>
<params>
<param>
<name>sourceURI</name>
<value><string>http://blog.sdamm.de/</string></value>
</param>
<name>targetURI</name>
<value><string>http://www.europa-host.de/wordpress/schluss-mit-lustig/trackback/</string></value>
</param>
</params>
</methodcall>
Well, obviously this XML part is not well formed. That's what WordPress answered, too. So I edited the file include/functions_trackbacks.inc.php. In line 65 another opening param tag had to be inserted. No problem so far. Next try.
<methodcall>
<methodname>pingback.ping</methodname>
<params>
<param>
<name>sourceURI</name>
<value><string>http://blog.sdamm.de/</string></value>
</param>
<param>
<name>targetURI</name>
<value><string>http://www.europa-host.de/wordpress/schluss-mit-lustig/trackback/</string></value>
</param>
</params>
</methodcall>
Everything ok so far? Let's see what WordPress answers.
<methodresponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>17</int></value>
</member>
<member>
<name>faultString</name>
<value><string>The source URL does not contain a link to the target URL, and so cannot be used as a source.</string></value>
</member>
</struct>
</value>
</fault>
</methodresponse>
The faultString description gives an idea what the problem is. S9y inserts only the base URI of the blog into the trackback request. If the link is placed in the summary part, which appears on the front page, then the trackback should be working. But in my case the link was used only in the part you only see in article view.
Right now I don't really know how to fix that problem. I guess I have to dig into the code to see what happens when you save an article. The trackback function does not get the actual URI passed as an argument. The trackbacked site fetches the source URI and searches for a link to the given destination URI. It can't find it an rejects it. I would behave like that for spam reduction reasons, too.
Serendipity 1.1.3 still has those two bugs. I will see whether I can fix it. The main problem will be how to get the actual article URI for inclusion in the XML part.