afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
afuna ([personal profile] afuna) wrote in [site community profile] changelog2009-08-05 03:57 pm

[dw-free] Make sure that crossposting between Dreamwidth/clones won't allow infinite loops

[commit: http://hg.dwscoalition.org/dw-free/rev/dd1198c129a5]

http://bugs.dwscoalition.org/show_bug.cgi?id=1484

Temporary fix to prevent crossposted entries from being crossposted back and
forth between two different DW-based sites in a never-ending loop. This
prevents crossposted entries from being crossposted again, entirely.

Patch by [personal profile] afuna.

Files modified:
  • cgi-bin/DW/External/XPostProtocol/LJXMLRPC.pm
--------------------------------------------------------------------------------
diff -r 1c0901cf5b11 -r dd1198c129a5 cgi-bin/DW/External/XPostProtocol/LJXMLRPC.pm
--- a/cgi-bin/DW/External/XPostProtocol/LJXMLRPC.pm	Wed Aug 05 15:48:33 2009 +0000
+++ b/cgi-bin/DW/External/XPostProtocol/LJXMLRPC.pm	Wed Aug 05 15:56:29 2009 +0000
@@ -150,6 +150,9 @@ sub crosspost {
     } else {
         # if it's a post or edit, fully populate the request.
         $req = $self->entry_to_req($entry, $extacct, $auth);
+
+        # FIXME: temporary hack to limit crossposts to one level, avoiding an infinite loop
+        $req->{xpost} = 0;
 
         # are we disabling comments on the remote entry?
         my $disabling_comments  = $extacct->owner->prop( 'opt_xpost_disable_comments' ) ? 1 : 0;
--------------------------------------------------------------------------------