The module returns a successful ping if the page being pinged returns an HTTP success code, whether or not the TrackBack ping itself returned an error.

This is a general problem, but is most readily apparent in my experience when a "not-as-savvy" user submits a manual URL for a TrackBack ping to a "regular" web page, and not to its TrackBack link. The module will register a successful ping, since the HTTP result will obviously be 200 OK, but there's no check for the TrackBack successful reply XML.

I'm sorry that I can't submit a patch just yet; I've got a lot on my plate, but hopefully I'll be able to get to this in a couple of weeks. If anyone's interested, line 658 of trackback.module sets "successful" in the trackback_sent table to $reply->error, which is the problem -- that should instead be something along the lines of is_valid_ping($reply->text), where is_valid_ping is a function that parses the (hopeful) XML result as per:

http://www.sixapart.com/pronet/docs/trackback_spec#Sending_a_TrackBack_Ping

and checks the TrackBack error status. (Heck, for that matter, it would be nice if any error messages on error status = 1 would be logged somewhere...)

Comments

zorac’s picture

Assigned: Unassigned » zorac
zorac’s picture

Status: Active » Fixed
Anonymous’s picture

Status: Fixed » Closed (fixed)